C.W.K.
Stream
Lesson 01 of 06 · published

Tauri가 진짜 뭐냐면

~12 min · tauri, architecture, webview, rust

Level 0웹 관광객
0 XP0/56 lessons0/13 achievements
0/100 XP to next level100 XP to go0% complete
"제일 가벼운 앱은 애초에 안 보내도 되는 앱이야."

브라우저는 이미 거기 있어

요즘 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에서 자기 퀘스트를 따로 받아.

Code

main.rs — 두 줄이 네이티브 앱 하나·rust
// src-tauri/src/main.rs —데스크톱 앱의 네이티브 진입점 전체.
// 응, 진짜로. 알맹이는 lib.rs에 둬서 모바일이 같이 쓸 수 있게 해.
#![cfg_attr(not(debug_assertions), windows_subsystem = "windows")]

fn main() {
    app_lib::run();
}
Cargo.toml — 이게 Tauri로 만들어주는 의존성·toml
# src-tauri/Cargo.toml — 네이티브 쪽은 그냥 Rust 크레이트야.
# `tauri = "2"`가 프레임워크 전체를 끌어오고, features로 부가기능을 켜.
[dependencies]
tauri = { version = "2", features = [] }
serde = { version = "1", features = ["derive"] }
serde_json = "1"

External links

Exercise

Activity Monitor(macOS)나 작업 관리자(Windows)를 열어. 돌고 있는 Electron 앱을 찾아 — VS Code, Slack, Discord, Notion 다 Electron이야. 메모리 사용량이랑 helper 프로세스 몇 개나 띄우는지 봐. 그리고 한 문장 써봐: 네가 만들고 싶은 앱한텐, 브라우저를 직접 보내는 게 그 비용만큼 가치 있어, 아니면 OS 웹뷰 빌리는 게 더 나은 거래야?
Hint
보편적 정답은 없어 — 거래야. '정답' 프레임워크 찾는 게 아니라 판단을 연습하는 거야. 앱별 RAM이랑 'Helper' 프로세스 개수를 눈여겨봐.

Progress

Progress is local-only — sign in to sync across devices.
이 페이지에서 버그를 발견하셨거나 피드백이 있으세요?문제 신고

댓글 0

🔔 답글 알림 (로그인 필요)
로그인댓글을 남기려면 로그인해 주세요.

아직 댓글이 없어요. 첫 댓글을 남겨보세요.