본문 바로가기

짧게 쓰기/칼럼

모바일 하이브리드 프레임워크는 제2의 액티브엑스다.(1.시대적인 배경)

모바일 하이브리드 프레임워크는 제2의 액티브엑스라는 제목은 두가지 뜻을 담고 있다. 하나는 모바일 하이브리드 프레임워크가 문장 그대로 웹에서 액티브엑스가 하는 역할을 고스란히 대신한다는 뜻이다. 하나는 액티브엑스가 우리나라 IT의 발전을 막았듯이 모바일 하이브리드 프레임워크도 우리나라 모바일 IT의 발전도 막을 수 있다는 뜻이다.


2009년말 아이폰의 전격 출시는 마치 2차세계대전 독일의 전격전을 떠올리게 한다. 독일의 전격전으로 프랑스를 비롯한 연합군은 초토화 되고 독일의 손안으로 들어간다. 연합군은 당황스러웠고 어떻게 대항 할지 난감했다. 그러나 곧 장병들을 모집했고 병기기술 개발을 앞당겨 시작했다. 처음에는 독일에게 일방적으로 밀렸지만 서서히 정신을 차리고 독일에 대항하게 된다. 너무도 강력한 독일이었지만 연합군도 독일군의 수준에 맞게 병력을 운용할수 있게 되었고 몇년 뒤 전쟁의 향방을 연합군쪽으로 가져왔다. 


2009년말 아이폰의 전격전으로 삼성과 SK를 비롯한 우리나라 독과점 기업은 초토화 되었다. 우리나라 독과점 기업은 당황스러웠고 어떻게 할지 난감해 했다. 곧 안드로이드 개발자를 급조했고 안드로이드 폰 개발을 앞당겨 시작했다. 


금융권을 비롯한 우리나라 일반 기업도 당황스럽기는 마찬가지였다. 다른 경쟁사가 아이폰, 안드로이드 어플을 개발하니 그들도 얼떨결에 억대 비용 쏟아 부어 어플을 개발하기 시작했다. 그러나 투자 비용대비 사용자도 적을것 같은데 그들은 왜 비싼돈을 들여 이런 어플을 개발해야 하는지 무척 난감해 했다. 


일단 다른 경쟁사 처럼 부랴부랴 기본적인 어플을 만들어놓고 그들은 깊게 생각했다. 어플을 저렴한 값으로 개발할수는 없는가. 하나의 언어로만 개발하여 아이폰, 안드로이드에 동시에 포팅할수 없을까~ 라는 고민을 시작 했다.


이런 요구사항은 전세계적인 이슈였고, 이 요구사항을 해결하는 방법은 C로 개발하거나 웹으로 개발하거나

둘중에 하나였다. C로 개발하는 것은 난이도가 높다. 그럼 웹으로 개발하겠다.


웹으로 개발할 경우의 문제는 네이티브 어플(순수 아이폰/안드로이드로 개발한 어플)과 웹 어플의 수준차가 많이 난다는 것이다. 웹으로 개발한 어플의 수준은 네이티브에 비교할때 많이 떨어진다.


모바일 웹 관련 프레임워크는 네이티브 어플과 웹 어플의 수준차를 줄이기 위해 여러 회사, 여러 오픈소스에서 다양한 솔루션을 출시하게 되었다. 


모바일 웹 관련 프레임워크는 한마디로 네이티브 어플과의 수준차를 줄이기 위한 솔루션이다.


모바일 웹 관련 프레임워크는 최대한 네이티브 어플과 비슷하게 보이기 위한 솔루션이다. 


모바일 웹과 네이티브 어플간의 수준차는 3가지 영역으로 나눌 수있다.


- UI

- 개발자 도구

- 모바일 디바이스의 자원 활용등


UI는 네이티브 어플과 비슷한 모양과 애니메이션을 보여주는 오픈소스/솔루션들이 나와 있다. JQuery Mobile, 센차터치, HTML5등이 존재한다. 기타 우리나라에서 만든 솔루션들도 있다.


개발자 도구는 모바일 하이브리드 프레임워크 솔루션에서 개발자 IDE, 애뮬레이터 등을 별도 지원하여 아이폰 xcode, 안드로이드 개발환경의 수준차를 극복하려는 노력이다. 그러나 막상 겪어보면 일반 자바스크립트 개발환경에서 개발하면 되고 애뮬레이터는 아이폰 시뮬레이터 안드로이드 애뮬레이터에서 각각 구동하면 되기 때문에 굳이 거창한 개발자 도구까지는 필요 없고, 그냥 이클립스에서 자바스크립트로 개발하면 된다. 만약 개발자 도구를 직접 개발했고 강력하다고 강조하는 우리나라 솔루션이 있다면 대부분 뻥튀기이다. 그들의 솔루션도 이클립스에 Aptana 에디터.. 그런 오픈소스 들을 적당히 짜깁기 했기 때문이다.


문제는 모바일 디바이스의 자원 활용과 보안, 네트워크 통신등의 웹이 해결하지 못하는 이슈의 해결이다.

이 부분을 해결하는것이 바로 모바일 하이브리드 프레임워크의 메인 영역이다.


모바일 하이브리드 프레임워크/토탈 솔루션이 UI, 개발자 도구도 처리한다고 하지만 사실 UI는 제이쿼리

모바일등의 오픈소스 쓰면 해결하거나 그냥 웹에서 제공하는 태그를 퍼블리셔가 잘 가다듬으면 해결된다. (이 퍼블리셔 문제도 있는데 나중에 연재..)


개발자 도구도 그냥 이클립스에서 개발하면 된다. (그러나 자바스크립트 기반 개발 생산성은 형편없다. 이부분은 나중에 연재..)


그러나 웹 어플에서 보안 처리, 모바일 디바이스의 GPS, 중력센서등의 자원 접근, 네트워크 처리등의 

고난이도 처리는 모바일 하이브리드 프레임워크에서 인터페이스를 제공하여 네이티브에서 처리해야 한다.

기업에서 요구하는 어플의 조건은 웹으로 저렴하게 개발해야 하지만 웹으로 할수 없는 부분까지 해주기를 요구하기 때문에 네이티브에서만 처리해야하는 부분을 별도 개발하고 네이티브와 연동하는 API를 개발하여 웹에서 호출할수 있게 해주는 모바일 하이브리드 프레임워크가 필요하게 되었다.


그래서 금융쪽이던 그 어느 쪽이던 모바일 웹으로 개발할 경우 가장 이슈가 되는 부분이 모바일 디바이스의 자원 활용과 관련된 네이티브 연동하는 기술적인 문제를 모바일 하이브리드 프레임워크가 얼마나 잘 해결해주느냐가 중요하다.


우리나라의 여러 업체들이 '폰갭'이란 오픈소스 하이브리드 프레임워크를 짜깁기하여 솔루션들을 출시했다. 이 하이브리드 프레임워크가 잘 작동하려면 최우선 조건이 웹에서 네이티브 API를 호출하는 방식이 간결하고 안정성이 보장되야 한다. 그러나 내가 나중에 설명하려는 어떤 이유로 현재 하이브리드 프레임워크는 웹에서 네이티브 API를 호출하는 방식이 매우 지저분하고 안정성도 떨어진다.


그리고 각 업체들이 자기들 마음대로 API문법을 정하기도 하여 표준화가 안되어 있고 파편화가 진행되고 있다. 이런 각 업체들의 프레임워크를 우리나라 기업 환경에서 마구잡이로 도입한다면 예전에 우리나라 IT 발전을 막았던 액티브엑스처럼 이 프레임워크들도 마치 돌연변이 암처럼 우리나라 모바일 IT 환경을 괴롭힐지 모른다.


모바일 웹 관련 프레임워크의 정의를 네이티브 어플간의 수준차를 줄이기 위한 솔루션이라고 정의했다. 이말은 모바일 웹 관련 프레임워크가 아무리 뛰어나도 네이티브 어플을 따라잡긴 불가능 하다는 것이다. 마치 마티즈를 아무리 잘 튜닝해도 K5중형차 '깡통'을 따라잡기도 불가능한것과 마찬가지다. 더구나 지금의 우리나라 모바일 하이브리드 프레임워크는 고장잘나는 마티즈와 같다. K5몰던 모바일 개발자들은 울며 겨자먹기식으로 털털 거리는 마티즈를 운전하고 있다.


그러나 양치기 소년 '을'들이 마티즈를 '갑'에게 설명할때는 K5와 비슷하거나 어느면은 더 나을수 있다고 뻥튀기를 하고 있다.


당신이라면 K5 폼나게 몰다가 마티즈를 몰겠는가. 아이폰/안드로이드 모바일 개발자들이 열심히 노력한 끝에 K5 수준의 플랫폼에서 즐겁게 일하다가 요즘 프로젝트 잘못 걸리면 형편없는 마티즈를 몰게 되었다. 모바일 IT 현장에서 현재 이런일이 벌어지고 있다. 나는 와신상담끝에 이런 일들을 세상에 알리고자 한다.



[모바일 하이브리드 프레임워크가 아무리 뛰어나도 결코 네이티브 플랫폼을 능가할수 없다. 모바일 하이브리드 프레임워크 태생이 네이티브 플랫폼과의 수준차를 극복하기 위함이다. 하이브리드 프레임워크 용어 자체가 꼭 필요한 핵심 모듈은 네이티브를 쓰겠다는 것이다. 모바일 하이브리드 프레임워크는 마치 고속도로를 달리는 똥차와 같다. 예전 마티즈 김여사의 인천대교 대참사와 같은일이 IT 현장에서도 벌어질수 있다. 비용절감 노리다가 대형사고 나는 것보다는 차라리 본래 들여야할 비용을 투자하여 폼나게 K5 모는것이 낫지 않을까.]


* 연재 계획

0.탐욕

1.시대적인 배경

2.국산의 문제

3.자바스크립트 개발 환경

4.goto문의 악몽 비동기 프로그래밍

5.퍼블리셔 의존 문제

6.개발자의 질적저하

7.애플/구글사의 보증 제외 문제


* 영업력 90% 기술력 10%의 설익은 모바일 하이브리드 프레임워크를 쓰는 바람에 고생한 개발자들의 제보를 받습니다. 또는 반대 댓글도 환영합니다. 논쟁을 환영합니다.