자동차 소프트웨어 개발 자동차 소프트웨어 개발

2022.03.17 현대자동차그룹 분량7분

SDV의 초석을 다지는 커넥티드카 OS 개발기

글로벌 자동차 시장의 거센 전동화 흐름 속에서 SDV의 영향력이 크게 확장되고 있습니다. 현대차그룹 또한 미래 모빌리티의 혁신을 실현하기 위해 커넥티드카 플랫폼 개발에 박차를 가하는 중입니다.

안녕하세요. 현대자동차그룹 오민혁 파트장입니다. 현대자동차그룹은 점차 중요성이 강조되는 모빌리티 산업 발전에 발맞춰 차량 소프트웨어 경쟁력을 확보하기 위한 독자적인 커넥티드카 운영체제(ccOS, Connected Car Operation System)를 개발하고 있습니다. ccOS 플랫폼 개발 경험을 바탕으로 ccOS의 의미와 개발 과정, 그리고 향후 계획에 대해 공유해보고자 합니다.

소프트웨어로 정의되는 차량(SDV)과 커넥티드카 운영체제(ccOS)

먼저 ccOS의 개념 소개에 앞서 SDV에 대해 간단히 알아보겠습니다. SDV(Software Defined Vehicle)란 소프트웨어로 정의되는 자동차를 뜻합니다. 즉, 소프트웨어가 하드웨어를 제어하고 관장하는 자동차라고 할 수 있습니다. 과거의 자동차는 기계공학 중심의 하드웨어가 주를 이뤘지만, SDV는 그 반대입니다. 소프트웨어가 자동차의 주행 성능은 물론 편의 기능, 안전 기능, 심지어 차량의 감성 품질과 브랜드의 아이덴티티까지 규정합니다.

SDV 발전의 가속화

최근 글로벌 자동차 업계에서는 전동화와 함께 SDV가 크게 주목받고 있습니다. 기존의 자동차가 단순히 이동 수단에 불과했다면, SDV는 ‘도로 위의 스마트폰’이라고 불릴 정도로 모빌리티 산업에서의 큰 혁신이 될 것이라 예상되기 때문입니다. 하지만 SDV를 목적에 맞게 개발하고 양산하려면, 차량의 소프트웨어를 최적의 상태로 구동할 차량용 운영체제 개발이 선행돼야 합니다. 현대차그룹이 독자적인 커넥티드카 운영체제 개발에 매진하고 있는 이유입니다.

ccOS가 적용된 제네시스 GV60

현대차그룹 ccOS 플랫폼 기반의 인포테인먼트 시스템이 적용된 제네시스 GV60

현대차그룹은 커넥티드카 생태계를 구축하고, 다가올 미래를 대비하기 위해 2016년부터 독자적인 커넥티드카 운영체제(ccOS) 개발에 착수했습니다. 그리고 2019년, ccOS를 기반으로 증강현실(AR), 내비게이션, 차량 내 간편 결제, 그리고 필기 인식 등을 탑재한 고급형 인포테인먼트 시스템을 선보였습니다. 지난해에는 제네시스 브랜드의 첫 전기차인 GV60를 통해 최신 ccOS 플랫폼 기반의 인포테인먼트 시스템을 발표하기도 했습니다. 앞으로도 현대차그룹은 제네시스 전체 라인업은 물론이고, 현대·기아 차량에도 이를 확대 적용해 SDV를 구현해 나갈 예정입니다.

ccOS 개발의 목표

과거 현대차에 적용되었던 인포테인먼트 시스템은 WinCE, Android, QNX 등 다양한 플랫폼을 기반으로 개발되었습니다. 하지만 동일한 문제를 개선하는 과정에서 플랫폼별로 각각 해결해야 했고, 또한 플랫폼마다 해결하는 방식이 다르다 보니 개선 시간에도 차이가 나는 등 동시에 개선 작업을 전개하는 데 어려움이 있었습니다. 이로 인해 단일 플랫폼이 필요하다는 공감대가 형성됐고, 이는 곧 독자적인 ccOS 개발의 계기가 되었습니다. 저희는 2016년 ccOS 개발을 공식화하면서 다음과 같은 세 가지 목표를 설정했습니다. 첫째는 현대차그룹의 커넥티드카 개발 콘셉트와 전략을 실현하기 위한 플랫폼 확보였고, 둘째는 차량용 초고속 네트워크 및 클라우드 환경에 맞는 소프트웨어 기술 내재화였으며, 마지막은 커넥티드카 서비스기반 확립이었습니다.

위 목표를 달성하기 위해 다양한 방법으로 접근했습니다. 우선 고성능 차량 반도체를 활용해 IT 기술 통합을 지원할 수 있는 시스템을 선정하고, 성능 최적화를 진행했습니다. 또한 차량의 온·오프라인 상태와 관계없이 이질감 없는 커넥티드카 서비스를 제공하고, 주변 인프라 및 기기들과 연계해 모바일 사용자 경험을 차량으로 확장할 수 있도록 고려하여 개발했습니다. 특히 안전과 직결된 차량 환경을 고려해 보안 문제에도 철저히 대비했습니다. 차량의 안전과 관련된 부분은 별도로 구성해 침입을 어렵게 하였고, 차량 네트워크 보안을 강화한 뒤 이를 모니터링함으로써 높은 보안 기준을 수립했습니다.

커넥티드카 서비스를 제공하는 기아 K8

ccOS 개발의 시작, 그리고 과정

현대차그룹 차량OS의 과거와 현재

2016년 공식화된 ccOS의 개발은 그보다 앞선 2013년, 차량용 인포테인먼트 시스템에 단일 플랫폼이 필요하다는 인식에서 시작됐습니다. 당시에 저희는 단일 소프트웨어 플랫폼의 개발을 위해 두 가지 주요 속성을 고려했습니다. 개발된 애플리케이션 로직이 새로운 시스템에 그대로 적용 가능하고(reusability), 다양한 하드웨어에 손쉽게 이식이 되어야(portability) 한다는 것입니다. 따라서 앞서 언급한 두 가지 속성을 가장 잘 지원해 줄 수 있는 언어를 검토했고, HTML5를 선정하여 개발에 착수했습니다.


하지만 여러 차례의 테스트 결과 WebEngine 자체가 무거워 전체적인 시스템 부팅 속도가 느리고, 코드 노출 등의 문제가 발생할 수 있음을 확인했고, 결국은 Native 기반으로 시스템을 구축해야 한다는 결론에 이르렀습니다. 아쉽지만 처음부터 다시 시작해야 했습니다.


Native 기반으로 플랫폼 API 통일이라는 목표를 달성하기 위해 ‘HAFI(Hyundai Application Framework Interface)’ 프로젝트에 착수하게 되었습니다. HAFI 프로젝트에서는 오디오, 미디어, 내비게이션 등 다양한 플랫폼 API를 정의하고, 애플리케이션 및 미들웨어를 개발해 사용성 검증도 병행했습니다.


HAFI 프로젝트가 커넥티드카를 위한 소프트웨어 플랫폼 개발로 발전되면서 현재의 ‘ccOS’라는 이름이 되었습니다. 지속적인 개발을 통해 ccOS를 양산차에 적용하는 데 성공했으며, 이때 개발된 플랫폼 API는 약 1만여 개였습니다. 이러한 수년간의 과정에서 많은 개발자가 새로 합류했고, ccOS의 개발을 성공적으로 진행할 수 있었습니다. 향후에도 SDV는 점차 중요해질 것이고, 현대차그룹에서는 소프트웨어 개발자의 역할이 강조될 것입니다. 현대차그룹이 모빌리티 소프트웨어 분야를 개척하는 과정에서 우수한 개발자와 함께할 수 있으면 좋겠습니다.

ccOS의 아키텍처 구성

ccOS 레이어드 아키텍처

앞에서는 개발 과정을 살펴보았으니, 지금부터 ccOS 아키텍처에 대해 조금 더 자세히 알아보겠습니다. 위 그림은 ccOS 레이어드 아키텍처의 구성입니다. ccOS는 하드웨어의 독립적인 구성을 위해 HAL 레이어를 적용했습니다. 이를 통해 ARM 기반의 NVIDIA, 라즈베리파이, x86 아키텍처 기반의 큐이엠유(QEMU)를 지원합니다. 앞으로도 보다 다양한 하드웨어를 지원할 수 있도록 지속적인 업데이트가 이루어질 예정입니다. 


*HAL: Hardware Abstraction Layer(하드웨어 추상화 레이어), 물리적인 하드웨어와 실행되는 소프트웨어 사이의 추상화 계층이다. 하드웨어의 차이를 숨겨서 다양한 하드웨어에서 소프트웨어가 일관된 동작을 할 수 있게 도와주기 위한 레이어다.


HAL 레이어 위에는 ccOS Framework를 통해 플랫폼의 기본 기능을 제공합니다. ccOS를 인포테인먼트 시스템인 AVN 외에도 적용할 수 있도록 설계했기 때문에 해당 플랫폼을 활용하여 타 시스템에 적용할 수도 있습니다. 그리고 애플리케이션 Framework를 통해 인포테인먼트 시스템의 특화 기능을 제공합니다. 예를 들어, Media Gate Manager는 다양한 미디어 애플리케이션을 등록하고, 현재 재생 중인 미디어 정보를 확인할 수 있는 기능을 제공합니다. 또한 ccOS 플랫폼 기반으로 다양한 HMI Application이 구성돼 있으며, 이는 모두 양산 시스템에 적용돼 있습니다.

스마트폰 OS와 ccOS의 차이점 1: 차량 안전을 위한 네트워크의 분리와 보안

ccOS의 향상된 네트워크 지원

ccOS와 스마트폰 OS는 각종 하드웨어를 제어하고, 응용 소프트웨어를 위한 기반 환경을 제공한다는 점에서 동일합니다. 하지만 ccOS는 차량 환경에 초점을 맞추고 있다는 점에서 스마트폰 OS와 차이가 있습니다. 대표적으로 네트워크 환경을 예로 들 수 있습니다. ccOS는 외부 네트워크의 관리 외에도 차량 내 네트워크를 처리할 수 있어야 합니다. 파란색 영역의 In-Vehicle 네트워크는 차량의 상태 표시 및 제어, 그리고 차량 진단을 수행하고 있고, 인증된 신호에만 통신이 가능하도록 보안 설계가 되어 있습니다.


외부 네트워크에는 다양한 사례가 있습니다. 현대차그룹의 차량에는 브랜드에 따라 제네시스 커넥티드 서비스(GCS), 블루링크(현대자동차), 기아 커넥트 등의 커넥티드카 서비스가 있으며, 각각 서비스 내 별도의 요금제를 사용하는 미디어 스트리밍 기능이 존재합니다. 미디어 스트리밍의 경우, 요금제 가입자와 미가입자의 서비스 구분이 필요해 별도의 APN을 사용하고 있습니다.


앞으로 미디어 스트리밍 외에도 비디오 스트리밍, 오디오북 등 다양한 서비스가 추가될 예정이며, API 또한 지속적으로 증가할 것입니다. 이를 효율적으로 대응하기 위해 ccOS 플랫폼에서는 네트워크 설정을 통해 쉽게 확장이 가능하도록 아키텍처를 설계했습니다. 앞으로 ccOS 아키텍처는 네트워크 아키텍처 효율화, 보안 아키텍처 강화 등 커넥티드 차량에 최적화된 아키텍처로 지속적인 개발이 이뤄질 것입니다. 

스마트폰 OS와 ccOS의 차이점 2: 콕핏 환경을 고려한 ccOS의 인포테인먼트 시스템

제네시스 G80의 인포테인먼트 시스템 제어 방법

인포테인먼트 시스템의 제어 방식도 ccOS와 스마트폰 OS의 다른 점 중 하나입니다. 제네시스의 경우로 예를 들어보면, 운전자는 센터 콘솔에 위치한 중앙 집중 조작계(CCP), 스티어링 휠에 있는 리모트 컨트롤러, 센터패시아에 있는 멀티미디어 키보드, 그리고 센터 디스플레이의 터치 방식 등으로 인포테인먼트 시스템을 제어할 수 있습니다. 이 모든 제어 방식은 차량 내에서 일관되게 작동해야 하고, 이는 단일 제어장치(터치)를 사용하는 스마트폰과 구분되는 부분입니다. 따라서 ccOS에서는 General Input과 System Input을 분리하고 처리 주체를 분리해, 시스템의 복잡도를 분산시켰습니다. 또한 다양한 입력 방식을 수용할 수 있도록 설계해 새로운 컨트롤러가 추가되더라도 손쉽게 대응이 가능하다는 특징이 있습니다.


다수의 디스플레이를 갖췄다는 점 역시 스마트폰과 비교되는 부분입니다. 예를 들어, 제네시스의 차세대 인포테인먼트 시스템(ccIC, connected car Integrated Cockpit)은 디지털 클러스터, 헤드업 디스플레이(HUD), 센터 디스플레이(AVN), 후석 디스플레이(좌/우) 등으로 구성돼 있습니다. 각 디스플레이의 표현 방식이 다른 점을 고려하여 ccOS는 통합 콕핏 개념을 반영했고, 클러스터와 AVN이 하나처럼 보이도록 구성했습니다. 고객이 차량에 진입했을 때 반응하는 부팅 애니메이션 역시 두 화면에 걸쳐 심리스하게(seamless) 재생됩니다.

차량 내 디스플레이 제어 방식

일반적인 상황에서는 AVN이 HUD, 센터 디스플레이, 후석 좌/우 디스플레이로 구성된 4개의 화면을 상시 제어하고, AR 내비게이션 동작이 필요한 경우에는 클러스터 영역에 할당된 하드웨어 플레인을 활용해 표시하게 됩니다. 그리고 차량 주위를 비추는 카메라 영상을 위한 별도의 하드웨어 플레인을 할당하여, 카메라 화면이 표시되어야 하는 상황에서는 우선적으로 보이도록 설계했습니다.

스마트폰 OS와 ccOS의 차이점

이처럼 스마트폰 OS와는 달리, 차량용 OS의 개발에서는 차량에 대한 이해를 바탕으로 사용자 경험을 고려할 필요가 있으며, 반드시 주행 상황에서의 안전을 고려하여 개발되어야 합니다.

ccOS 통합 개발 환경과 향후 계획

ccOS 개발 프로세스

현대차그룹에서는 보다 편리한 ccOS 개발을 위해 통합 개발 환경을 구축했습니다. ccOS의 개발 과정에는 소프트웨어 설계 및 구현, 검증, 리뷰 등이 포함돼 있으며, 이 모든 과정은 최대한 사람의 손을 거치지 않도록 자동화 설계가 반영돼 있습니다. 자동화된 통합 개발 환경 구축 덕분에 요구사항에서 개발, 그리고 검증과 리뷰 단계까지 일관된 프로세스로 이뤄지며, 이는 개발 기간의 단축과 개발자 간의 커뮤니케이션을 더욱 명확하게 해주었습니다.

ccOS 통합 개발 환경

또한 현대차그룹은 ccOS 디벨로퍼 사이트를 구축하는 중입니다. 개발자는 디벨로퍼 사이트를 통해 ccOS API와 튜토리얼을 확인할 수 있고, ccOS SDK와 IDE를 다운로드받아 앱 개발 시 로그를 확인하고 프로젝트 세팅도 가능하며, 애플리케이션 위저드를 통해 보다 쉽게 앱 개발이 가능할 예정입니다. 더불어 ccOS 에뮬레이터를 통해 실행 및 디버깅까지 애플리케이션 개발에 필요한 모든 것을 지원하기 위해 준비하고 있습니다. 보다 진보한 ccOS 개발을 통해 SDV를 구현해가는 현대차그룹에 앞으로도 많은 관심 부탁드립니다.

현대자동차그룹 오민혁 책임연구원