HTML5 로 데스크탑 어플리케이션 만들기!
안녕하세요. CX 사업본부 MD 왓썹입니다.
이번 포스팅에서는 HTML5 로 데스크탑 어플리케이션을 만드는 방법을 알아보도록 하겠습니다.
어플리케이션은 music player 나 채팅 프로그램 등과 같이 어떤 종류의 작업을 돕기 위해 설계된 프로그램으로 응용 프로그램이라고도 합니다.
따라서 데스크탑 어플리케이션은 windows 나 맥, 리눅스와 같은 os 에 설치된 응용 프로그램을 말하는데요.
지금까지 데스크탑 어플리케이션을 만들기 위해 윈도우에서는 C++ 을, 맥에서는 Object C 를 이용해 만들어왔기 때문에 웹개발자의 입장에서는 거리가 먼 존재라는 인식을 가지고 있었죠.
하지만 이제는 C++ 이나 Object C 에 대해 잘 모른다 할지라도 HTML과 CSS, 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 을 다뤄보는 시간을 가져 보도록 하겠습니다.
'프론트엔드' 카테고리의 다른 글
TypeScript를 이용하여 javascript를 객체지향 언어처럼 사용해보자 (0) | 2015.11.19 |
---|---|
도메인 주도 설계 (Domain-Driven Design) 개요 (1) | 2015.10.29 |
Micro Service Architecuture Trade-Offs (0) | 2015.10.08 |
Micro Service Architecuture 의 중심 API Server (0) | 2015.10.01 |
멀티 디바이스 환경을 위한 웹 표준 보안 (0) | 2015.08.26 |