C.W.K.
Stream
Lesson 04 of 04 · published

Electron 말고 Tauri

~10 min · tauri, electron, lightness, webview

Level 0식은 초고
0 XP0/33 lessons0/12 achievements
0/100 XP to next level100 XP to go0% complete
"Electron 은 앱마다 브라우저 통째를 실어. Tauri 는 OS 가 이미 가진 걸 빌려. 가벼움이 핵심이야."

아빠가 도망치는 bloat

Rekindle 은 범용 에디터가 무거워서 존재해. 그러니 그 껍데기가 선반에서 가장 무거운 선택일 순 없어. Electron 은 앱마다 Chromium 통째를 번들해 — 네 코드 한 줄 쓰기 전에 ~150MB+ 기준선이고, 그게 네 머신의 모든 Electron 앱 곱하기, 각자 브라우저 복사본을 하나씩 돌려. '네가 가진 것보다 가볍다' 가 핵심 어필인 도구가 앱마다 브라우저를 실으면 자멸이야.

webview 를 빌려, 싣지 마

Tauri 는 Rekindle 이 다른 데서 다 하는 그 수를 해. 번들 말고 빌리기. Chromium 을 싣는 대신, 운영체제가 이미 제공하는 webview (macOS 의 WKWebView) 를 쓰고, 네이티브 작업엔 Rust 코어를 짝지어. 바이너리가 한 자릿수 MB 로 유지돼.

              Electron                 Tauri
webview       Chromium 번들            OS webview 빌림 (WKWebView)
기준 크기     앱당 ~150MB+             한 자릿수 MB
백엔드        Node.js                  Rust
철학          전부 실음                OS 가 이미 가진 걸 빌림

편집 코어로 CodeMirror 를 빌리는 것과 같은 본능이야 — 플랫폼이 이미 가진 상품화된 무거운 걸 다시 짓지 (또는 다시 싣지) 마. Cinder 가 같은 이유로 바로 이 결정을 내렸고, Rekindle 은 스택을 거의 그대로 상속해. 가족 일관성은 공짜니까.

'편의를 위한' Electron fallback 없음

솔깃한 배신은 각주야. '그냥 Electron 빌드도 더하자, 편의 / 넓은 호환성을 위해.' 하지 마. 가벼움은 헤지할 수 있는 nice-to-have 가 아니라 thesis 야. Electron fallback 은 프로젝트가 도망치려 존재하는 바로 그 bloat 를 조용히 다시 들여오고, 일단 있으면 최소 저항의 길이 돼. 어떤 invariant 는 편리한 예외를 거부해야만 살아남아. 이게 그중 하나야.

Code

Electron 은 브라우저를 싣고; Tauri 는 빌려·text
              Electron                 Tauri
webview       Chromium 번들            OS webview 빌림 (WKWebView)
기준 크기     앱당 ~150MB+             한 자릿수 MB
백엔드        Node.js                  Rust
철학          전부 실음                OS 가 이미 가진 걸 빌림

# CodeMirror 빌리기와 같은 본능: 플랫폼이 이미 가진 상품화된
# 무거운 걸 다시 싣지 마.

External links

Exercise

네 머신의 Electron 앱 크기를 확인해봐 (Slack, VS Code, Discord 등). 각자 자기 Chromium 을 짊어져. 다 더해봐. 이제 각자 대신 OS webview 를 빌렸다고 상상해. 그 차이가 Rekindle 이 내길 거부하는 세금이고 — '그냥 Electron 빌드 더하자' 가 취향이 아니라 thesis 수준의 '아니' 인 이유야.
Hint
macOS 에선 응용 프로그램 폴더에서 .app 번들 크기를 봐. 대부분 Chromium 인 100MB+ 기준선이 앱마다 반복되는 게 바로 Tauri 의 webview-빌리기 모델이 없애는 중복이야.

Progress

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

댓글 0

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

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