한국형 모바일 운영체제(OS)의 허와 실
얼마전 구글의 모토로라 인수 이후 지식경제부에서 정부와 삼성전자, LG전자 등 산업계 컨소시엄을 구성해서 애플, 구글에 대항할 수 잇는 “한국형 모바일 운영체제”를 독자 개발할 것이라는 발표를 한 뒤, 수많은 IT 전문가들의 현실성 논란에 대한 따가운 질타를 받은바 있다.
이미 많은 IT 전문가들도 지적한 부분이지만, WIPI 사례에서 본 것 처럼 국가 주도형 플랫폼 사업의 전형적인 문제가 다시 언급되었다. 물론 지경부에서는 WIPI 사례를 거울삼아 개방형 그리고 클라우드 중심으로 설계를 할 것이라고 하지만 허울좋은 전시행정일 뿐 대기업 배불리고 세금만 낭비할 것이라는 예상이 크다. 어찌보면 그만큼 정부의 IT 정책에 대해서 국민들의 불신이 크다고 볼 수 있다.
여전히 해결되지 않은 공인인증서, 엑티브엑스, 게임등급위원회 등등 트랜드를 따라가지 못하는 정부 정책에 대해서 신뢰를 가지기 어려운 것이 현실이다.
필자의 “위피 의무화 폐지와 국내 무선 인터넷 변화” 컬럼에서도 언급하였지만, 2009년 위피(WPI) 의무화가 폐지될 때까지 국내 무선 인터넷 플랫폼은 통합되어 있는것 처럼 보였지만, 오히려 아이폰 등 스마트폰 도입의 걸림돌로 작용하여 국내 모바일 개발 인프라만 후퇴시켰다. 당시에도 위피 의무화를 주도한 정부의 주장은 해외로 로열티 유출이라는 명분이었다. 하지만 위피 또한 상당부분이 당시 썬마이크로시스템즈의 특허를 침해하였고 다시 로열티를 내야 하는 웃지못할 일이 발생하기도 하였다. 지금도 정부의 명분은 해외 모바일 운영체제에 종속된 국내 스마트폰 환경을 보호해야 한다는 것일 것이다. 분명히 이러한 시도는 필요하겠지만 보다 신중한 접근 방법이 필요할 것이다.
“한국형 모바일 운영체제” 개발에 앞서 몇가지 질문을 해보고 싶다.
- 어떻게 생태계를 만들어 낼 것인가?
- 누가 사용하게 될 것인가?
- 개발자들이 왜 사용해야 하는가?
우선 모바일 생태계는 운영체제가 존재한다고 저절로 만들어지는 것이 아니다. 모바일 어플리케이션 유통의 핵심인 어플리케이션 스토어(이하 “앱스토어”)가 존재하지 않으면 무용지물이다. SK텔레콤의 T-스토어, 삼성전자의 삼성앱스 등등 굴지의 통신사와 제조사들이 많은 노력을 기울이고 있지만 아직은 애플 앱스토어나 구글 안드로이드마켓에 견줄바는 아니다. 이런 상황에서 운영체제 + 앱스토어까지 고려한다면 시간과 비용의 문제를 해결할 수 없을 것이다.
물론 K-WAC(Korea-Wholesale Application Community)을 대안으로 생각하는 사람들도 있겠지만, WAC조차 아직은 시작에 불과하며 애플이나 구글의 스토어와 경쟁할 수준은 아니다. 글로벌 앱스토어와 경쟁하기에 시기도 규모도 맞지가 않다.
정부에서는 “한국형 모바일 운영체제”가 만들어지면 국내 제조사들이 우선적으로 탑재하여 출시할 것이라 기대하고 있을 것이다. 국내 제조사들 입장에서는 멀티 운영체제 전략의 하나로 사용할 뿐 여전히 해외 시장에서 경쟁력을 가진 안드로이드에 집중할 것이다. 만약 의무화가 된다면 제2의 위피가 될 것은 불을 보듯 뻔할 것이다. 어떤 형태로든 제품으로 출시가 되었다고 가정하더라도 어떤 개발자가 사용하게 될 지 의문이다. 스토어의 규모도 부족하고 열약한 국내 개발 환경에서 한국형 운영체제를 위한 앱을 만들 개발자는 누구인가 생각해봐야 한다. 아마도 제조사나 통신사에 납품을 위한 SI 도구로 전락하게 될 것이다.
이런 문제들이 해결되었다고 하더라도 모바일 운영체제를 만든다는 것은 쉬운 일이 아니다. 이미 HP의 경우 webOS 탑재 선언 후 6개월만에 실패를 인정했다. 정부가 추진하고자 하는 웹기반 모바일 운영체제는 HP의 webOS와 가장 유사한 형태다. 이미 공개되어 있는 다양한 운영체제 커널들이 존재하고 오픈소스도 다양하게 공개되어 있지만, 이런 것들의 단순한 조합만으로 운영체제가 만들어 지는 것은 아니다. 운영체제는 커널 뿐만 아니라 그래픽엔진(OpenGL ES), 폰트, 웹렌더링(Webkit), 보안모듈, 통신모듈, 하드웨어 디바이스 지원, 멀티터치 등 고민해야 될 부분이 한 두개가 아니다. 심지어는 웹렌더링만 만드는데도 수년이 걸리기도 한다. Opera 같은 모바일 브라우저 회사에는 직원이 700명이 넘고 상당수가 엔지니어다. 삼성전자의 경우만 하더라도 바다 운영체제를 상용화하기까지 5년 가까운 시간이 소모되었다. 결론적으로 “한국형 모바일 운영체제”는 정책의 문제뿐만 아니라 실제 개발의 난이도 또한 버겁기는 마찬가지다. 이러한 논의가 지금 시점에 이루어진다는 것 자체가 문제라고 보인다.
본고에서는 “한국형 모바일 운영체제” 정책에 대한 반론이나 대안을 내놓고자 하는 것이 목적은 아니다. 최근에 언론을 통해서 많이 거론되고 있는 운영체제 그리고 플랫폼에 대한 보다 깊이있는 이해와 특히, 다양한 모바일 운영체제와 개발환경 때문에 문제가 되고 있는 모바일 플랫폼 파편화에 대한 대안으로 이슈가 되고 있는 크로스 플랫폼에 대한 분석과 고민을 하고자 한다.
플랫폼에 대한 이해
플랫폼은 간단하게는 소프트웨어를 실행할 수 있는 기반을 말한다. 일반적으로 플랫폼은 운영체제, 런타임 라이브러리, 미들웨어, GUI, SDK 등을 포함한다고 위키에서는 정의하고 있다. 그리고 운영체제는 커널을 중심으로 메모리관리, 멀티태스킹, 파일시스템 관리, 입출력 관리를 해주는 도구라고 정의할 수 있다. 이 설명에서 확인할 수 있는 것은 플랫폼이 운영체제를 포괄하는 의미로 사용되고 있다는 사실이다. 그런 측면에서 구글 안드로이드, 애플의 iOS, 삼성전자의 바다는 운영체제를 내장한 플랫폼이라고 볼 수 있다. 포괄적인 의미에서 애플의 앱스토어나 구글의 안드로이드 마켓, 그리고 클라우드까지 모두 유기적으로 연결되어 있는 하나의 플랫폼이라고 할 수 있다. 하지만 최근에 플랫폼과 운영체제의 구분이 어려워진 이유 중에 하나는 게임 플랫폼, 소셜 플랫폼, 메시징 플랫폼 등과 같은 운영체제를 포함하지 않는 서비스 플랫폼의 증가 때문이다. 이제는 기술적인 용어의 구분으로 플랫폼을 구분 짓은 것은 큰 의미가 없는 것도 사실이다. (이런 구분법으로 본다면 플랫폼이 운영체제보다 더 기술적으로 접근하기 쉬울 수 도 있다)
어째튼 이런 다양한 플랫폼의 존재가 해당 플랫폼을 사용하는 사용자에게는 큰 불편이 아닐 수도 있겠지만, 어플리케이션을 개발하는 기업이나 개발자에게는 다양한 모바일 플랫폼마다 앱 개발 기술이 상이하여 개별 플랫폼별로 개발을 해야하기 때문에 개발 비용과 기간이 증가하게 되는 단점이 있다. 웹표준을 이용하면 하나의 웹 기술로 다양한 플랫폼에 대응할 수 있기 때문에 이러한 문제를 해결할 수 있을 것이라고 생각되지만 여러가지 문제로 인하여 아직까지는 완전한 해결책이라고 보기는 어렵다. 그래서 대두된 것이 크로스 플랫폼(Cross Platform) 개발환경이다.
크로스 플랫폼이란?
크로스 플랫폼은 2개 이상의 운영체제 또는 플랫폼에서 공통으로 사용되는 소프트웨어 또는 어플리케이션을 말한다. 가장 대표적인 사례가 자바(Java) 언어다. 여기서 다시 세분화 되어 지면 크로스 컴파일, 크로스 프로그래밍 언어, 크로스 API 등으로 나뉠 수 있다. 자바로 개발된 소스코드는 개별 운영체제에서 다시 컴파일되어 목적코드가 생성되어야 비로소 해당 플랫폼에서 구동되는 어플리케이션이 된다. 이런과정에서 자바는 하나의 문법과 API를 가지는 언어이며, 개별 플랫폼을 위한 크로스 컴파일 도구를 포함하고 있다.
자바라는 훌륭한 크로스 플랫폼 도구가 존재함에도 불구하고 최근에 다시 이슈가 된 이유는 아이폰에 사용되는 iOS 때문이다. 실제로 자바로 개발이 가능한 모바일 플랫폼은 구글 안드로이드 정도 뿐이다.
아래 [표 1]에서 보는 바와 같이 다양한 모바일 플랫폼들이 모두 상이한 개발언어로 개발되어야 한다.
[표 1.] 모바일 프랫폼별 개발언어
제조사 | 애플 | 구글 | 마이크로소프트 | 삼성전자 | RIM | HP
플랫폼(OS) | iOS | 안드로이드 | 윈도폰7 | 바다 | 블랙베리 | Palm webOS
개발언어 | Objective-C | Java | C# | C++ | Java | JavaScript
특정 모바일 플랫폼의 시장 점유율이 압도적이라면 모르겠지만 현재와 같이 iOS와 안드로이드가 시장을 양분한 상태에서 마이크로소프트의 윈도폰7이 약진하고 삼성전자에서 바다에 꾸준히 투자를 하게 된다면 모바일 앱 개발사의 경우 울며겨자먹기로 멀티 플랫폼을 위한 앱 개발에 중복투자를 할 수 밖에 없는 것이 현실이다.
이런 모바일 플랫폼 파편화을 통일하고자 하는 의지가 크로스 플랫폼 개발환경이고, 최근에 가장 각광받는 기술은 HTML5 기술을 활용한 모바일 웹 플랫폼이라고 할 수 있다. 특히 iOS와 안드로이드가 모두 웹킷(Webkit) 기반의 웹뷰(Webview)를 제공하고 있고, 애플과 구글이 모두 웹킷 오픈소스 프로젝트 참여사이기 때문에 어느정도 호환성도 검증되어 있는 상태이기 때문에 많은 솔루션 업체들이 모바일 웹기반 크로스 플랫폼 개발도구를 출시하고 있다. 대표적인 솔루션은 아래 [표 2]와 같다.
[표 2.] 웹 기반 모바일 크로스 플랫폼 제품들
개발사 | Nitobi | Appcelerator | Rhomobile | KTH
솔루션 | PhoneGap | Titanium | Rhodes | Appspresso
그 외에도 최근에는 SKT, KT, AT&T, Verizon 등 전세계 24개 주요 통신사업자와 삼성전자, LG전자와 같은 디바이스 제조사들이 참여한 글로벌 통합 앱 스토어인 WAC(Wholesale Applications Community)에서 웹기반 크로스 프랫폼인 Waikiki API를 준비하고 있다.
어떤 형태로든 웹기반 모바일 크로스 플랫폼 제품들은 C, Java와 같은 프로그래밍 언어보다 쉽고 편하게 접근할 수 있는 웹 요소들(HTML, JavaScript, CSS)을 가지고 앱 같은 웹을 개발할 수 있게 해준다. 또한 HTML5에 대한 기대심리 때문에 가능성에 대한 기대 또한 큰 것이 사실이다. 하지만 이런 시도들이 장미빛 전망만을 보여주고 있는 것은 아니다. 최근에 화제가 되었던 “HTML5에 대한 불편한 진실”에서는 아직은 수정하고 보완해야 할 사항들이 많이 존재한다고 주장하고 있다. 물론 여기 내용이 100% 옳다고 볼수는 없다. 일부 내용들은 HTML5의 문제라기 보다는 클라이언트 앱 자체의 문제인 경우도 많이 있다. 그럼에도 불구하고 걱정이 되는 부분 몇가지는 오프라인 앱에서 로컬 스로리지 데이타 동기화 문제, 자바스크립트의 과도한 사용으로 인한 브라우저의 한계, 그리고 여전히 아직은 무거운 브라우저 그리고 플랫폼간의 브라우저 호환성 같은 것들이다. 물론 아직 HTML5가 진행중인 기술이고 표준이 완성되어지는 시점에는 이런 문제들이 상당부분 해소될 것이라 보지만, 아직은 고려해야 할 것이 많은 것도 사실이다.
이런 웹기반 모바일 크로스 플랫폼은 다른 표현으로 하이브리드 모바일 어플리케이션이라고 불리기도 한다. 하지만 구현 방법의 핵심이 웹기술을 이용하는 것은 동일하지만, 엄밀히 말하자면 웹기반 모바일 크로스 플랫폼과 달리 하이브리드 어플리케이션은 플랫폼을 지칭하기 보다는 개발방법론에 가깝다. 실제로 필자가 2005년 정통부 우수신기술 과제로 수행한 “모바일 엔터프라이즈 비즈니스 플랫폼” 솔루션의 경우 핵심 경쟁력은 웹기반 하이브리드 개발 방법론 이었다. 지금 모바일 플랫폼과의 차이점은 웹기술이 컨텐츠와 레이아웃을 만드는 용도에 국한되어 있고, 자바스크립트 보다는 전용 태그(TAG) 기반으로 대부분의 행위를 프로그래밍 해야 하는 방식이었지만, 이것도 하이브리드 어플리케이션 개발방식 중에 하나라는 것이다. 이처럼 하이브리드 어플리케이션은 웹기술을 이용하기는 하지만 네이티브 코드의 비중이 가변적이라는 차이가 있다.
최근에 발표된 페이스북 앱의 경우도 마찬가지의 경우라고 본다. 웹기반으로 많은 부분을 변경하였지만 기본적인 컨셉은 하이브리드 어플리케이션에 가깝다. 다만 멀티 운영체제, 멀티 디바이스에서 N-스크린을 고려한 UI/UX 컨셉을 유지하기 위해서 텍스트/이미지를 표현하기 위한 영역을 최대한 HTML과 웹기술을 가지고 만들어졌다. 하지만 여전히 지도, 채팅 등 디바이스 운영체제에 의존적인 부분은 네이티브 코드로 만들어졌다. 사실 페이스북의 이러한 시도는 오래전부터 시작되어 왔다. 심지어 피쳐폰 기반에서도 페이스북은 서비스의 멀티플랫폼을 지원하기 위하여 HTML 기반으로 앱을 만들어서 다양한 운영체제에 적용시키기 위한 노력을 지속하였다.
네이티브 크로스 플랫폼
현재 제품으로 출시된 웹 기반 모바일 크로스 플랫폼들이 모두 HTML5를 지원하는 것은 아니며, 개별 모바일 플랫폼에 맞도록 기능과 API에 대한 정리가 많이 되어 있어서 HTML5 문제와 상관없이 일정 수준 이상의 성능은 보장한다. 여기서 다시 한번 고민해야 할 부분은 쉽고 편하게 다양한 모바일 플랫폼에 동시에 적용이 가능한 앱을 만들수 있지만, 여전히 대세는 애플의 앱스토어이고 상위권의 앱들은 Xcode에서 Objective-C를 가지고 개발된 것들이다. 사실 iOS 전문 개발자들은 웹기반 모바일 크로스 플랫폼을 사용해야 할 이유를 느끼지 못하고 있다. 물론 웹의 역사를 보면 CGI, Servlet 개발방법들이 JavaScript와 CSS 기술에 밀려난 사례가 있지만, 아직은 시기상조 인것 같다. “디벨로퍼 이코노믹스 2011” 보고서에 따르면 지난해 말 기준으로 애플 앱스토어에 등록된 앱은 약 40만개로 전체 모바일 앱 시장의 70% 이상 점유율을 가지고 있다. 40만개의 앱중에 상당수가 Objective-C로 개발되었음은 말할 것도 없다. 그리고 이런 iOS 개발자들이 안드로이드 어플리케이션 개발을 위한 새롭게 자바 언어를 익히고 시간을 투자하는 경우도 많지 않다. 결국 네이티브 어플리케이션 개발자들을 위한 크로스 플랫폼 환경도 중요한 시장 중에 하나라고 볼 수 있다.
네이티브 어플리케이션의 장점은 그래픽/UI 처리 능력이 뛰어나서 웹기반 앱들보다 보다 섬세한 UI를 구성할 수 있고, 스토리지 관리나 디바이스 제어가 유리하다. 특정 어플리케이션의 경우에는 네이티브 형태가 아니면 개발이 불가능한 경우도 있고, 모바일 게임 어플리케이션의 경우 거의 대부분이 네이티브 형태로 개발되어진다. 네이티브라고 해서 웹기술을 이용하지 않는 것은 아니다. 텍스트/이미지 컨텐츠 처리량이 많다면, 그리고 효율에 문제가 없다면 네이티브 어플리케이션을 개발할때도 브라우져 모듈을 가져와서 HTML/CSS/JavaScript로 처리하는 경우도 많이 있다. 이런 경우 하이브리드 개발방법론을 네이티브에 적용한 경우라고 보면 될 것이다. 문제는 이런 네이티브 어플리케이션도 크로스 플랫폼이 가능한지? 그리고 개발언어는 어떤것이 되어야할지? 등이 궁금하지 않을 수 없다.
우선 네이티브 크로스 플랫폼의 원리에 대해서 이해해 보도록 하자. 네이티브 크로스 플랫폼의 원리는 개별 운영체제에 존재하는 어플리케이션 프레임워크와 라이브러리의 기능을 대체하거나 브릿지 역활을 함으로서 네이티브 크로스 플랫폼 개발환경으로 제작된 앱들이 개별 운영체제에서 네이티브하게 동작하게 되는 것을 말한다. 즉, 개별 플랫폼에 존재하는 라이브러리와 API를 사용하지 않고, 네이티브 크로스 플랫폼 솔루션이 제공하는 API를 이용하여 개발하기 때문에 개별 플랫폼의 API를 알지 못해도 하나의 API만 숙지하면 멀티 플랫폼에서 동작하는 앱을 만들 수 있다는 것이다.
일반적인 경우 네이티브 크로스 플랫폼 개발환경은 C/C++ 언어로 비주얼스튜디오나 Xcode 환경에서 개발된다. 자바 대신에 C/C++이 기본언어가 된 이유는 대부분의 모바일 플랫폼의 커널이 UNIX/Linux 계열의 커널과 프레임워크를 가지고 있어서 C/C++로 개발된 앱을 이식시키기가 용이하기 때문이다. 안드로이드의 경우 플랫폼에서 NDK를 지원하고 있기 때문에 대부분의 C/C++로 개발된 앱들이 잘 이식되고 또 잘 동작한다. 아마도 많은 개발자들이 자바로 개발된 앱들이 iOS에서 동작하기를 원하겠지만 자바의 특성인 가상머신 플랫폼의 구조적인 이유로 쉽지만은 않다. 어플리케이션 프레임워크와 라이브러리를 대체한다는 것이 말은 쉽지만 사실 멀티 플랫폼을 위한 통합 미들웨어를 만드는 것과 다름이 없다. 그래서 안정적인 기능을 제공하는 솔루션도 많지 않다. 현재 가장 유명한 네이티브 크로스 플랫폼은 Ideaworks3D라는 회사에서 개발한 “Marmalade”라는 제품이다. 이 제품의 장점은 드래그앤드롭 방식의 UI 빌더와 시뮬레이터를 제공하기 때문에 N-스크린을 대응하는 UI를 쉽게 개발할 수 있고, 쉽게 확인할 수 있기 때문에 C/C++ 개발자들에게는 웹기반 크로스 플랫폼보다 오히려 사용하기가 더 쉬울 수도 있다. 이미 이 회사는 삼성전자, LG전자, KT와 같은 국내회사들과도 제휴가 되어 있다고 한다.
네이티브 크로스 플랫폼을 제공하는 또 다른 회사는 2009년에 만들어진 “UXPlus”라는 국내기업이다. 얼마전 매일경제가 주최하는 “모바일창업코리아 2011-슈퍼스타 M”에서 7개 예비 슈퍼스타에 선정되기도 했다. 사실 척박한 국내 실정을 감안하면 중견 IT 기업들도 쉽게 시도하지 못하는 네이티브 크로스 플랫폼 솔루션을 만들어 냈다는 사실은 놀라운 일이다. SK커뮤니케이션에서 출시한 “네이트온 UC”의 경우 이 회사의 제품인 “아쿠아 플랫폼”으로 개발되었다고 한다. 아이폰, 안드로이드, 윈도모바일 이렇게 3가지 모바일 플랫폼이 하나의 소스코드와 하나의 UI로 동일하게 동작하고 있다. 아쿠아 플랫폼 역시 Marmalade와 마찬가지로 비주얼스튜디오, Xcode 개발환경을 사용하고 있으며, 자체 개발한 N-스크린을 대응할 수 있는 UI빌더와 시뮬레이터를 제공한다.
크로스 플랫폼은 새로운 플랫폼 영역으로 발전
지금까지 다양한 웹/네이티브 기반 크로스 플랫폼에 대해서 알아보았다. 서두에 뜬금없이 “한국형 모바일 운영체제의 허와 실”이란 주제로 시작하게 된 이유는 정부관계자들이 좀 더 시야를 넓힐 필요가 있다는 취지 때문이다. 당장 그럴듯 하게 보이는 일 보다는 현실적으로 국내 개발 인프라를 발전시킬 수 있는 투자가 필요하다. 그런 취지에서 정부가 대기업과 손을 잡고 운영체제를 만들겠다는 논리보다는 Appspresso나 아쿠아 플랫폼과 같은 국산 크로스 플랫폼을 정부와 기업이 협력 발전시켜서 웹/네이티브 기반 통합 크로스 플랫폼을 만드는 것이 어떨까 생각한다.
네이티브 크로스 플랫폼의 경우 시스템 구조상 운영체제 커널 바로 위에서 미들웨어 역활을 수행한다. 안정적인 미들웨어 역활을 할 수 있는 크로스 플랫폼이 대중화 된다면 향후 커널을 통합하여 독립적인 모바일 플랫폼으로의 전환도 생각해 볼 수 있다. 내년부터 블랙베리에서도 안드로이드 앱 사용이 가능하게 된다고 하는데, 마찬가지로 안드로이드를 위한 미들웨어 기능까지 탑재하겠다는 의미로 해석된다. 네이티브 크로스 플랫폼 기술을 활용한 미들웨어 인프라를 구성하고, 웹기반 크로스 플랫폼을 이용하여 쉬운 개발환경을 제공하는 통합 플랫폼을 만들 수 있다면 진정한 한국형 모바일 플랫폼이 되지 않을까 기대한다.
완성된 통합 플랫폼을 국내 IT 기업과 개발자들한테 보급하여, 애플 앱스토어와 안드로이드 마켓에서 국내 기업들과 개발자들이 보다 경쟁력을 가진다면, 국내 모바일 앱 인프라도 발전할 수 있고, 개발자들도 효과적인 개발을 할 수 있게 될 것이다. 글로벌 앱스토어 시장에서의 경쟁력이 당장 모바일 운영체제를 만드는 것보다 생색이 나지는 않겠지만, 통합 플랫폼을 통해서 만들어진 모바일 앱들이 앱스토어에서 많은 비중을 차지하게 된다면, 향후에는 플랫폼 시장에 대한 출사표를 던질 수도 있지 않을까 생각한다. 처음부터 거창하게 시작하는것 보다는 기초체력과 인프라를 만드는 것이 우선일 것이다.
35개국 200만명의 뷰티컨설턴트를 거느리고 있는 미국 최대 다단계 화장품 판매 회사인 “Mary Kay Cosmetic”의 창업자 “Mary Kay Ash”가 말을 기억할 필요가 있다. “Little success paves the way to bigger success (작은 성공이 보다 큰 성공을 만들어 낸다)” @
(본 글은 2011년 10월 18일 KT경제경영연구소 Digieco Issue&Trend에 기고한 글입니다.)
