프론트엔드

HTML5 로 데스크탑 어플리케이션 만들기!

CyberI 2015. 10. 26. 16:31

HTML5 로 데스크탑 어플리케이션 만들기!


안녕하세요. CX 사업본부 MD 왓썹입니다. 

이번 포스팅에서는 HTML5 로 데스크탑 어플리케이션을 만드는 방법을 알아보도록 하겠습니다.


어플리케이션은 music player 나 채팅 프로그램 등과 같이 어떤 종류의 작업을 돕기 위해 설계된 프로그램으로 응용 프로그램이라고도 합니다.

따라서 데스크탑 어플리케이션은 windows 나 맥, 리눅스와 같은 os 에 설치된 응용 프로그램을 말하는데요.

 

지금까지 데스크탑 어플리케이션을 만들기 위해 윈도우에서는 C++ , 맥에서는 Object C 를 이용해 만들어왔기 때문에 웹개발자의 입장에서는 거리가 먼 존재라는 인식을 가지고 있었죠.

 

하지만 이제는 C++ 이나 Object C 에 대해 잘 모른다 할지라도 HTMLCSS, Javascript 만 다룰 줄 안다면 Node-Webkit, AppJS, TideSDK 를 이용해서 데스크탑 어플리케이션을 손 쉽게 만들 수 있습니다.

 

먼저 이 세가지 도구 각각의 장단점을 간단하게 나열해보았습니다.



조금 더 자세히 살펴보자면

 

Node-Webkit


1. NodeJS 를 기반으로 하기 때문에 NodeJS API 와 모든 서드 파티 모듈들과 완벽하게 호환이 가능하다는 점이 가장 큰 장점으로 볼 수 있습니다. javascript 로 파일 열기 부터, socket 통신, 비디오 재생 등등 기존의 데스크탑 어플리케이션이 할 수 있는 것 대부분이 가능합니다. 또한 NodeJS 처럼 package.json 파일을 이용하여 window 사이즈나 타이틀, 메뉴 등 다양한 설정을 쉽게 할 수 있습니다.


2. 2011년에 Intel Open Source Technology Center 에서 만들어졌고 계속해서 정기적으로 업데이트가 되고 있습니다. 따라서 버그 수정이나 이슈에 대한 해결이 잘 이루어 지고 있다고 보여집니다.


3. 이미 많은 업체들이 Node-Webkit 을 이용하여 데스크탑 어플리케이션을 만들고 있고, 많은 프로젝트를 통해 입증이 되었습니다. 관련 프로젝트는 아래 링크를 통해 확인해 보세요.

https://github.com/nwjs/nw.js/wiki/List-of-apps-and-companies-using-nw.js


4. windows, linux, mac 세가지의 OS 를 지원합니다.


5. 빠른 성능을 보여줍니다. (GPU 가속)


6. 기존의 javascript 어플리케이션은 대부분 소스가 공개되므로 보안이 필요한 영역에서 본격적인 상용 제품으로 개발하는 것이 지양되어 왔으나 node-webkit javascript 어플리케이션의 소스를 바이너리 포맷으로 변환해주는 기능을 제공함에 따라 javascript 어플리케이션의 보안성이 향상되었습니다. 또한 KCMScope 프로토타입 개발에 이 기능을 사용하여 개인정보 유출을 목적에 둔 소스의 임의 접근이 어렵습니다.


7. 크로스 브라우징을 신경 쓰지 않고 크롬 위주의 코딩을 해도 웹표준을 그대로 따라가기 때문에 파이어폭스와 IE 에서도 큰 문제 없이 실행 됩니다.


8. 쉽게 어플리케이션을 배포 할 수 있습니다.


AppJS


1. Node-Webkit 와 마찬가지로 NodeJS 를 기반으로 합니다.


2. 다양한 OS 를 지원한다 (windows, mac, linux)


3. window 창에 대한 설정 범위가 상당히 넓습니다. css javascript를 이용하여 Window 창에 대한 다양한 설정이 가능하기 때문에 drag popup 같은 기능이나 shadow, 투명도와 같은 스타일 설정 등을 쉽게 할 수 있습니다.


4. 더 이상의 업데이트가 이루어지지 않고 있습니다. 사실상 프로젝트가 죽었다고 하는 사람도 있지만 AppJS를 기반으로 하여 deskshell 이라는 프로젝트를 진행하고 있습니다. 차별화를 두기 위해 ruby 나 파이썬 을 통합하는 것에 중점을 두고 있다고는 하지만 현재로서는 버그도 많고 부족한 부분이 많아서 Node-Webkit 에 비하면 역부족이라는 생각이 듭니다.


TideSDK


1. 가이드 문서가 상당히 잘 정리되어 있습니다.


2. HTML5, CSS3, Javasrcipt 뿐만 아니라 Python, Ruby, PHP 를 지원하기 때문에 사용자들에게 보다 익숙한 언어로 응용 프로그램의 기능을 확장 할 수 있도록 돕습니다.


3. 현재는 TideSDK 에 대한 더 이상의 작업은 중지한 것으로 보이고 TideKit 으로 변경을 하기 위해 자금을 모으면서 개발을 진행 하고 있습니다. 개발 진행 상황은 트위터를 통해 확인 할 수 있습니다. 하지만 프로젝트가 성공할지에 대한 여부는 확실하지 않습니다.


현재까지 조사를 하면서 관련 자료나 안정성을 봤을때,

 데스크탑 어플리케이션을 만들기에는 Node-Webkit 이 가장 적합하다고 판단 됩니다

다음 포스팅에서는 Node-Webkit 을 다뤄보는 시간을 가져 보도록 하겠습니다.