sitelink1 http://www.etnews.com/news/home_mobile/p..._2568.html 
sitelink2  
sitelink3  
네이티브 앱의 돌파구 하이브리드 앱

디바이스에서 제공되는 SDK 환경에서 개발된 네이티브앱은 많은 장점에도 불구하고 앞서 얘기된 성능 외적 요인으로 인한 단점을 노출하고 있다. 그러나 현실적인 문제는 웹 기술이 많은 발전을 했음에도 불구하고 단기간 내에 네이티브 앱 마켓이 사라지지는 않을 것이란 것이다. 그 자체로서 거대한 시장이고 지금도 계속 성장하고 있으며 사용자들에게 최상의 환경을 제공하고 있기 때문에 대부분의 사람들은 유사한 서비스가 웹으로 제공된다고 하더라도 접근성이 우월한 앱 스토어를 결코 떠나지 않을 것이다. 그렇다면 어떤 해법이 있을까? 앞서 열거한 무시할 수 없는 심각한 문제점들을 계속 안고 갈 수밖에 없는 것일까? 네이티브 기술과 웹 기술을 접목시킨 하이브리드 앱 기술이 이 어려운 문제의 해결책을 제공할 수 있다.

하이브리드 앱 기술이란 무엇일까? 하이브리드 앱 기술은 새로운 기술이 아니다. 오래되고 숙성된 기술이며 컴포넌트를 조합하여 개발하는 형태로 우리에겐 아주 익숙한 기술이다. 이 오래된 기술이 신기술인 양 주목받는 이유는 몇 가지 우연과 필연이 만난 결과인 듯 하다. 대표적인 하이브리드 개발 플랫폼 3가지를 살펴보면서 우연과 필연이 어떻게 결합하여 이 거대한 시대의 흐름에 주역으로 떠오르고 있는지 알아보자.


PhoneGap

2009년 초 공개된 하이브리드 앱 개발 프레임워크인 Phone Gap은 HTML로 만들어진 웹페이지를 아이폰 앱으로 만들어주는 마술을 보여주며 세간의 주목을 끌게된다. 단지 앱 스토어에 올릴 수 있을 뿐만 아니라 아이폰의 카메라를 사용할 수 있으며, 주소록에 접근하고, GPS 센서의 위치 정보를 자바스크립트를 통해서 받아올 수 있는 퍼포먼스를 보여준다. 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, 자바스크립트지만 결과물은 네이티브인 방식이다. 이 방식의 장점은 근본적으로 네이티브 자원을 활용해 네이티브와 동일한 성능을 보여 줄 수 있다는 것이다. 

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과 보이는 가장 큰 차이점은 디바이스 자원에 접근하기 위해 제공되는 자바스크립트 인터페이스의 구조다. 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 앱 개발을 시작해 볼 수 있을 것이다. 무엇보다 한국의 개발자들은 한국에서 개발된 개발 도구라는 장점을 충분히 이용할 수 있을 것으로 생각된다.

서비스를 개발하고 적절한 개발 환경을 고민해야 하는 입장에서 하이브리드 기술을 도입하고자 한다면 지금까지 소개한 여러 가지 형태의 하이브리드 개발 환경이 존재한다. 그러나 개발하고자하는 서비스의 형태를 잘 고려해 최대한 확장성과 유동성에 대응할 수 있는 개발환경을 채택하는 지혜가 필요할 것이다.