웹엔진 Electron, NW.js, CEF, Qt WebEngine 에 관하여..
웹엔진으로 앱을 만드는 것은 쉬운 일이지만, 브라우저 엔진을 실행하는 만큼 그 용도가 정확하게 맞아야 큰 효과가 있다. 몇가지 솔루션이 있는데, 한번 짚고 넘어가보자.
Electron
Electron은 Chromium기반의 애플리케이션 런타임이다. 웹기술로 여러 플랫폼을 지원하는 앱을 쉽게 만들 수 있다. 이런 개념은 오래전 부터 존재해왔지만, Electron이 많은 인기를 끌게된 원인은 바로 Node.JS의 지원이다. 그냥 Node.JS 패키지로 npm으로 설치할 수 있고 JavaScript로 Chromium WebView를 생성하고 Application의 Life cycle을 관리할 수 있다. 또한 다양한 Node.JS 패키지로 강력한 앱을 빠르고 쉽게 만들 수 있는 장점이 있다. 물론 원조는 NW.JS라는 것이 있다. Electron을 만든 사람도 NW.JS개발자였고 비슷한 부분이 많다.
https://www.electronjs.org/docs/tutorial/quick-start
위 튜토리얼 보면 쉽게 샘플앱를 만들고 바로 패키징도 할 수 있다.
NW.js
비교한 글을 보면 NW.js는 Electron과 달리 브라우저 엔진과 같은 context에서 Single Thread로 동작한다고 한다. NW.js의 경우 소스코드를 노출하지 않을 수 있다고 하는데, 이 경우 서버로 기능을 숨길 수 있기 때문에 커다란 장점은 아니라고 한다.
CEF(Chromium Embedded Framework)
CEF의 경우 말 그대로 라이브러리 형태로 하나의 컴포넌트로 WebView를 앱에서 실행하는 것이다. 예전에 IE Component를 사용하는 방식과 같다고 할 수 있다. 기본적으로 C++로 앱을 만들때 사용할 수 있으며 다양한 바인딩이 존재한다.
Chromium 자체가 WebKit처럼 embedding을 목적으로 만들어져 있지 않아서 기존 앱에 WebView를 붙이는 것이 쉽지 않다. 분명 소스코드가 많이 수정되었고 최신 코드를 업데이트하기도 쉽지 않을 것 같다.
https://bitbucket.org/chromiumembedded/cef/wiki/Tutorial
Qt WebEngine
https://doc.qt.io/qt-5/qtwebengine-features.html
Qt도 Chromium WebView를 구현했는데, Qt로 앱을 만들 때 사용할 수 있다. Tesla 자동차에서 사용하는 것으로 알고 있다.
참고
'Web' 카테고리의 다른 글
Web fonts로 인한 layout 변경 문제 (0) | 2023.03.18 |
---|---|
타입스크립트(Typescript) 스타터 코드 (0) | 2022.09.04 |
Crosswalk을 소개한 블로그글 (0) | 2016.03.31 |
웹브라우저 어떻게 동작하나(2)? - HTML5 대한민국 관심 그룹 10차 회의 발표 자료 (1) | 2011.10.22 |
웹브라우저 어떻게 동작하나? - HTML5 대한민국 관심 그룹 9차 회의 발표 자료 (0) | 2011.09.22 |