본문 바로 가기

[ 테크 ]

스페이스X 우주선을 탄 웹과 리눅스

by김국현

지난달 말 일론 머스크의 스페이스X사는 최초의 민간 유인 우주선 크루 드래곤을 발사했다. 국제우주정거장에 성공적으로 접지했을 뿐만 아니라, 우주선을 지구 밖으로 올려보낸 추진체가 알아서 다시 돌아와 착륙하는 비현실적 기술력을 다시금 자랑했다.


우주로 가는 일은 NASA와 같은 정부 기관만이 할 수 있는 일이라고 생각해 온 나 같은 이에게 이 민영화는 나름의 충격이 있었다.


그래서인지 스페이스X의 소프트웨어 팀은 지난 6월 6일 AMA(Ask Me Anything, 무엇이든 물어보세요) 세션을 열었다. 이렇게 회견을 열게 된 계기는 아마도 이 한 장의 사진이 SNS에 자주 오르내리면서였다. 이 우주 신제품에 대한 궁금증이 폭증하기 시작한 것.

마치 일론 머스크의 테슬라가 차량의 대시보드를 바꿔가고 있듯이, 그의 스페이스X가 우주 탐사선의 조종석도 바꾸고 있다는 스토리의 한 컷이었기에 화제가 되지 않을 수 없었다. 특히 풀 스크린의 화려한 터치 인터페이스가 크로미움이나 자바스크립트와 같은 웹 기술로 만들어졌다는 소식에 모두 놀랐다. 왕년에 자바스크립트 한 번 안 만져 본 개발자 없다는 듯, 우주 개발에 그런 검증 안 된 대중적 기술을 쓰면 안 된다는 둥 비아냥도 적지 않았다. 개발자가 아니라도 크롬 브라우저 때문에 컴퓨터가 느려지거나 먹통이 된 경험은 누구나 있으니까 쉽게 공감되었을 것이다.


AMA에서는 아래와 같은 이야기가 밝혀졌다.

  1. 터치 스크린 UI는 크로미움/자바스크립트로 만들어졌다.
  1. 하지만 많은 걱정과는 달리 통제 시스템 등은 C++로 짜여 있고, 자바스크립트도 마찬가지로 강력한 테스트 공정을 거쳤다.
  1. 테스트 및 자동화에는 파이썬이 쓰인다.
  1. 또한, 여하간의 이유로 터치 스크린이 먹통이 될 경우를 대비해 하드웨어 버튼이 하단에 마련되어 있다.
  1. 테슬라의 하드웨어가 유용(流用)되지는 않았다.
  1. 프로세서는 쿼드 코어 프로세서로 5년 묵은 폰 수준이다.
  1. 리눅스를 쓰지만, 배포판은 자체 제작. 다만 리얼타임(PREEMPT_RT) 패치 정도만으로 적용되고 커널에 큰 수정이 있는 것은 아니다.
  1. '웹 컴포넌트'가 쓰였다.
  1. 자체 제작한 리액티브 프로그래밍 라이브러리가 쓰였다.
  1. 오픈소스 라이브러리도 쓰지만, 코드의 질을 중시하고 품질을 직접 통제해야 하기에 직접 만들어 쓰기도 한다.


살펴보면 상당히 모던한 기술 스택이다. 최신 기술을 일상적으로 쓰는 여느 스타트업의 풍경이다. 항공 우주에 투입되는 기술들은 극단적 보수성을 지닌 경우가 많기에 흥미진진하고 낯설기도 하다. 하지만 바로 이 지점에서 정부에서 민간으로 우주개발이 넘어가는 일의 의미가 엿보인다.


민영화의 성과는 관료주의가 만든 관례의 상식을 의심하고 합리화를 거쳐 감행하는 비용 절감에서 드러난다. 소프트웨어 또한 예외는 아니다. 사실 크롬이라는 모던 브라우저가 만들어지기 위해 지금까지 들어간 세월과 재능의 총합은 어마어마하다. 당대 최고의 기술자들이 참여하고 있는데, 이를 활용하지 않으면 아까운 일이다.


OS에서 개발언어까지 MIT에서 특별제작하고, 동원된 IBM 직원만 4천명에 달하는 아폴로 계획의 추억을 돌이켜 보면 어디 광고회사와 이곳저곳에서 모인 외부 독지가들이 모여 만든 제품을 우주 개발에 쓰다니 있을 수 없는 일이라는 주장도 있을 수 있을지 모르지만, 시대는 그렇게 바뀌어 간다.


이 세상에는 예뻐서 느낌이 달라져 벌어지는 일들이 많다. 영화에서 컴퓨터가 나오는 화면은 SF든 아니든 윈도나 맥과 같은 기성품을 쓰지 않고 대개 아예 새로 그린다. 늘 생전 처음 보는 OS 대화 상자가 그려지곤 한다.


그리고 이렇게 픽션에서 그려진 취향은 현실이 되기도 한다. 영화관을 고려해서인지 영화 속 UI는 다크하곤 했는데, 요즈음 상용 OS도 영화 OS처럼 다크 모드가 유행하기 시작했다.


현실이 영화 같은 풍경을 연출하지 못하리란 법 없다. 스타트업은 꿈을 파는 일. 터치 스크린을 만지는 우주인의 모습은 과거의 풍경과 비교해 가장 훌륭한 홍보가 된다. 의도했든 하지 않든 테슬라에서 추구했던 일과 오버랩되면서 이야깃거리가 생기기도 한다.


1992년부터 2011년까지 활약한 스페이스 셔틀 엔데버의 조종석을 화면의 스크래치와 나사의 마모까지 보이는 수준의 초고해상도로 잠시 살펴 보자. 각각의 데이터를 나타내는 모든 게이지가 개별 부품으로 나사로 고정되어 있고, 명령어는 아폴로 시대처럼 16진수 텐키로 입력하는 듯 키패드가 닳아 있다.


원래 컴퓨터의 여명기란 콘솔에서 묵묵히 명령어를 외워 타이핑을 치는 법이다. 하지만 지금은 스마트폰 이후의 세계. 앱을 내려받아 손가락으로 화면을 문지르는 일에 인류는 적응했다. 이 시대 정신을 온갖 곳에 데려오려고 다들 안달이다.


테슬라 같은 자동차도 그렇게 변해가고 있다. 위험하냐고 묻거든 앞으로는 사람이 운전할 필요가 없을 것이라고 화답하는 듯 스마트폰을 닮은 UI/UX 트렌드는 매진 중이다. 사실 크루 드래곤호는 이미 사람이 거의 운전하지 않는다. 오히려 다양한 정보를 한눈에 ‘비쥬얼라이즈’해주는 데이터 시각화로 더 거시적 상황의 조감도를 탑승자에게 전해주는 것이 중요하고, 엔진이나 방향타 조작과 같은 일들은 모두 기계가 할 일이라 이야기하는 듯하다.


스페이스X는 로켓도 재활용하는 회사. 빈번한 조종석 업그레이드도 염두에 뒀을 것이다. 입출력이 하드웨어로 고정된 것보다는 화면 하나에서 소프트웨어로 재배치될 수 있으면 향후 개선이 쉽다.


그렇지만 여전히 크로미움/자바스크립트가 믿음이 가지 않을 때 기억해 볼 만한 AMA 내용이 하나 있다. 스페이스X 개발자들이 쓰는 에디터는 다양하지만, 답글 작성자는 VSCode를 쓴다고 답했다.


이런.


VSCode 또한 크로미움/자바스크립트로 만들어졌다. 우주를 가는 코드를 짜는 도구에도 쓰인 기술이라면, 우주로 보내줘도 무관하리라고 생각했을 수 있겠다.


지구 표준이 된 웹과 리눅스는 이제 이렇게 우주 정복을 향해 대기권 밖으로 떠올랐다.