티스토리 뷰

요근래 이슈화가 되고 있는 건, 다름아닌 HTML5다.

이 녀석이 나온 이후부터 이를 활용하여, 조금씩 새로운 생명체들이 싹을 틔우고 있다. 그 중 한 가지를 말하자면, 하이브리드 앱이 있다. 개발을 하면서 요근래 가장 많은 개발은 안드로이드 상에서 개발이다. 웹도 하고, 네이티브 앱도 하고, 일반 서버 개발도 했었다. 그러다, 내 눈에 들어온 것은 하이브리드 앱이다.


솔직히, 요즘 스마트 폰 개발쪽은 혼돈이다. 2강 1약 형태의 시장상황에서 자세히 파고 들면, 웃긴 상황이다. 아이폰이야 그런다 쳐도, 안드로이드 같은 경우 이리 저러 서로 다른 형태의 성능의 폰에 서로 다른 OS 버전. 이제 조금씩 자신의 입지를 굳혀나가려 꿋꿋히 진출하고 있는 윈도우 폰. 이 세가지가 단연 세계적으로 우세한 녀석들이라고 본다.


문제는 이들의 어플리케이션은 각기 다른 언어로 구성해야 함이다. 개발하기 위해서는, 이 각각의 언어들을 이해하고, 파악하며, 개발할 수 있어야 한다는 것이다.


그런데, HTML5가 대두화되고, 각 스마트 폰에서 HTML5를 지원하면서, 하이브리드 앱이 이슈화되고 있다. 티타늄, 폰갭, 앱스프레소 등과 같은 하이브리드 앱을 개발하기 위한 플러그 인이나, IDE가 출현을 했고, 이미 몇몇 유명 어플리케이션은 이를 이용하여 개발되었다.


하이브리드 앱은 네이티브 앱을 개발하기 위해서 각기 다른 언어를 배워야 하는 것이 아닌, 웹을 구성하는, html5, css, javascript, jquery 만 알면 어떠한 폰에서도 충분히 개발할 수 있게 하는 것이다. 재미난 것은 이러한 웹 언어로 한 곳을 개발하면, 그 소스 그대로 다른 폰에서도 적용이 가능하며, 하드웨어까지 제어할 수 있게 지원된다는 것이다.


또 한가지는 node.js다. 이 녀석의 탄생을 조금 독특한데, 아파치와 같이 일반 웹 서버는 접속이 늘어나면서 쓰레드 양도 같이 늘어나, 메모리를 쓰지 않아도, 점유되는 현상이 생겨날 수 있다. 즉, 너무나 많은 접속에는 취약한데, node.js는 javascript 자체가 event loop를 써서 비동기적으로 이벤트를 처리하게 되어 있어, 많은 접속에 적합하다는 것이다. .js 파일만으로 웹 서버 형태로 동작할 수 있는 것이 재미있지만, 많은 개발자들이 이 녀석을 장난감으로 많이들 쓰고 있다.


나는 이때 한가지 문제에 봉착했었는데, WAS 녀석을 쓰지 않고, DB로 접근할 수 있는가였다. 일단 DB서버는 따로 원격지에 있으니, WAS 단을 쓰지 않는 다면 CrossDomain 문제로 접근 자체가 불가능 한 것이였다. node.js 이 녀석을 보고 생각한 것이, php, jsp, asp와 같은 WAS를 쓰지 않고, Javascript 만으로 Cross domain 문제를 해결 할 수 있을까 였다. 물론 그런 문제를 해결하는 방법은 많이 있지만, 깔끔하지가 않았다. 뭔가 손쉽게 라이브러리 형태로 제공하면, 어떠한 Javascript 파일에서도 Cross Domain 문제를 피해 다른 위치의 DB라던지 솔루션을 가져오는 것을 말이다.


그래서, 같이 스터디를 하는 개발자에게 요청하여 node.js를 통한 mysql 제어를 할 수 있게 부탁하였고, 크로스 도메인 문제를 회피하여 간단하게 나마, 비 동기적 ajax를 활용하여 get, post 를 json 형태로 통신할 수 있게 했다.


물론 nods.js를 쓰지 않고, 아예 새로운 DB를 쓰면 크로스 도메인 문제를 해결 할 수 있다. couchdb라고 nosql 형태의 새로운 db인데, 여기에 couchapp과 couch-xd라는 라이브러리를 깔면, 원격지에서 json 형태로 손쉽게 접근하여 사용할 수 있게 지원된다. 이것은 내가 직접 구성하여 해보왔고, get, post가 되는 것을 확인 했다.


본문의 글을 정리해 보자면,

첫번째가 하이브리드 앱이 대세가 될 것 같다는 것,

두번째는 WAS를 구성하지 않아도, DB를 접근이 가능하다는 것이다.

댓글
댓글쓰기 폼