"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 트랙 전체가 이 구분 위에 세워져.