일렉트론(Electron)은 2021년에도 여전히 최고의 데스크탑 프레임워크인가요? 사실 저는 아직 일렉트론을 대체할 만한 훌륭한 프레임워크를 찾지 못하였습니다. 구글에서 개발한 크로스 플랫폼 프레임워크인 Flutter가 데스크탑 앱까지 개발할 수 있을 것이라고 기대를 했지만, 아직 기대 할 만한 수준은 아닙니다. Flutter에서는 노트앱에 필요한 리치에디터를 구현하기가 정말 어렵습니다. 한글을 입력하는 중에 커서가 갑자기 맨 앞으로 이동해버리는 버그와 자음모음 분리 현상, 복사/붙여넣기가 예상대로 동작하지 않는 버그 등 제 능력으로 해결할 수 없는 문제들이 여전히 존재하고 있습니다. _ 다시 일렉트론으로 돌아와서 이야기하면, 일렉트론은 브라우저(Chromium)와 Node.js를 기본 번들로 포함해버리기 때문에 앱 용량이 매우 커져버리는 단점이 있습니다. bare-bones 일렉트론 앱은 압축하지 않은 상태에서 120MB 정도 됩니다. 이런 단점에도 불구하고 크로스 플랫폼 개발 프레임워크로 일렉트론은 여전히 인기 있습니다. 일렉트론의 장단점은 다음과 같습니다. 👍 장점 - 방대한 커뮤니티를 보유하고 있다. - Microsoft, Discord, Slack 등에서 사용 중이다. - 낮은 러닝 커브로 배우기 쉽다. - 웹 기술을 사용할 수 있다. - Node.js를 사용하므로 Javascript의 모든 기능을 사용 할 수 있다. 👎 단점 - 큰 사이즈(~120MB)의 설치 파일 사이즈를 가지고 있다. - 앱이 무겁다. 많은 RAM과 CPU를 사용한다. - 모바일 지원은 없다. - 보안에 취약하다. 사용자가 앱 소스코드를 디컴파일해서 볼 수 있다. - Node.js FFI 외부에서 네이티브 코드를 통합할 방법이 없다. Node.js FFI는 설정하는 것이 어렵고 성능 저하 우려가 있다. _ 🤔 Electron의 대안은? 1️⃣ Tauri https://github.com/tauri-apps/tauri Tauri는 Github에서 23.3k Star를 받은 매우 인기 있는 크로스 플랫폼 프레임워크입니다. Window7,8,10과 Linux, macOS 플랫폼을 지원합니다. 아직 모바일은 지원하지 않습니다. 그리고 Tauri 백엔드는 Rust로 구축되어 있습니다. 일렉트론 보다 더 빠르고 메모리를 효율적으로 사용합니다. Tauri는 코드를 난독화하고 프로덕션 환경에서는 개발자 도구를 비활성화하기 때문에 더 안전합니다. 하지만 Tauri도 단점이 있습니다. 크로미움 브라우저를 포함하고 있지 않기 때문에, 여러 크로스 브라우저를 지원해야하고 커뮤니티는 아직 방대하지 않습니다. 2️⃣ 프로그레시브 웹 앱(Progressive Web App) PWA로 웹앱을 만들면 대부분의 플랫폼에서 사용할 수 있습니다. 그리고 앱 파일 사이즈가 매우 작고 앱 업데이트 하는 것도 쉽습니다. 하지만 PWA에도 단점이 있습니다. 설치 파일 형태로는 사용자에게 제공할 수가 없습니다.그리고 파이어폭스는 PWA를 지원하지 않습니다. (참고로 파이어폭스는 PWA가 기본적으로 비활성화 되어 있습니다.) 마지막으로 네이티브 API 엑세스에 매우 제한적입니다. 아래 블로그 글을 읽고 간략하게 정리해보았습니다. 이 내용을 통해서 무언가를 배우셨기를 바랍니다. - 출처: https://javascript.plainenglish.io/is-electron-the-best-desktop-framework-to-use-in-2021-e525638b9b6a