brunch

You can make anything
by writing

C.S.Lewis

by Jake Shin Oct 10. 2024

엔지니어링

DevOps기반 빠른 SW배포&관리, 가상환경 검증 체계, 전담 조직화

최근에 제가 다니는 회사에서 개발환경 개선 일환으로 "빌드환경 고도화"위한 대응방안 수립이 회자되었습니다. 고객사들이 "차량 SDV(Software Defined Vehicle) 기조로 소프트웨어를 통해 기능을 유연하게 변화시키고 차량개발 및 유지관리함" 대응하기 위한 목적입니다. 빠른 빌드환경 기반으로 삐른 SW배포 및 관리를 한다는 것이죠. Daily빌드, 24시긴 빌드 등 모토를 지향합니다. 이를 위해 SW엔지니어링 전담하는 조직 구축 하고 인력확보도 지속 중입니다.



자동차 업계에서 SDV 통해 수익화 낸 사례는 Tesla 외에는 가시화가 안된 상황입니다. 최근 자동차 OEM동향을 보면 SDV화 위해서는 해야 할 과제가 많음을 이해할 수 있습니다. 자동차 OEM들이 자체적으로 모든 영역을 커버하는 것은 어렵다고 볼 수 있습니다. 특히 엔지니어링 분야는 자동차 부품업체(Tier 1) / 전문엔지니어링업체(Tier 2) 역량을 가지고 있는 상황이라, 자동차 OEM들은 이들 압체와 전략적 협업 중입니다.



https://zdnet.co.kr/view/?no=20240314161359

https://m.moneys.co.kr/article/2024071623442469476







이렇듯 SDV환경에서는 '개발속도의 혁신'이 요구됩니다. 소프트웨어 개발 주기가 하드웨어보다 빠르기 때문에(DecOps요구), SDV는 신속한 기능 개선 및 문제 해결이 가능해야 하고, 하드웨어에 의존하지 않는 기능 개발이 가능해지면서 전체 차량 개발 주기를 단축해야 합니다. 자체 전담조직화와 더불어 관련 업체와 협업이 필요합니다.


먼저, DevOps체계 구축입니다.


앞서 SDV는 OTA(Over-the-Air) 및 서비스형 소프트웨어(SaaS) 지향합니다. OTA 업데이트는 SDV의 핵심 기술로, 이를 통해 차량 내 소프트웨어를 지속적으로 업데이트하고 새로운 기능을 추가할 수 있습니다. 또한, 일부 서비스는 SaaS 모델로 제공되어, 차량 사용자는 구독형 서비스로 최신 소프트웨어 기능을 이용할 수 있습니다.


DevOps는 자동차 업계에서 차량 소프트웨어 개발의 효율성과 품질을 높이는 핵심 전략으로 자리 잡고 있습니다. 이를 통해 제조사들은 소프트웨어 정의 차량 및 자율주행차를 더욱 빠르고 안전하게 시장에 선보일 수 있으며, 지속적으로 변화하는 시장 요구에 민첩하게 대응가능 합니다.

(DevOps는 차량 개발 프로세스의 속도를 높이고 품질을 개선하는 데 중요한 역할을 하고 있습니다. 차량 소프트웨어의 복잡성이 증가하고 소프트웨어 정의 차량(SDV) 및 자율주행 기술의 부상과 함께 DevOps 접근 방식은 필수적인 요소가 되고 있습니다. 이를 통해 자동차 제조업체들은 소프트웨어 업데이트 주기를 단축하고 품질을 높이면서 신속하게 변화하는 시장 요구에 대응할 수 있습니다.)


DevOps 통해 이루고자 하는 To-Be이미지는. 아래와 같습니다.


1) 소프트웨어 중심의 개발 프로세스 강화: 자동차 산업은 이제 더 이상 하드웨어 중심이 아니라 소프트웨어 중심으로 전환되고 있습니다. DevOps는 이를 실현하는 주요 방법론으로, 소프트웨어의 신속한 개발, 테스트, 배포를 지원하는 통합 개발 및 운영 프로세스를 제공합니다.


2) 연속적 통합 및 배포(CI/CD): DevOps의 핵심인 CI/CD 파이프라인이 자동차 개발 과정에 도입되어 개발팀이 지속적으로 코드를 통합하고, 자동화된 테스트를 통해 품질을 보장하며, OTA(Over-the-Air) 업데이트를 통해 차량 소프트웨어를 배포합니다.


* CI/CD 파이프라인: DevOps의 핵심인 CI/CD는 차량 소프트웨어의 지속적인 개발, 테스트, 배포를 지원합니다. 이를 통해 소프트웨어의 작은 변경 사항도 즉시 테스트되고 배포되며, 이를 통해 오류를 조기에 발견하고 해결할 수 있습니다.


* 자동화 테스트: 차량 소프트웨어의 품질을 보장하기 위해 자동화된 테스트가 필수적입니다. 시뮬레이션 환경에서 자율주행 시스템, 인포테인먼트 소프트웨어, 네트워크 통신 기능 등을 자동으로 테스트하여 실제 차량에 배포하기 전에 문제를 발견할 수 있습니다.


* 컨테이너화 기술(Docker, Kubernetes): 소프트웨어 애플리케이션의 개발 및 배포를 위한 컨테이너화 기술은 DevOps 환경에서 필수적입니다. 이를 통해 개발 환경과 운영 환경 간의 불일치를 줄이고, 소프트웨어 배포를 표준화할 수 있습니다.


3) 실시간 모니터링과 피드백 루프: DevOps의 핵심은 피드백 루프입니다. 차량의 상태, 성능 데이터를 실시간으로 수집하고 분석하여 소프트웨어의 성능을 개선하고 버그를 신속하게 수정합니다. 이는 차량의 안정성 및 사용자 경험을 개선하는 데 기여합니다.


4) 클라우드 기반 개발 환경: 차량 소프트웨어 개발은 클라우드 환경에서 이루어지는 경우가 많습니다. 클라우드 인프라를 사용하면 개발팀이 더 빠르게 작업을 협업하고, 여러 지역에 걸친 글로벌 개발팀도 통합할 수 있습니다.


* 클라우드 컴퓨팅: 차량 데이터 관리 및 소프트웨어 개발 환경을 위한 클라우드 플랫폼은 DevOps의 성공을 위한 필수적인 기술입니다. 이를 통해 글로벌 개발팀은 협업할 수 있으며, 대규모 데이터 처리와 분석도 가능해집니다.


이렇듯 SDV에서의 DevOps 역할 강화될 것으로 보입니다. 1) SDV화 가 진행될수록, 차량의 소프트웨어 업데이트는 더욱 빈번해질 것이며, DevOps가 이 과정에서 필수적인 역할을 할 것입니다. 특히 자율주행 소프트웨어의 실시간 데이터 분석 및 업데이트는 차량의 안전성과 성능을 크게 향상할 것입니다. 2) 두 번째로 AI와 머신러닝의 통합되어, 차량 데이터에서 얻은 통찰을 기반으로 AI 및 머신러닝을 적용해 소프트웨어를 자동으로 개선하는 방식이 DevOps 파이프라인에 통합될 전망입니다. 이는 문제 해결 속도를 높이고 소프트웨어 성능을 최적화하는 데 기여할 것입니다.. 마지막으로 엔드 투 엔드(E2E) 자동화: DevOps는 개발, 테스트, 배포뿐 아니라 운영 전반에 걸쳐 자동화를 강화하고 있습니다. 이로 인해 인간 개입을 최소화하고, 소프트웨어 개발과 운영의 모든 단계를 자동화하여 더 빠르고 안정적인 배포가 가능해질 것입니다.






다음으로 가상환경 개발/검증 체계 구축입니다. 


레거시 개발체계상에서도 개발효율화(HW 없어도 SW개발) 측면 필요한 영역입니다. 소프트웨어 정의 차량(SDV), 커넥티비티, 자율주행 및 ADAS(첨단 운전자 지원 시스템)의 발전에 따라 더욱 중요해지고 있습니다. 물리적인 환경에서의 테스트는 비용과 시간이 많이 들기 때문에, 가상환경을 통한 개발과 검증은 차량 소프트웨어의 품질과 안전성을 확보하는 데 중요한 역할을 합니다.


주요 핵심 기술은 아래와 같습니다. * Tier 1, ICT업체(구글, 아마존, MS), 엔지니어링 업체(dSPACE, Windriver, Vector)가 에코시스템을 이루고 있습니다.

- HIL(Hardware-in-the-Loop): 차량 개발 초기 단계에서 하드웨어와 소프트웨어 간의 통합을 검증하기 위해 사용되는 기법입니다. 하드웨어(ECU 등)는 실제로 존재하고, 가상환경에서 생성된 시뮬레이션 데이터를 통해 시스템을 테스트하여 차량의 실제 동작을 검증합니다.


- SIL(Software-in-the-Loop): 차량의 실제 하드웨어가 없는 상태에서, 소프트웨어를 가상환경에서 테스트하는 방식입니다. SIL은 소프트웨어의 초반 개발 단계에서 문제가 발생했을 때 빠르게 피드백을 제공할 수 있는 장점이 있습니다.


- MIL(Model-in-the-Loop): 제어 시스템 개발 초기에 모델링 된 가상 환경을 통해 테스트하는 방법으로, 시스템이 어떻게 동작할지에 대한 개념 검증을 할 수 있습니다. 자율주행, 전자제어 시스템 등의 복잡한 소프트웨어 기능을 모델링하여 가상으로 검증하는 데 적합합니다.


-완전 차량 시뮬레이션(Full Vehicle Simulation): 자율주행차나 ADAS 시스템의 복잡한 환경을 검증하기 위해 전체 차량을 가상으로 시뮬레이션하는 기술입니다. 주행 시나리오, 도로 조건, 날씨, 교통 상황 등을 모두 가상환경에서 설정하여 실제 주행 테스트 전에 철저히 검증할 수 있습니다.


- 디지털 트윈(Digital Twin): 물리적인 차량의 모든 데이터를 실시간으로 반영하여 가상 모델을 생성하고 이를 통해 개발 및 검증을 수행하는 방식입니다. 디지털 트윈은 실제 차량의 상태를 모니터링하면서 다양한 시나리오를 시뮬레이션하고, 문제 발생 시 신속하게 대응할 수 있게 합니다.


- 시뮬레이션 소프트웨어: 다양한 주행 시나리오를 시뮬레이션할 수 있는 소프트웨어가 필수적입니다. 대표적인 도구로는 Carsim, PreScan, MATLAB/Simulink, Autodesk VRED 등이 있으며, 이를 통해 주행 중 발생할 수 있는 모든 상황을 시뮬레이션할 수 있습니다.


- AI 및 머신러닝: 가상환경에서 수집된 데이터를 분석하여 주행 패턴, 위험 상황을 학습하고 차량 소프트웨어를 개선할 수 있습니다. 머신러닝 알고리즘은 시뮬레이션 결과를 분석해 소프트웨어 성능을 최적화하고, 예측 가능한 문제를 미리 해결할 수 있도록 지원합니다.


- 클라우드 기반 시뮬레이션: 클라우드를 활용한 시뮬레이션 환경은 전 세계 팀이 동시에 차량 개발에 참여할 수 있게 합니다. 이를 통해 개발 속도가 빨라지고 비용이 절감됩니다. 클라우드에서 다수의 시뮬레이션을 병렬로 실행하여 다양한 테스트 시나리오를 동시에 진행할 수 있습니다.


현재는 완전 가상화는 비용 성능 측면 제약으로 가시회 사례는 미비합니다. 다만 SDV고도화에 따른 고수준의 개발/검증 요구사항이 많아 짐에 따라 관련 에코시스템의 기술발전은 아마도 진전이 있지 않을지 싶습니다.






마지막으로 전담조직 구축 및 관련 생태계 협업입니다.


자동차 제조업체들은 자체 생태계를 구축해 소프트웨어를 기반으로 한 서비스를 제공하고, 고객의 지속적인 충성도를 확보하려고 노력하고 있습니다. 예를 들어, 테슬라는 자사의 독점적인 소프트웨어 플랫폼과 OTA 업데이트로 경쟁 우위를 확보했습니다.

Tier 1 및 Tier 2 경우 고객 중심의 맞춤형 경험 제공하기 위해 차량 성능의 커스터마이징, 인포테인먼트의 개인화, 혹은 주행 보조 기능의 사용자 맞춤 설정 등을 영역에 대한 차별화를 맡고 있습니다.


많은 자동차 제조업체들은 구글, 애플, 아마존 같은 대형 IT 기업과의 협력을 통해 소프트웨어 역량을 강화하고 있습니다. 자율주행이나 인포테인먼트 시스템을 개발할 때, 테크 기업의 AI 및 데이터 처리 기술이 매우 유용하게 활용되고 있습니다.

특히 DevOps는 개발팀과 운영팀의 긴밀한 협업을 강조합니다. 자동차 산업에서는 차량 소프트웨어 개발자, QA 팀, 운영팀, 보안팀 등이 모두 협력하여 문제를 신속하게 해결하고 업데이트를 배포하는 것이 필수적입니다.


SDV시대에서 엔지니어링 영역에 대한 역량 확보는 매우 중요합니다. 특히 차량 전체 거버닝을 하는 OEM들(현재는 전문 업체와 협업 중)은 향후에 모든 엔지니어링을 독자적으로 추진할 수 있습니다. 엔엔지니어링 분야는 기술리더십이 있는 업체가 리딩하여, 향후에도 전문성 있는 스타트업체도 많아질 것으로도 보입니다.


다음글은 '고성능 컴퓨팅 시스템' 관련해서, 이를 리딩하는 SoC 업계 동향에 대하 살펴보고자 합니다.





이전 06화 SW/HW분리 - 2) 미들웨어
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari