사실 Electron은 생각보다 괜찮아요
(blog.vaxry.net)- Electron은 단순히 느리고 비효율적이라는 오해를 받지만, 실제로는 효율적이고 강력한 도구임
- RAM 사용량과 스토리지 크기 문제는 현대 앱 전반의 경향일 뿐, Electron만의 문제가 아님
- 스트리밍 서비스처럼 웹 기술 기반 기능이 중요한 앱에서는 Electron이 오히려 자연스러운 선택임
- 빠른 개발 속도와 비동기 네트워킹에 최적화되어 있어 생산성이 매우 높음
- Electron이 느리다는 평가는 주로 기업이 만든 품질 낮은 앱들 때문이며, 잘 만든 Electron 앱은 충분히 빠르고 쓸만함
Electron에 대한 편견
- Electron은 로컬에서 웹페이지를 띄우는 Chromium 브라우저와 같음
- 이로 인해 느리고 비효율적이며 "비네이티브"하다는 인식이 퍼졌지만, 실제로는 사실이 아님
효율성
- Electron이 비효율적이었다면 Chromium 브라우저 자체가 제대로 작동하지 않았을 것임
- Electron은 앱을 잘 작동시키기 위해 많은 요소를 함께 번들링할 뿐임
RAM 사용량
- "Electron은 RAM을 많이 먹는다"는 주장은 사실과 다름
- 실제 측정 결과
- Vermilion (Electron 기반): 215MB
- Dolphin (Qt6/KDE 기반): 258MB
- Nautilus (GTK4/Libadwaita 기반): 374MB
- 현대 앱은 기능이 많아지면서 RAM 소모가 늘어나는 경향이 있으며 이는 Electron만의 문제가 아님
스토리지 크기
- Electron 앱은 많은 의존성을 함께 번들링하여 용량이 커짐
- Flatpak이나 AppImage와 유사한 구조로, 이로 인해 이식성과 안정성이 높아짐
속도
- Electron 앱이 느린 것은 Electron 자체 때문이 아니라, 주로 기업들이 만든 앱이 엉성하게 개발되었기 때문임
Electron이 오히려 더 좋은 경우
DRM 처리
- 스트리밍 서비스들은 DRM을 사용하며, 이는 웹 기반 기술을 요구함
- 예를 들어 Tidal은 Widevine을 요구하고, Electron에는 이를 쉽게 통합할 수 있는 생태계가 구축되어 있음
- Spotify도 법적으로 JS 모듈을 통해서만 스트리밍이 가능함
빠른 개발 속도
- Typescript와 Electron은 웹 기술 경험자에게 매우 빠른 개발을 가능하게 해줌
- GTK나 QT 기반 프레임워크에 비해 웹 기술은 접근성과 학습 난이도 면에서 훨씬 우수함
비동기 네트워킹
- 스트리밍 앱처럼 비동기 통신이 빈번한 경우, 웹 기술이 최적화되어 있음
Electron은 모든 것에 적합할까?
- 이론상으로는 가능하지만, 데스크탑 핵심 앱처럼 최소한의 리소스를 요구하는 경우에는 적합하지 않음
- 복잡하고, 온라인 기능이 많고, 크로스 플랫폼을 고려해야 하는 앱에는 Electron이 논리적인 선택임
- 개발 품질이 전제된다면 Electron 앱도 충분히 빠르고 효율적으로 만들 수 있음
- 예시로 Obsidian이나 VS Code 같은 Electron 앱들은 성능이 매우 우수함
- 최근 WASM 발전으로, 무거운 작업을 오프로딩하면 Electron 앱도 전통적 데스크탑 앱들과 경쟁할 수 있음
결론
- Electron에 대한 불만은 대부분 구형 Electron 버전이나 기업의 품질 낮은 앱 때문임
- "브라우저 페이지라서 느리다"는 인식은 현실과 동떨어져 있으며, 현대 브라우저는 매우 높은 성능을 보여줌
그 자체로는 좋은 프레임워크라는 것에는 동의하는데 많은 기업과 스타트업들이 좋은 생산성을 구실로 성능 신경은 안쓰고 찍어내다보니 일단 일렉트론으로 만들어졌다고 하면 거부하게됨
좋은 노트북 쓰고 있는데도 솔직히 vscode가 빠르다는 것은 잘 모르겠음. 결국엔 아예 무겁고 기능이 많아서 편한 인텔리제이를 쓰거나, 아니면 아예 네이티브로 개발된 IDE나 텍스트 에디터를 사용하게 되더라. 확실히 빠르고 경험이 좋았음.
Flatpak 이나 AppImage 같은 문제는 Windows 로 돌아오면 전혀 관련없는 내용인 것 같은데 말이죠 ㅋㅋ..
electron 자체는 너무 좋은 프레임워크라고 생각합니다. 프레임워크 개발도 활발하고 무엇보다 크로미움에 구현될건 죄다 되어있으니까요