node.js의 웹 기반 데스크탑 앱 프레임워크 비교

nw.js

내가 많이 사용해봐서 잘 안다.

뭐래 병신이…

장점

  • 초보자에게도 쉬운 접근성
  • 크롬 확장 및 API 지원
  • nwjc를 통해 지적 재산권 보호 기능 지원 (소스 코드 보호해준다고.)
  • 키오스크, 항상 위, 트레이, 메뉴, 투명화 등 기본적으로 앱에 필요한 기능 지원
  • 웹 컨텍스트 기준으로 프론트엔드 개발에 능하다.

단점

  • 존나 무겁다. 크롬의 대부분 기능을 담았기 때문에.
  • 자체적으로 앱 패키징이 없기 때문에 타 모듈 등을 사용해야 한다. (근데 맥은 존나 편함 ㄳ)
  • 소스코드 보호기능은 당연하지만 성능이 30% 이상 하락하므로 필요한 곳만 사용.
  • node.js 확장 중 네이티브 확장 지원이 그지같다. node-gyp로 가져온다 해도 다시 nw-gyp 써야 함.
    업데이트: 0.13부터 이제 nw-gyp 안써도 됨. (윈도우는 개발자에 한해 한가지 뭐 해야함 아 귀찮.)
  • 피드백 속도가 좀 느리다 (Github Issue 피드백이 평균 7일이라고 함. 참고로 같은 Issue 트래킹에 Electron은 평균 1일.)

Electron

한국에서 가장 많이 알려지고 애용하는 프레임워크.

내가 nw.js 홍보했더니 구려 터졌다고 꺼지라더라.

장점

  • 가볍다. 크롬의 핵심 기능만 넣었기 때문에.
  • 앱의 Hang 및 Crash 처리를 자체적으로 지원.
  • HTML5 및 ECMAScript 6 등 가장 최신 기술을 가장 빠르게 지원
  • 자체적으로 쉽게 사용 가능한 앱 패키징 및 업데이트 모듈 지원
  • 항상 위, 트레이, 메뉴, 투명화 등 기본적으로 앱에 필요한 기능 지원
  • 절약 모드를 무력화하는 API 및 웹 표준 DRM 등 더 다양한 기능 지원

단점

  • 크롬 확장 미지원
  • 소스 보호 기능이 없어 타 모듈(enclose.js 등)을 사용해야 함.
    (Electron 메인 개발자인 Cheng Zhao(@zcbenz)는 퍼포먼스를 위해 이를 지원하지 않겠다고 못박음)
  • Electron은 컨텍스트 구분이 nw.js에 비해 뚜렷함.
    이런 이유로 nw.js에서 쉽게 jQuery 지원했던게 Electron에서 쉽게 안되는 이유이기도 함.
    자세한 내용은 해당 FAQ 참고.
  • node.js 확장 중 네이티브 확장 지원이 그지같다. node-gyp로 가져온다 해도 다시 electron-gyp 써야 함.

node-thrust

앤 또 뭐냐…

몰라 시발.

장점

  • node.js 뿐만 아니라 Go, Python, Ruby 등의 언어 지원
  • 자체 IPC 원격 통신 제공
  • 저장 경로 사용자화 및 다른 방식의 쿠키 저장소 지원
  • 자체 프록시 기능 지원

단점

  • 데스크탑 앱의 모든 기능을 지원하지 않음. (다행히도 투명화는 지원)
  • file:// 프로토콜 미지원 (node-thrust에 자체 웹 서버가 있는 이유)
  • 프론트엔드와 백엔드 사이 연동 미지원 (예: 프론트엔드에서 node.js 모듈 바로 못씀)
  • 뜨고는 있지만 아직 부족한 문서

내가 뭐 부가설명 쓰려 했는데 까먹은 관계로 여기까지.

composite / 2016년 5월 18일 / Piss Development
태그:, , , , , , , ,

답글 남기기

Your email address will not be published / Required fields are marked *