2007 년 세상에 아이폰이 출연한 후 그 충격이 채 가시기도 전에 애플은 앱 스토어라는 마켓을 탄생시켰다. 한국도 아이폰이 출시된 지 1년이 넘어 2년째를 향해 달려가고 있다. 아이폰 출시 후 짧은 기간 동안 전세계 IT 업계 흐름은 큰 변화를 겪었으며 IT 업계의 갈라파고스란 비아냥을 듣던 한국도 그 거대한 흐름을 거스르지 못하고 1년여의 짧은 기간 동안 정말 많은 것이 달라졌고 지금도 달라지고 있다.
이 런 거대한 변화를 주도한 것은 다름 아닌 아이폰이란 작은 이동 전화기이지만 진짜 주인공은 앱 스토어가 아닐까 하는 생각을 지울 수 없다. 개인 개발자 또는 기업에게 기존과는 확연히 다른 새로운 시장을 열어 주었고 사용자 입장에선 값싸고 질 좋은 어플리케이션 (이하 앱)을 쉽게 구입하고 사용해 볼 수 있는 길을 열어 주었기 때문이다. 농촌의 농민들과 도시의 소비자들간에 복잡한 유통 채널을 없애 버리고 직거래 장터가 생긴 것과 유사한 이런 구조는 공급자와 소비자 모두 윈 윈 할 수 있는 선 순환의 생태계를 완성했다는 측면에서 혁신이라 말할 수 있을 것이다.
하 지만 아무리 장점이 많다 하더라도 단 하나의 마켓 구조란 것은 문제가 있을 수 밖에 없다. 앱 스토어 초창기에는 예상되는 문제들이 현실화 되지 않았으나 지난해 말 기준으로 애플 앱 스토어에 등록된 앱의 개수는 32만 5천여 개에 달하고 월 평균 2만 5천여 개의 새로운 앱들이 등록되고 있는 상황에서 수 많은 문제점들이 노출되고 있다. 급기야 시장에는 안드로이드 진영이 급 성장하고 있으며 단말 개수만 놓고 본다면 아이폰의 판매 대수를 넘어선지 오래이고 안드로이드 앱 스토어 역시 급속도로 성장하고 있다. 블랙베리, 윈도우 폰 7등의 경쟁자들도 포기할 수 없는 이 시장에 투자를 계속 하고 있다.
이런 시장 상황 속에서 앱 스토어에 앱을 팔아 일확천금의 꿈을 실현하는 것은 이미 신화가 됐다. 경쟁자들은 많아 졌고 수 많은 기업들이 경쟁하고 있기 때문에 모바일 앱을 개발한다는 것이 단순하고 반짝이는 아이디어에 소규모 자본을 투자해서 빠르게 시장에 출시한다는 성공 전략이 점점 먹혀 들기 힘든 상황이란 것이다. 무엇 보다 앱 시장이 커지면서 다양한 사람들이 다양한 디바이스로 동일한 서비스를 제공 받기를 바라고 있다.
개발사 입장에서 아이폰 사용자만 만족시키면 문제 없었던 상황에서 안드로이드용, 블랙베리, 윈도우 폰 7 등의 스마트 폰 앱 뿐만 아니라 TV, 셋톱박스 등 너무나 다양한 사용자들에게 동일한 서비스를 제공 해야 하는 상황에 직면한 것이다. 그러나 기존의 개발 방법으로는 더 이상 비용과 시간이라는 측면에서 사용자들을 만족시키기에 점점 불가능한 일이 되어 가고 있는 것이 현실이다. 이제 기존의 개발 전략을 수정하여 새로운 개발 전략을 찾아야 할 때가 온 것이다.
새로운 대안 웹 표준 기술
거의 유일한 대안으로 평가 받는 기술은 다름아닌 우리에게 가장 익숙한 웹 표준 기술이다. 웹 표준 기술의 장점은 잘 알려 져 있지만 앱 개발에 적극적으로 사용되지 못한 이유는 개발에 필요한 다양한 기능들을 제대로 제공하지 못했기 때문이다. 최근 몇 년간 플렛폼으로의 역할을 할 수 있는 차세대 웹 표준 기술 개발에 시동이 걸렸고 HTML5로 대표되는 차세대 웹 표준 기술은 이제 그 어떤 플렛폼 보다 더 다양하고 광범위한 기능을 제공하고 있으며 지금도 새로운 기능을 지속적으로 추가해 나가고 있다.
텍스트와 이미지 그리고 문서간 링크 서비스 정도만을 지원하던 웹 기술은 이제 2D, 3D, 벡터 그래픽은 물론 고화질 동영상, 사운드, 고속의 동기 통신 프로토콜, 데이터베이스 그리고 하루가 다르게 발전하는 자바스크립트 엔진 등 수 많은 기능들을 개발자들에게 제공하여 표준 기술을 지원하는 브라우저만 있다면 단 한 벌의 코드 만으로 다양한 디바이스에서 실행되는 고품질의 앱을 개발할 수 있는 최상의 개발 솔루션으로써의 면모를 갖춰 가고 있다.
네이티브 앱의 돌파구 하이브리드 앱
디바이스에서 제공되는 SDK 환경에서 개발된 네이티브앱은 많은 장점에도 불구하고 앞서 얘기된 성능 외적 요인으로 인한 단점을 노출하고 있다. 그러나 현실적인 문제는 웹 기술이 많은 발전을 했음에도 불구하고 단기간 내에 네이티브 앱 마켓이 사라지지는 않을 것이란 것이다. 그 자체로서 거대한 시장이고 지금도 계속 성장하고 있으며 사용자들에게 최상의 환경을 제공하고 있기 때문에 대부분의 사람들은 유사한 서비스가 웹으로 제공된다 하더라도 접근성이 우월한 앱 스토어를 결코 떠나지 않을 것이다. 그렇다면 어떤 해법이 있을까? 앞서 열거한 무시할 수 없는 심각한 문제점들을 계속 안고 갈 수 밖에 없는 것일까? 네이티브 기술과 웹 기술을 접목시킨 하이브리드 앱 기술이 이 어려운 문제의 해결책을 제공해 줄 수 있을 것이다.
하이브리드 앱 기술이란 무엇일까? 하이브리드 앱 기술은 새로운 기술이 아니다. 오래되고 숙성된 기술이며 컴포넌트를 조합하여 개발하는 형태로 우리에겐 아주 익숙한 기술이다. 이 오래된 기술이 신기술인 양 주목 받는 이유는 몇 가지 우연과 필연이 만난 결과인 듯 하다. 대표적인 하이브리드 개발 플렛폼 3가지를 함께 살펴보며 우연과 필연이 어떻게 결합하여 이 거대한 시대의 흐름에 주역으로 떠오르고 있는지 알아보도록 하자.
PhoneGap
2009년 초 세상에 공개된 하이브리드 앱 개발 프레임웍인 PhoneGap은 HTML로 만들어진 웹 페이지를 아이폰 앱으로 만들어 주는 마술을 보여주며 세상의 주목을 끌게된다. 단지 앱 스토어에 올릴 수 있는 것 뿐만 아니라 아이폰의 카메라를 사용할 수 있으며 주소록에 접근하고 GPS 센서의 위치 정보를 Javascript를 통해서 받아올 수 있는 퍼포먼스를 보여준다. PhoneGap이 전하는 놀라움은 거기서 멈추지 않고 동일한 기능을 안드로이드, 블렉베리, 심비안, WebOS 등으로 확장해 나간다.
그러나 그것은 말 그대로 단지 흥미로운 퍼포먼스였다. 시장에 나와있는 주요 모바일 플렛폼 대부분을 지원하고 아이폰과 안드로이드 등 메이저 플렛폼의 디바이스 자원에 접근하는 기능을 자바스크립트 인터페이스로 제공하여 웹앱에서 직접 사용할 수 있도록 제공했지만 문제는 웹으로 만들어진 결과물이 네이티브앱 UI 와의 간극이 너무나 크다는 문제를 극복하지는 못했기 때문이다.
PhoneGap 으로 인한 문제는 아니었지만 결국 PhoneGap 으로 만들어진 결과물이었기 때문에 평가절하되는 상황은 피할 수 없었다. PhoneGap은 더 이상의 임펙트를 줄 수 없었지만 브라우저 밴더들의 HTML5 신규 스펙 구현에 열을 올리며 경쟁하는 상황이 호재로 작용하는 행운이 뒤따른다. 웹앱의 실행 환경인 브라우저의 성능 향상과 강력하고 광범위한 기능으로 무장한 HTML5의 새로운 스펙들은 하이브리드앱 진영에게 천군만마와도 같은 힘을 실어준다. 앱이라 불리기엔 떨어지는 퍼포먼스는 비약적으로 향상되었고 다양한 앱을 개발하기에 부족했던 기능은 HTML5의 광범위한 기능들을 활용할 수 있게 됨으로서 네이티브앱 부럽지 않은 앱을 개발할 수 있게 된 것이다. 무엇보다 웹 기술들의 특징인 간단한 개발 방식과 많은 수의 웹 개발자들을 잠재적인 웹앱 개발자로 확보할 수 있음으로서 앱 개발에 필요한 인력수급 문제도 상당수 해결할 수 있게 된 것이다.
약간의 행운으로 다시금 주목받게된 PhoneGap은 2009년에 공개된 최초의 하이브리드 웹앱 프레임웍이라는 명성과는 다르게 단촐한 형태를 가지고있다. 현재 배포되고 있는 0.9.4 버전의 패키지가 단지 4.5MB 의 용량인 것에서 알 수 있듯이 통합 개발환경이나 웹앱 개발에 유용한 도구등은 제공되지 않는다. 단지 지원 플렛폼별로 프로젝트 템플릿을 제공하고 있다. 이런 형태인 이유로 개발하고자 하는 플렛폼의 개발 환경에 약간의 지식이 있어야 개발이 가능한 단점을 가지고있다. 네이티브 개발자가 아닌 웹 개발자들에게 진입장벽으로 작용하여 이를 해결하고자 PhoneGap 웹사이트에선 플렛폼별 설치 정보를 Wiki 형태의 문서와 스크린 캐스트 동영상으로 제공하고 있다.
Accelerator Titanium
Titanium 은 PhoneGap 보다 약간 늦은 출발을 보였지만 PhoneGap 과는 전혀 다른 방식의 접근 방법으로 하이브리드 앱 개발에 새로운 방향성을 제시하고 있는 하이브리드 앱 개발 프레임웍이다. PhoneGap 은 브라우저 컴포넌트를 사용하여 웹앱 파일을 구동시키는 구조이기 때문에 구현과 확장이 용이한 측면이 있지만 브라우저로 웹앱을 구동시키는 것과 완전히 동일한 형태이기 때문에 웹앱이 가지는 미묘한 성능 문제 또한 피할 수 없다는 단점이 있다. 하이브리드 앱이라면 어쩔 수 없는 결과이나 Titanium 개발팀은 다른 방향의 해결책을 찾아내다. 그것은 웹 기술을 이용하여 네이티브앱을 개발하는 방식을 택한 것이다. 즉 개발 언어는 HTML, Javascript 이지만 결과물은 네이티브인 방식이다. 이런 방식의 장점은 두말할 것 없이 근본적으로 네이티브 자원을 활용하기 때문에 네이티브와 동일한 성능을 보여 줄 수 있다는 것이다.
Titanium 은 Titanium 자바스크립트 API 형태로 앱 개발에 필요한 대부분의 기능을 제공한다. 부가적으로 네이티브 SDK 에선 제공되지 않는 Twitter, Facebook 등과 같은 서비스 API 들도 제공하여 손쉽게 이들 서비스와 연동되는 기능을 사용자 앱에 추가할 수 있다. 그러나 Titanium의 이런 개발 방식이 성능 문제를 해결한 측면이 있지만 어쩔 수 없이 희생된 측면도 분명히 존재한다. 자바스크립트로 네이티브앱을 만들기 위해서 완전하게 통제된 자바스크립트 API가 필요했고 이는 Titanium 전용 API 형태가 될 수 밖에 없기 때문이다. 이 자체만으로 Titanium 은 분명히 웹 기술이라고 할 수 있으나 과연 이것이 웹 표준 기술이 가지는 장점을 유지하고 있는지는 생각해 봐야 한다. 표준 기술의 진정한 가치는 특정 단체나 기업에 의존적이지 않다는데 있다. 하지만 Titanium 과 같은 형태라면 형식만 웹 기술일 뿐 표준 기술이라 부르긴 힘들 것 같다. 성능을 해결하기 위해 너무 많은 희생을 치른 것 같다.
Titanium 의 또 하나 독특한 특징은 모바일 플렛폼 뿐만 아니라 데스크탑 플렛폼도 지원한다는 것이다. Titanium 이 지원하는 플렛폼은 iOS, Android, Blackberry, Windows Family, Linux, OSX 로 모바일 플렛폼과 데스크탑 OS 모두를 지원하고 있어 진정한 크로스 플렛폼 배포를 실현하고 있다. 하지만 안타깝게도 모바일 플렛폼과 데스크탑 플렛폼의 차이가 매우 크기 때문에 동일한 개발 환경을 제공하지는 못하고 있으며 모바일용, 데스크탑용 API 가 따로 따로 존재한다.
Appspresso
하이브리드 앱 개발 플렛폼 중 가장 최근에 발표된 Appspresso 는 최근에 나온 솔루션답게 이클립스 기반의 통합 IDE 를 제공하고 jQueryMobile, Sencha Touch 등 모바일 자바스크립트 프레임웍 템플릿 생성 도구 및 이동 통신사 중심의 웹앱 표준인 WAC Waikiki API 를 지원한다. 무엇보다 한국 기업인 KTH 의 웹 플렛폼 연구소에서 개발된 것이 눈에 띈다. 공개 된지 이제 한 달 정도밖에 되지 않았으며 현재 배포판은 베타 2 이고 1.0 정식 버전은 7월경에 발표될 예정이다.
Appspresso 는 기본적으로 PhoneGap 과 동일한 구조를 가지고 있다. 즉 웹앱을 네이티브로 만들기 위해 브라우저 컴포넌트에 의존하는 형태이다. 플렛폼 별 프로젝트 템플릿의 형태로 제공되는 PhoneGap 과는 다르게 통합 개발 환경을 제공하여 개발의 편리성을 매우 높였지만 Appspresso 가 PhoneGap 과 가장 큰 차이점을 보이는 지점은 디바이스 자원에 접근하기 위해 제공되는 Javascript 인터페이스의 구조이다. PhoneGap 이 제공하는 자바스크립트 인터페이스는 표준이 아닌 PhoneGap 스타일의 API 다. 비록 현재 개발 중인 W3C의 디바이스 API 와 유사해 보이지만 정확히 일치하지 않는다. 이는 디바이스 API 표준이 확정되고 브라우저에서 지원하게 되면 호환성에 문제를 일으킬 수 있으며 개발된 코드를 수정 할 수 밖에 없을 것이다. Appspresso 는 이러한 문제를 해결하기 위하여 디바이스 API 인터페이스를 모두 WAC Waikiki API로 제공하고 있다. 이것이 의미하는 것은 WAC API 로 개발된 웹앱을 코드 수정 없이 Appspresso 를 이용하여 iOS 나 안드로이드 네이티브앱으로 만들 수 있다는 것이다. 반대의 경우도 가능한데 Appspresso IDE 에서 WAC 패키지로 생성 기능을 제공한다.
웹 사이트를 개발하던 개발자들도 웹앱 개발을 처음 접할 때 많은 시행착오를 거치게 된다. 웹 사이트 개발과 유사한 점이 매우 많지만 다른 점도 많기 때문이다. 모바일 앱의 디자인과 동작 방식은 아이폰이나 안드로이드의 영향으로 어느 정도 표준적인 가이드라인이 존재한다. 웹앱을 개발할 경우 HTML 과 CSS 만으로 네이티브앱과 유사한 UI 를 구현해야 하는데 웹 개발자에게도 결코 쉬운 일은 아니다. jQueryMobile 이나 Sencha Touch 같은 자바스크립트 프레임웍으로 개발을 하게 되면 많은 도움을 받을 수 있는데 이런 프레임웍도 약간의 학습 비용이 필요하다. Appspresso 에선 프로젝트 생성시 자바스크립트 프레임웍을 선택할 수 있는 기능을 제공 함으로서 보다 손쉽게 웹앱 개발을 시작할 수 있다. 여름으로 예정된 1.0 정식 버전에서는 Appspresso 플러그인 개발 플렛폼과 런타임에 소스 수정이 가능한 On the fly development 기능이 공개된다고 하니 모습을 보여 주게 될지 기대해 보자.
어떤 솔루션을 선택할 것인가?
지금 이 시간에도 많은 기업들과 개인들이 하나의 앱을 멀티 디바이스에 배포하기 위해 사투를 벌이고 있다. 이는 서비스 개발에 투자해야 할 시간과 비용을 엉뚱한 곳에 낭비하고 있는 것이며 이를 깨달은 많은 기업과 개인 개발자들은 하이브리드 앱 개발에 관심을 기울이고 있다. 웹 기술이 대세라고 많은 사람들이 얘기하지만 웹 기술이 대세인 시대는 이미 지났다. 웹 표준 기술을 기반으로 한 서비스 개발은 이미 대세를 넘어 현실이 되었기 때문이다. PhoneGap 은 여러 가지 단점에도 불구하고 처음 시장을 개척한 이유로 여러 부문에서 지원 사격을 받고 있다. Adobe 나 각종 자바스크립트 프레임웍들은 PhoneGap 과 보다 잘 융합되기 위해 여러 가지 지원을 아끼지 않고 있으며 Titanium 은 최근 유명한 이클립스 기반의 웹 개발 도구 개발사 Aptana 를 인수해 Titanium Studio 라는 전용 개발 환경을 개발하고 있고 최근에 Preview 버전을 공개하며 매우 공격적인 행보를 취하고 있다. Appspresso 는 가장 최근에 출시된 솔루션답게 기본기에 충실하며 표준 지향적인 행보를 취하고 있다. 여름에 그 실체가 공개될 예정인 WAC 단말이 출시되면 더욱 흥미로운 개발 플렛폼이 될 것으로 예상되며 미리 WAC 에 대한 적응을 해 보고 싶은 개발자라면 Appspresso 에서 WAC 앱 개발을 시작해 볼 수 있을 것이다. 무엇보다 한국의 개발자들에게는 한국에서 개발된 개발 도구라는 장점을 충분히 이용할 수 있을 것이라 생각된다.
서비스를 개발하고 적절한 개발 환경을 고민해야 하는 입장에서 하이브리드 기술을 도입하고자 한다면 지금까지 소개한 여러 가지 형태의 하이브리드 개발 환경이 존재하지만 개발하고자 하는 서비스의 형태를 잘 고려해 최대한의 확장성과 유동성에 대응할 수 있는 개발 환경을 채택하는 지혜를 발휘해야 할 것이다.