본문 바로가기

개발 이야기

웹플랫폼에 대한 단상 : BONDI & PhoneGap


BONDI
BONDI는 호주의 멋진 해변의 이름이다....
또한 전세계 이동통신사가 모여서 구성한 단체인 OMTP(Open Mobile Terminal Platform)에서 진행하고 있는 웹플랫폼 표준화 프로젝트명이기도 하다.
뭔가 통신사에게 "Blue Ocean"을 제공해주길 기대하면서 지은 이름인지, "Java" 처럼 우연하게 멋진 이름을 찾게 된건지, 아님 담당자들이 모여서 일은 안하고 즐겨 놀러가던 곳인지는 모르겠지만 여하튼 멋진 이름이다.
BONDI는 W3C의 Widget 규격을 기반으로 웹어플리케이션과 웹플랫폼간 Interface를 정의함으로써 결국 웹플랫폼을 위해 통신사가 제조사에 전달할 요구사항을 통일한 규격이라고 볼 수 있다. 
이를 통해 웹어플리케이션은 기존 "Web"의 틀을 벗어나서 Contact, Location, Telephony 등 다양한 단말 기능들을 사용할 수 있게 되었다.

그런데 여기서 잠깐.....
그럼, BONDI가 있기 전에는 웹페이지에서 단말의 특정 기능을 제어할 수 있는 방법이 없었던 걸까?

웹페이지와 브라우저(또는 Container)간 Interface라는 개념은 사실 JavaScript의 탄생에서부터 준비되었던 사항이고, Microsoft의 Internet Explorer 개발자들은 이러한 가능성을 더욱 넓혀 놓았다.
Internet Explorer 4.0 상위 버전은 브라우저라기보다는 WebView를 포함한 다양한  Object의 Container에 가깝다.
Container와 WebView의 분리는 Client 개발자에게 보다 손쉽게 웹과 Client 영역을 혼합할 수 있는 장을 열어주었고
이를 통해 한때 X-Internet 붐이 일어나기도 했었다.
(현재 많은 PC Client들도 X-Internet이란 용어를 쓰지는 않아도 이러한 기능을 이용하고 있다.)

그리고 chrome, Safari 등을 통해 iPhone, Android 등의 스마트폰에도 동일한 개념이 고스란히 녹아 있다.


PhoneGap
PhoneGap은 스마트폰 OS 브라우저들의 이러한 Interface를 이용하여 단말의 기능들을 HTML+Javascript만으로 이용할 수 있도록 해주는 하이브리드앱(Web+App) 오픈소스 플랫폼이다. 
생각해보면 iPhone, 안드로이드, Palm, Windows Mobile 등 다양한 스마트폰 OS에서 BONDI가 꿈꾸던 기능들을 별도의 플랫폼(Runtime) 없이 구현해 버린 셈이다.

PhoneGap은 단말에 BONDI와 같이 별도의 Runtime이 포팅으로 접근한 것이 아니라 단말OS 별 PhoneGap 플랫폼(템플릿)을 제공하여 Native Application과 동일한 결과물을 생성하도록 했다.


BONDI vs. PhoneGap
BONDI가 아무리 매력적인 웹플랫폼을 제시한다 해도 포팅된 단말이 출시되거나 별도로 웹플랫폼을 설치해야 웹어플리케이션이 구동이 가능하다. 또한 이로 인해 단말에서 제공되는 Store(AppStore, Android Market)를 통해 유통되기도 어려운 구조이다.
* 이를 위해 기존 제조사의 Store와 별도로 WAC(Wholesale Application Community)라는 Global 도매 Store를 기획 중이다.

반면 PhoneGap 결과물은 단말에서 바로 실행 가능하며, 각 플랫폼의 Store에서  유통될 수 있는 구조로 되어 있다.
물론, 역으로 단말 OS 별 개발환경이 각각 다른 단점은 가지고 있다.

또한 제조사-통신사간, 통신사-통신사간 여러 이권이 엮여 있고 개발자와 제대로 커뮤니케이션 하기 어려운 표준화 단체보다는 이러한 오픈소스 플랫폼이 개발자에게는 더 현실적인 솔루션을 제시해 주지 않을까?

뿐만 아니라 BONDI는 규격 이외의 기능을 추가하지 못하는 반면 PhoneGap은 오픈 소스로 개발자만의 기능을 Native Code로 추가할 수 있는 구조이다.

개발자라면 조금 번거럽더라도 오픈소스여서 투명하고, 기능 추가/변경이 가능하며, 기존 유통 채널을 이용할 수 있는 PhoneGap을 선택하지 않을까?