brunch

You can make anything
by writing

C.S.Lewis

by Sung Jae Ryu Oct 04. 2017

 차량용 앱을 웹으로 만들 수 있을까?

자동차 산업에 IT가 접목된 지 이미 오래되었다. 단순히 자동차의 상태만 보여주던 헤드 유닛의 수준을 넘어서 다양한 정보와 엔터테인먼트를 제공하고 있다. 초기 초록색 배경의 LCD창에서 보이던 시계와 라디오 주파수 수준을 넘어 이제는 built in 된 5~7인치의 터치 스크린이 자동차 헤드 유닛을 장식한다. 커다란 터치스크린으로 유저와의 인터액션은 더욱 다양해졌고 더 스마트해졌다. 차 안에서 유저에게 제공되는 애플리케이션 또한 다양해졌고 점점 더 많아지고 있다. 이런 애플리케이션들이 웹앱으로 만들어진다면 어떨까? 


왜 웹앱일까?

많은 이들이 알고 있듯이 HTML/Javascript는 개발하기 쉬운 이미지로 많이 홍보되어 있다. 폐쇄적이었던 자동차 애플리케이션 시장을 웹앱이라면 쉽게 진입 장벽을 낮출 수 있을 것이다. 비록 지금은 수많은 툴들과 빌드 방식, 오픈소스, 라이브러리/프레임워크로 인해 기존 이미지에 반하는 성향을 나타나고 있지만, 보수적이고 폐쇄적인 자동차 산업에서는 아직까지는 홍보하기 좋은 상품이다.

이미 커넥티드 카를 위한 솔루션들은 존재한다. 애플의 카플레이, 안드로이드의 안드로이드 오토가 있다. 이 두 개의 솔루션들은 상용화된 많은 자동차에 이미 탑재되어 있다. IT 공룡들이 제작한 솔루션이니 믿고 쓸만한 제품들이다. 하지만 자동차 제조업체에서는 이 제품들을 마냥 좋아라 하며 쓸 수 없는 노릇이다. 이유는 다양하다. 커스터마이징의 제한, 기업 간의 복잡한 이해관계 및 이익 관계 등 다양한 이유가 있다. (나는 개발자라서 비즈니스 관련은 이야기는 생략하겠다.) 


커스터마이징의 제한을 보자. 솔루션들은 완성품으로 제공되니 이를 수정하긴 어렵다.(특히 UI/UX) 카플레이의 경우 아이폰의 UI를 따르고 안드로이드의 경우 구글의 메테리얼 디자인을 따른다. 자동차 제조회사마다 자신들만의 디자인 컨셉에 맞는 고유 UI/UX가 존재한다. 구글의 메테리얼 디자인은 분명 훌륭한 디자인이다. 그리고 그만의 고유 가이드라인도 존재한다. 하지만 이 디자인 컨셉이 모든 자동차 제조회사들의 디자인 컨셉과 들어맞는다는 보장은 없다. 그리고 자동차 제조회사들이 자신들의 디자인 컨셉에 맞게 커넥티드 카 솔루션을 수정해달라 한다면 과연 이 거대한 기업들이 쉽게 움직여 줄까?


웹앱이라면 어떨까. 

브라우저가 헤드 유닛에 올라가 있다면 그렇게 자랑하는 쉬운 개발 난이도 덕분에 쉽게 앱들을 만들어 낼 수 있다. 원한다면 SDK를 만들어 개발환경을 제공할 수도 있고, 기존의 잘 알려진 라이브러리/프레임워크와 W3C에서 제공하는 Vehicle API를 이용해 기존 웹앱 개발자들이 쉽게 자동차를 위한 웹앱을 개발하도록 유도할 수도 있다. 그리고 개발자들이 자동차를 위한 앱을 만들어 공유할 수 있게 해준다면 자동차 제조회사들은 자신들만의 고유 플랫폼을 만들 수 있다.

Web Application and Simulator for Automotive by OBIGO


시스템 환경은 괜찮은가?

H/W의 사양은 시간이 지날수록 빠르게 진화한다. CPU의 사양이 날이 갈수록 높아진다 하더라도 자동차를 양산해내려는 OEM들은 생산 가격을 조금이라도 더 낮추기 위해 값싼 저사양의 CPU를 선택한다. 물론 고급 모델은 좋은 CPU를 사용한다. 하지만 요즘 나오는 스마트폰의 사양에 버금가진 못한다. 

 특히 자율주행, 커넥티드 카 등 IT와 접목된 다양한 자동차 컨셉이 나오면서 고사양의 H/W스펙이 요구된다. 그래서 이전보다 더 좋은 연산장치를 사용하여 유저들이 좀 더 빠르고 불편함 없이 자동차에서 다양한 서비스를 이용할 수 있게 해줄 수 있다.

그렇다면, 사양 좋은 H/W를 사용하는 자율주행 자동차라면 얘기가 좀 달라질까?


Nvidia XAVIER for self driving car


자율주행 자동차는 인공지능(딥러닝)을 이용해 스스로 운전이 가능한 자동차이다. 도로 위의 다양한 변수들에 즉각적으로 대응하고 반응하기 위해 많은 연산을 빠른 시간 내에 처리해야 한다. 그렇다면 자율주행 자동차의 자율주행만을 위한 GPU 또는 CPU가 할당될 수 있고 스펙은 기존의 자동차의 그것들보다는 훨씬 좋다. 그렇다면 자율 주행 자동차를 위한 GPU/CPU가 인포테이먼트를 위해 사용되는 게 합당할까?


예를 들어 자율주행을 위해 할당된 GPU/CPU가 인포테인먼트와 함께 쓰인다고 가정해보자. 도로 위 위험한 상황이 발생해 운전자 또는 보행자의 목숨과 직결된 자율주행 연산을 빠르고 정확하게 해야 하는 상황에서, 인포테이먼트 시스템이 연산장치를 할당받아 무겁고 긴 연산을 하고 있다면? 이는 분명 자율주행 차에서 발생하면 안 되는 상황이다.


물론 OEM 또는 티어 1 그리고 칩셋 제조사에서는 이런 경우를 위해 다양한 안전장치를 준비하고 있다. 인포테인먼트 시스템이 메인 연산장치를 일정 수치 이상 할당받지 못하게 한다던가, 자율주행을 포함한 자동차 전반의 제어 시스템에서 사용하는 연산장치와 인포테이먼트만을 위한 연산장치를 따로 구분할 수도 있다. 자동차의 안전이 최우선이다 보니 이런 제약이 걸릴 수 있다. 이런 제약들은 자동차 인포테이먼트의 H/W적인 한계일 수 있다.


다시 본론으로 돌아오자. 분명 자바스크립트는 느리다. 헤드 유닛에서 C/C++로 작성되는 네이티브 앱들보다 느리다. 그리고 자바스크립트를 실행시킬 스크립트 엔진이 필요하다. UI를 위해 HTML를 렌더링 할 렌더러도 필요하다. 즉, 브라우저가 필요하다. 브라우저는 많은 오픈소스들이 있고, 경량화 작업이 반드시 필요하다. 미려한 이펙트와 세련된 룩&필을 위해서는 HTML 또는 3D 렌더링 동작 또한 수월해야 한다. 그래서 브라우저는 경량화하되 성능은 떨어지지 않아야 한다. 오히려 더 좋아져아 할지도 모른다. 일반적으로 브라우저가 돌아가는 환경(PC, Mobile)은 자동차의 CPU/GPU 환경보다 적게는 10배, 많게는 100배 이상 차이가 난다. 좋지 못한 자동차의 하드웨어 사양에서도 PC/Mobile 만큼 빠른 렌더링 동작이 요구된다면 브라우저 성능 향상에 많은 노력이 필요할 것이다. 당연한 이야기지만, 마냥 H/W 사양이 좋아지길 기다리기보다 S/W의 성능 향상 및 퍼포먼스 최적화가 요구되어야 한다. 이것이 자동차 인포테이먼트의 H/W적 한계를 벗어날 수 있는 해결책이 될 수 있다.


앞으로는...

IVI를 위한 웹 애플리케이션은 정말 매력 있는 솔루션이다. 스마트폰이 세상에 나왔을 때 이제 PC의 시대는 저물어 갈 것이라는 예견들이 넘쳐 났다. 하지 만기 술은 사라지지 않는다. PC에 있던 브라우저는 스마트폰으로 이동해 모바일 웹 환경을 만들었다. 웹사이트는 웹앱으로 진화하고 모바일에 맞게 반응형 웹, 프로그레시브 웹 등으로 모바일 웹에 최적화되었다. 자동차 또한 다르지 않을 것이다. 웹이 개척할 새로운 땅이 있으니 웹은 다시 그에 맞게 진화하고 발전할 것이다.


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari