"Tauri는 'Electron인데 더 좋은 것'이 아냐. 다른 쪽을 택한 거고, 뭘 내주고 뭘 받는지 알아야 해."
다들 인용하는 그 숫자들
헤드라인에 걸리는 비교는 사실이고, 외워둘 만해. 최소한의 Tauri 앱은 몇 메가로 번들돼. 같은 앱을 Electron으로 만들면 Chromium이랑 Node를 지고 다니니까 80~150MB쯤에서 시작하고. 돌아갈 때도 Tauri는 OS가 이미 띄워둔 웹뷰에 얹히니까 기본 메모리가 Electron의 몇 분의 일이야. 콜드 스타트가 빠른 것도 같은 이유고 — 새로 깨울 150MB짜리 엔진이 없으니까.
Tauri가 존재하는 이유가 여기 있어. 근데 번들 크기 통계를 외운다고 이해한 건 아냐. 재밌는 건 그 숫자를 받는 대가로 뭘 내주느냐지.
솔직하게 따져보는 맞바꿈
Electron의 힘은 어디서나 엔진이 하나라는 데서 나와. Chromium을 특정 버전으로 통째로 싣고 다니니까, 네 기계에서 되는 CSS 기능이나 JS API가 모든 사용자 기계에서 똑같이 돼. 엔진을 쥐고 있으니 편차도 쥐고 있는 셈이지.
Tauri는 그걸 내놔. OS 웹뷰 셋을 빌려 쓰는데 셋 다 출시 주기가 따로 놀거든. flexbox의 구석진 케이스, date-input 위젯, 비디오 코덱 — 이런 게 WKWebView, WebView2, WebKitGTK 사이에서 갈릴 수 있어. 대신 작고 빠르고 메모리 적게 먹는, 네이티브에 가까운 앱을 받아. 거의 모든 앱한텐 남는 장사야. 근데 Chromium에만 있는 희한한 기능 하나를 전 플랫폼에서 픽셀까지 똑같이 그려야 하는 앱이라면, Electron의 균일함이 진짜 제값을 할 수도 있어.
네이티브 코드가 앉는 자리
구조도 달라. Electron에선 '백엔드'가 Node.js야 — 파일시스템이랑 OS를 만질 수 있는 JavaScript, 프론트엔드랑 같은 언어. Tauri에선 권한을 쥔 쪽이 Rust고, IPC 다리 건너편의 다른 언어야. 처음엔 마찰이 더 크게 느껴지는데, 이게 진짜 보안 이득이야 — 웹뷰가 'JavaScript니까' 파일시스템을 만질 수 있는 게 아니거든. 네가 열어준 Rust 함수만, 그것도 capability가 허락할 때만 부를 수 있어. security 트랙 전체가 이 구분 위에 서 있어.