"제일 가벼운 앱은 애초에 안 보내도 되는 앱이야."
브라우저는 이미 거기 있어
요즘 OS는 다 웹 렌더링 엔진을 안에 박고 나와. macOS랑 iOS엔 WebKit(WKWebView), Windows 10/11엔 WebView2(Microsoft가 관리하는 Chromium 기반), 대부분의 Linux 데스크톱엔 WebKitGTK가 있어. 사용자 기계는 이미 HTML을 그리고, JavaScript를 돌리고, CSS를 칠할 수 있어. 지금 당장, 아빠 도움 하나 없이.
Electron의 베팅은 이거였어 — 로컬 엔진 못 믿겠으니 내 걸 통째로 보낸다. 그래서 Electron 앱은 다들 Chromium 한 벌(~150MB)이랑 Node.js 런타임을 짊어지고 다녀. Electron 앱 다섯 개 켜면 RAM에 Chromium 다섯 개야. Tauri의 베팅은 정반대지 — 이미 깔려 있는 엔진을 빌려 쓴다. HTML/CSS/JS랑, 창 하나 열고 시스템 웹뷰를 네 UI로 가리킬 줄 아는 작은 네이티브 바이너리만 보내.
반쪽 둘이 모여 앱 하나
Tauri 앱은 두 개가 같이 사는 거야:
- 코어 — Rust로 컴파일된 네이티브 프로세스. 창, 파일시스템, 네트워크, OS를 다 쥐고 있어. 권한 필요하거나, 빠르거나, 플랫폼 종속적인 일은 여기서 벌어져.
- 웹뷰 — OS 자체 렌더링 엔진이 네 프론트엔드를 보여줘. React, Svelte, Vue, 생 HTML — Tauri는 진짜로 뭘 쓰든 신경 안 써.
둘은 메모리를 절대 안 나눠 가져. IPC 다리로 메시지를 주고받지. 웹뷰가 코어한테 네이티브 일을 부탁하고("이 파일 읽어줘", "이 이미지 저장해줘") 코어가 답해. 그 메시지 경계가 이 퀘스트 전부의 척추야.
"Rust"한테 쫄 필요 없는 이유
Tauri 앱 내려고 Rust 고수가 될 필요는 없어. 엄청 많은 종류의 앱에서, 네가 짤 Rust는 프론트엔드에 노출하는 작은 함수 몇 개야. bridge 트랙이 딱 필요한 만큼의 Rust 생존키트를 쥐여줄 거고, 생존 이상으로 깊게 가고 싶으면 Rust는 /cwk-quests/rust-quest에서 자기 퀘스트를 따로 받아.