티스토리 뷰

IT Trends

Web기술로 App을 만들자.

novathinker 2010.04.06 11:20
iPad가 출시되었다. iPad의 의미는 단 하나의 새로운 기기라는 범위를 훌쩍 넘어선다. iPhone이 출시 되고 나서 안드로이드, 윈도우 모바일 등의 스마트폰이 등장했던 것처럼 이제 iPad는 타블렛 PC라는 새로운 영역을 열게 될 것이다. 이제 안드로이드, 윈도우 모바일 등의 여러 플랫폼에서도 경쟁적으로 타블렛까지 만들어 낼 것은 불을 보듯 뻔한 일이다.

물론 사용자 관점에서 선택할 수 있는 제품의 폭이 다양해 지는 것을 좋은 일이지만 개발자의 입장에서는 하나의 도전이 될 수 있다. 우리는 이미 iPod, iPhone시장을 뒤늦게 따라가고 있고 거의 동시에 안드로이드도 대응하고 있다. 그래도 지금까지 iPhone 하나에만 집중해도 어느 정도 커버가 가능한 지경이었다. 그런데 이제 화면 크기가 다른 iPad도 나타났고 이 iPad뒤에는 또 다른 플랫폼의 다양한 기기들이 줄을 서고 있다.

기기와 플랫폼이 다양해 질 수록 개발자의 시간적, 경제적 부담은 커진다. 이제 애플 앱스토어도 레드오션이 된 마당에 웬만한 기술력으로는 사실 사람들이 만족할 수준에 이르기 힘들어졌다. 그리고 스마트폰이나 타블렛도 뒤집어 놓고 보면 Web서비스의 촉수, 말단 신경조직이라는 특징이 있다. 그래서 아이디어를 집중하여 우리가 그동안 힘을 기울였던 Web서비스를 중심으로 App시장을 보자는 의견을 이 블로그에서 간간히 내고 있었다.

개인적으로 iPhone, 안드로이드의 기술 보다 활용도에 관심이 많았기 때문에 한 번 배워서 여러군데 쓸 수 있는 기술을 고민하고 있었다. 사실 iPhone 개발을 하면서 안드로이드나 다른 플랫폼까지 다 잘하기는 매우 어렵다. 그 이유는 플랫폼은 계속 변하고 스마트 폰이라 해도 각 플랫폼 별 특성이 엄연히 존재하기 때문이다. 그러나 이 모든 플랫폼이 수렴되는 공간이 딱 하나 있기는 있었다. 그것은 바로 브라우저에서 수행되는 Web 자원들이었다.

일전에 iPhone 쇼핑몰을 탐색하면서 iPhone화면처럼 Web 사이트를 꾸며놓고 App 안에서 이 사이트를 접근하여 App과 같은 사용성을 제공한 것을 보고 무릎을 친 적이 있었다. iPhone을 개발하기 위해 Objective-C를 세세히 공부하느니 Web페이지를 만들어 App의 브라우저 역할을 하는 WebKit에 담아 App으로 만들어 버리면 좋겠다는 아이디어를 얻었던 것이다. 그러면 이 코드를 그대로 안드로이드, 윈도우 모바일, 그리고 Web 서비스까지 다양하게 사용하면 될 것이라는 생각을 했었다. 이런 생각을 하던 차에 이 아이디어를 먼저 생각하고 실천에 옮긴 사람들이 있다는 것을 알게 되었다. 이들은 아예 이러한 것을 개발킷(프레임워크)으로 만들어서 제공하고 있다.

이들의 아이디어도 같다. 일단 iPhone, 안드로이드, 블랙베리 등의 스마트폰을 개발할 수 있는 코드를 미리 심어 놓는다. 그리고 여기서 개발을 시작하면서 프로젝트를 하나 생성하면 각 플랫폼에서 사용할 수 있는 프로젝트 파일을 생성해 낸다. 이 파일에는 Web 페이지와 자바 스크립트의 기본 형태도 포함이 되어 있어 각 개발 환경에서 이 프로젝트를 그냥 가져다 사용하면 된다. 개발자는 아이콘이나 첫 화면 정도의 최소한의 App 설정만 건드리고 모든 프로그램은 Web페이지를 만들 듯이 되어 있다. 그리고 이것을 패키징하면 App이 되는 그런 방식이다. 이러한 방식으로 개발할 수 있는 두 가지 프레임 워크를 소개한다.

1. PhoneGap
PhoneGap은 자바 스크립트만으로 iPhone, 안드로이드, 블랙베리 App을 개발할 수 있다. 이 프레임워크 내에는 위치 정보, 진동, 가속도, 사운드, 지원정보 등에 대한 인터페이스까지 제공하고 있다. 만약 당신의 위치를 지도에 표시하고 싶다면 단순히 API를 사용해서 값을 가져올 수 있다는 얘기가 된다. 그리고 이 모든 프로그램은 자바 스크립트만 알면 된다. 즉 Objective-C나 안드로이드 자바에 대한 지식이 전혀 없이도 그럴듯한 App을 만들어 낼 수 있게 되는 것이다.



2. Appcelerator Titanium 
Titinium은 아예 플랫폼을 표방하고 나섰다. 이것은 데스크탑, 모바일, 그리고 발빠르게 iPad까지 대응이 가능하다고 얘기하고 있다. Titinium은 자바스크립트, HTML, CSS 기술 뿐만이 아니라 Python, Ruby, Php 소스도 병행하여 App을 구성할 수 있다. 이도 또한 안드로이드나 iPhone의 개발환경과 긴밀하게 연동되어 프로젝트를 만들어 개발 환경에 전달하고 테스트와 패키징도 Titinium에서 가능하다. 그리고 앱스토어 등록하는 것도 간편하게 해 놓았다.



스마트폰의 위치기반이나, 가속도 등의 특성을 이용한 App을 만들기에는 PhoneGap이 더 나은 선택이고 쇼핑몰같은 Web서비스에 종속된 인터페이스를 빠르게 만들기 위해서는 Titinium이 더 나은 선택으로 보인다. 이 도구들은 모두 오픈 소스이며 Titinium의 경우 유료 가격 정책도 있다. 새로운 플랫폼에 대한 기술적인 욕구보다는 App을 빠르게 만들어 서비스하고자 한다면 그리고 보다 범용적인 접근을 원한다면 이러한 방법은 꽤나 매력적으로 보인다.

늦은 출발로 뒤따라 가고 있는 한국의 IT현실을 감안해 볼때 이러한 도구들은 큰 도움이 될 것으로 보인다. 스마트폰에 대한 개발 능력이 중요하지 않다는 것은 아니다. 하지만 우리에게 지금 필요한 것은 포스퀘어, 트위터와 같은 Web을 기반으로 하며 스마트폰을 활용하여 접근비용을 떨어트리는 그러한 서비스라고 생각한다. 이러한 차원에서는 이러한 도구들은 적극 도입을 고려할 가치가 충분하다고 생각한다.

PS. 그래도 iPhone App을 만들려면 Mac은 필요하다. 혹시 OS상관없이 여러 App을 만들 수 있는 도구들도 나오게 되지는 않을까? 세상에 별별일 다 일어나니 이런 것도 기대해 봄 직하다.  
신고
댓글
  • 프로필사진 Favicon of http://semix2.textcube.com BlogIcon semix2 플랫폼의 다양성으로 인해 개발자는 늘 피곤해지는 것 같습니다. 특히 안드로이드폰은 같은 OS임에도 불구하고 기기적 특성이 달라 더 심각한 것 같구요. 웹 기반 어플은 구글 크롬 OS를 보고 '아- 이거다!' 했었는데 어느덧 추세는 모바일 기기로의 설치형 어플로 가고 있네요;;

    좋은 정보 잘 보고 갑니다. 폰갭은 여기저기서 많이 주워들었는데 자세히 살펴볼 가치가 있는 것 같아요. ^^
    2010.04.06 11:43 신고
  • 프로필사진 Favicon of http://performeister.tistory.com BlogIcon novathinker 이 두 프레임워크의 프로젝트 파일을 짬뽕해서 프로젝트 템플릿을 만들어도 괜찮을 것 같다는 생각도 듭니다. 2010.04.06 18:48 신고
댓글쓰기 폼