모바일 시장에서 두각을 나타날 만한 아이디어를 갖고 있는 개발자가 성공적으로 투자를 받아 회사를 창업했다고 하자. 멋지게 해당 서비스를 기획하고 실제 개발을 해야 하는 상황에 이르렀다고 하자.
그렇다면 아마도 이러한 문제에 직면할 것이다. 도대체 어떤 플랫폼용으로 만들 것인가?
앱스토어라는 애플리케이션 마켓플레이스가 가장 활성화되어 있는 애플용이 좋을 까? 아니면 전 세계에서 가장 많은 휴대폰을 판매하는 노키아나 삼성전자 휴대폰을 대상으로 할 것인가? 아마도 여러 복합적인 의사 결정에 따라 애플 아이폰 SDK나 심비안 SDK 또는 윈도모바일 SDK 중의 하나를 이용해 애플리케이션을 개발하게 될 것이다.
이같은 개발 환경은 개발자와 개발회사에 커다란 부담이다. 가장 근본적인 고민은 모바일 플랫폼이 너무 많다는 것이다.
현재 공개된 대표적인 모바일 플랫폼만 하더라도 애플 아이폰 SDK, MS 윈도 모바일 SDK , 구글 안드로이드SDK , 심비안 SDK , 팜 Mojo SDK 등이 시장에 나와있다.
이들 SDK중 하나를 선택하는 것은 쉬운 일은 아니다. 가령 여러가지 상황을 고려해서 플랫폼을 선택했다고 하더라고 해당 플랫폼에 최적화된 애플리케이션을 개발하기 위해서는 해당 플랫폼에 정통한 모바일 애플리케이션 개발자가 필요하다.
일반적으로 웹이나 PC 플랫폼과 달리 모바일 플랫폼에서 개발할 때는 디바이스 자체의 특성을 잘 이해해야 좋은 성능과 품질의 애플리케이션을 개발할 수 있다.
일단 여러 우여곡절 끝에 하나의 모바일 애플리케이션을 개발했다고 치자. 시장 확대를 위해서는 다른 플랫폼용으로 해당 모바일 애플리케이션을 포팅해야 한다. 말이 포팅이지 거의 새롭게 개발하는 수준이다. 이를 위해서는 숙련된 개발자를 확보해야 하는 등 많은 비용이 든다. 개발 후에는 유지보수를 위해 또 비용이 발생한다. 참으로 비극적인 상황이 아닐 수 없다.
더 우울한 것은 동일한 모바일 플랫폼이라고 하더라도 버전에 따라 호환이 안되는 경우도 다수 발생하기 때문에 많은 버전을 개발하고 관리해야만 한다는 것이다.
이러한 상황을 해결하고 보다 손쉽게 모든 모바일 플랫폼상에서 구동되는 모바일 애플리케이션을 개발할 수 없을까?
물론 몇가지 방법을 상상할 수 있을 것이다. 먼저 모바일 플랫폼을 하나로 통합하고 이를 기반으로 개발하는 것이다. 마치 PC 플랫폼이 윈도로 통일되었듯이 모바일 플랫폼들을 하나의 특정 플랫폼으로 통합하는 것이다. 그러나 이 방법은 불가능하다. 사용자도 플랫폼 통합에 관심이 없겠지만 업체들 입장에서도 이해관계가 다양하기 때문에 통합은 불가능하다.
또 하나 생각해 볼 수 있는 방법으로는 모든 모바일 플랫폼상에서 구동되는 통합된 API를 이용하는 것이다. 마치 노키아가 심비안 S60 플랫폼을 통해 개발하듯이 모든 모바일 플랫폼상에 운용되는 애플리케이션을 개발할 수 있는 SDK를 개발한 후 이용하는 것이다.
그러나 이 방법도 하부에 있는 모바일 플랫폼에 의존적이기 때문에 완벽한 이식성을 제공하기 어려울 뿐만 아니라 이러한 공통 API를 설계하고 개발하는 것은 무척 어렵다. 왜냐하면 모바일 플랫폼은 디바이스 의존도가 강하기 때문이다.
현재 차이나모바일, 소프트뱅크, 보다폰 세개의 이동통신사업자가 만든 컨소시엄인 JIL(Joint Innovation Lab)은 이러한 접근 방법을 사용한다. JIL(www.jil.org)은 JIL JavaScript Extension을 이용하여 모바일 디바이스를 제어하는 위젯을 개발하고 이를 구동하는 런타임 환경을 제공한다. 이 위젯은 모바일 플랫폼과는 무관하게 구동된다. 그러나 JIL은 모바일 애플리케이션을 위한 것이 아니라 위젯 개발을 위한 개발 환경이다.
또 하나의 방법은 개발과 포팅 환경을 통합하여 하나의 통합된 개발 환경에서 개발을 하고 이를 바탕으로 원하는 플랫폼으로 보다 손쉽게 포팅하게 해주는 것이다. 무척 현실적인 방법이나 모바일 플랫폼간 포팅은 쉽지 않아보인다.
실제 이클립스 펄서(Pulsar)는 이러한 접근 방법을 사용한다. 이클립스 펄서는 이클립스 툴 기반의 모바일 애플리케이션 개발 환경으로 모바일 업체들이 자체 SDK를 펄서 명세에 맞춰 공급하면 플러그인 방식으로 다운로드하여 사용할 수 있다.
현재 모토로라는 현재 자바 ME SDK과 노키아 포럼 S60 SDK, 그리고 모바일용 eRCP(embeded Rich Client Platform)를 제공하고 있다. 현재 수준은 모바일 플랫폼 업체들의 SDK를 이클립스 기반으로 통합하여 단일 환경에서 개발할 수 있게 해주는 수준이다.
지금까지 고민해 본 방법은 마치 데스크톱상의 윈도 플랫폼에서 구동되는 윈도 프로그램을 개발하는 것처럼 모바일 디바이스 상에서 구동되는 모바일 애플리케이션을 개발하는 것이다. 그러나 생각을 좀 바꿔 보면 특정 모바일 플랫폼 종속에서 벗어나는 모바일 애플리케이션을 개발할 수 있다. 바로 웹 기반 모바일 애플리케이션을 개발하는 것이다.
모바일 웹 애플리케이션은 모바일 다바이스에 설치되어 운영되는 모바일 애플리케이션이 아니라 네트워크를 통해 언제 어디서나 접속하여 다운로드를 받은 후 웹 브라우저를 통해 사용할 수 있다. 이러한 방법을 모바일 클라우드 기반 애플리케이션이라고도 한다.
이러한 클라우드 기반 모바일 웹 애플리케이션 개발에 있어 해결해야 할 문제로 모바일 애플리케이션의 킬러 분야인 게임 분야에서 우수한 프로그램의 개발이 가능한가? , 네트워크가 불가능한 상황에서 웹 애플리케이션을 어떻게 구동할 것인가?, 그리고 웹 프로그래밍을 통해 디바이스의 제어가 가능한가? 등을 꼽을 수 있다.
결론부터 말하자면 이러한 문제들은 일부는 해결되었고 일부는 해결되어 가고 있으며 모바일 웹이 모바일 플랫폼의 주류중 하나가 될 것이다.
이러한 흐름의 중심에는 W3C가 마련한 HTML5 표준이 있다. 기술적인 내용을 살펴보는 것에 앞서 표준은 산업체간 이해관계가 걸린 전쟁이라는 것을 이해해야 한다. 단순히 업체간 협의에 의해 결정되는 것이 아니라 철저한 이해관계에 의해 움직인다. 현재 HTML5 표준을 강력하게 추진하고 있는 업체는 구글과 애플, 그리고 팜 , 오페라 등을 들 수 있다. MS 반대 진영이 강력하게 추진하고 있는 상황이라고 할 수 있다. 물론 실세는 구글이다. 구글은 W3C 표준에 자신들의 기술을 반영하여 웹 표준을 리드하고 있다.
이러한 HTML5에는 앞서 언급한 모바일 웹 애플리케이션을 개발할 때 발생하는 문제점들의 해결 방안을 상당수 포함하고 있다. 대표적인 것이 게임처럼 복잡한 그래픽 처리를 가능하게 하는 Canvas 태그와 네트워크가 불가능한 상황에서도 디바이스에 있는 스토리지를 이용할 수 있어 응용 프로그램을 구동하고 이를 온라인 접속시 동기화 시키는 것을 가능하게 하는 기능 등이 포함되어 있다. 이 스펙은 구글의 오픈소스 프로젝트 구글 기어스(Gears)를 HTML5에 포함시킨 것이다.
최근 W3C는 Device API Working Group을 발족하여 웹이나 가젯 등의 애플리케이션에서 다바이스를 제어하는 표준API를 제정에 착수했다.
W3C Device API외에 자바스크립트로 모바일 디바이스를 제어할 수 있도록 해주는 표준으로 BONDI가 있다. BONDI는 이동통신 사업자들의 포럼인 OMTP(Open Mobile Terminal Platform)에서 제정한 런타임 플랫폼으로 웹애플리케이션이나 위젯 등에서 모바일 디바이스 기능을 안전하게 제어하게 해주는 모바일 웹 플랫폼이다.
BONDI는 HTML, JavaScript, CSS 등 표준 웹 개발 기술로 작성된 웹 애플리케이션에서 모바일 디바이스에 있는 애플리케이션 , 카메라, 커뮤니케이션 로그, 이미지 갤러리, 위치 정보, 메시징, 스토리지, 개인정보 관리(PIMS) , 디바이스 정보 등을 제어할 수 있게 해주는 모바일 웹 플랫폼이다.
이를 위해 BONDI는 모바일 디바이스를 제어할 수 있는 자바스크립트 EXtension를 제공한다. 현재 1.0 스펙까지 출시되었고 참조 구현체와 SDK를 배포하고 있다. 현재 BONDI API와 노키아 API가 W3C Device API에 제출되어 있는 상태이기 때문에 W3C Device API에 유사 표준이 포함될 것으로 예상된다.
이러한 HTML5, Device API, BONDI 등의 이면에는 여러 업체들의 복잡한 이해관계가 존재한다. 물론 이러한 이해관계의 끝에는 모바일 웹 애플리케이션이 존재한다. 실제 표준을 진행하는 과정에서 자신의 기술과 스펙을 표준화시키는 것은 아주 중요하다. 바로 그것이 경쟁력이기 때문이다. 이를 위해서는 먼저 자신의 기술을 확보해야 하는 것이 필수이다.
현재 모바일 웹을 가장 적극 채용하고 있는 업체는 구글과 팜이다. 구글은 올해 5월 구글 개발자 컨퍼런스인 Google I/O에서 HTML5를 기반 기술로 적극 추진한다고 공표했고 새롭게 개발하고 있는 크롬OS도 HTML5 기반으로 개발하고 있다.
과거 PDA 황금기를 주도했었던 팜은 '팜프리'라는 새로운 스마트폰을 출시하면서 웹 OS라는 혁신적인 개발 환경을 발표했다. 웹 OS는 Webkit과 dojo를 기반으로 한 Mojo라는 웹 SDK를 제공한다. Mojo는 CSS,HTML,Javascript만을 이용하여 모바일 애플리케이션을 개발할 수 있다.
파이어폭스3.5 , 오페라 9.6 , 사파리 4 등 브라우저들도 동영상, 오디오 등 HTML5의 주요 기능을 제공하기 시작했다. 지원 기능은 시간이 흐를 수록 늘어날 것이다.
이러한 모바일 애플리케이션 개발 환경이 웹 중심으로 수렴되는 것은 모바일 애플리케이션 개발에 있어 기존 디바이스 의존적인 방법보다 높은 생산성을 주는 것과 더불어 긍정적인 많은 변화를 가져다 줄 것이기 때문이다. 어떤 변화들이 올 지 예상해보자.
- 중·저가형 스마트폰 시장이 보다 빠르게 형성될 수 있다.
기존 스마트폰 시장은 주로 고가 제품이 주를 이루고 있다. 모바일 애플리케이션을 구동하기 위해서는 고성능 사양이 필요하기 때문이다. 그러나 모바일 웹 애플리케이션은 웹 브라우저가 구동되는 환경이라면 구동이 가능하기 때문에 중저가 스마트폰 시장이 보다 빠르게 형성되고 주류가 될 수 있다.
- 모바일 웹 애플리케이션이 일반화되면 모바일 애플리케이션 생태계도 변하게 된다.
애플 앱스토어를 비롯해 현재 모바일 마켓플레이스를 통해 제공되는 대부분의 모바일 애플리케이션은 디바이스에서 구동되는 순수 모바일 애플리케이션들이다. 마치 윈도용 프로그램 라이선스를 구매하여 사용하는 것과 동일한 방식으로 모바일 마켓플레이스에서 라이선스를 구매하고 이를 디바이스에 설치한 후 사용한다.
그러나 모바일 웹은 이러한 방식의 변경을 요구한다. 모바일 웹애플리케이션은 인터넷을 통해 언제,어디서나 접속해 사용할 수 있기 때문에 과금도 라이선스를 구매하는 방식이 아니라 사용한 만큼 비용을 지불하는 방식인 SaaS(Software As As Service) 모델로 전환될 것이다.
이에 따라 앱스토어 같은 기존 모바일 마켓플레이스도 많은 영향을 받을 것이며 후발 업체들의 경우 새로운 기회를 맞게 될 것이다. 이러한 측면에서 가장 개방되고 우수한 클라우드를 보유하고 있는 구글과 팜의 웹OS가 가장 많은 기회를 얻을 수 있다.
- HTML5, CSS, 자바 스크립트로 개발된 모바일 웹 애플리케이션이 W3C의 Device API 등을 통해 직접 디바이스를 제어하게 된다면 아주 재미나고 놀라운 것들이 가능하다. 가령, 웹 서버와 Device API를 지원하는 냉장고용 제어 프로그램을 개발하면 사용자는 휴대폰 브라우저를 통해 냉장고에 접속한 후 해당 프로그램을 사용할 수 도 있으며 특정 상품의 재고가 부족하면 자동으로 특정 웹 쇼핑몰에 주문하게 할 수도 있다.
HTML5 표준은 2012년 정도에 완성될 것으로 예상되고 있다. 그러나 일반적으로 표준에 앞서 관련 업체들의 모바일 웹 관련 기술은 더욱 빠르게 발전할 것이다. 과거 우리는 IBM의 호스트 환경에서 데스크톱 기반의 클라이언트/서버 환경으로, 그리고 다시 웹으로 변화를 할 때 마다 이를 미리 준비하지 못할 경우 막대한 비용을 지불해야 만 했다.
이처럼 모바일 개발자들과 디바이스 개발자들은 다가올 모바일 웹 환경을 위해 미리 준비를 해야 할 것이다.
*본 칼럼 내용은 본지 편집방향과 다를 수 있습니다.