"무거운 프로그램 옆에 하루 종일 열려 사는 앱은 자원을 잡아먹으면 안 돼. 그 순간 자원 점유는 구현 세부이길 그만두고 제품이 무엇인가의 일부가 돼."
'가벼움' 이 취향이 아니게 되는 순간
열었다가 쓰고 닫는 도구라면 자원 점유는 거의 안 중요해. 세부일 뿐이지. 그런데 Cinder 는 사이드카야. 작업하는 내내, 한 번에 몇 시간씩 포토샵 옆에 열려 있어. 그 포토샵이 이미 메모리를 진지하게 먹고 있는 동안에. 이 역할에서는 자원 점유가 나중에 다듬을 세부가 아니야. 제품 정의의 일부야. 무거운 사이드카는 전체를 굼뜨게 만들고, 그러면 작가가 슬그머니 안 열게 돼.
Electron 이 부르는 손짓
웹 기술로 크로스플랫폼 데스크톱 앱을 만드는 익숙한 길은 Electron 이야. 앱마다 브라우저 엔진을 통째로 싣는 방식이지. 길이 잘 닦여 있고, 문서도 잘 돼 있고, 개발자 대부분이 이미 알아. 그 익숙함이 진짜 끌림이야. 그런데 Electron 앱은 각자 자기 무거운 런타임을 싣거든. 이미 무거운 호스트 옆에서 하루 종일 도는 사이드카한테는 그 무게가 제품이 존재하는 이유를 곧장 갉아먹어.
Tauri 와 진짜 Rust core
고른 건 더 가벼운 native shell 이었어. 브라우저를 싣는 대신 운영체제가 이미 가진 web view 를 쓰는 framework 에, 그 아래 native 동작을 맡을 진짜 Rust core 를 두는 구성. 그래야 자원 점유가 사이드카 역할을 지킬 만큼 작게 유지돼. Rust core 는 장식이 아니야. 윈도우 동작이랑 파일시스템 준비 작업처럼 웹 전용 껍데기가 어설프게 다루는 native 관심사를 맡아. shell 이 가볍고 동시에 native 층이 진짜인 거지. 이걸 이해만 하지 말고 직접 지어 보고 싶으면, Tauri Quest 가 native shell 을 처음부터 끝까지 걷고 Rust Quest 가 그 core 를 쓴 언어를 가르쳐. 이 lesson 은 왜 고, 그 둘은 어떻게 야.
정직하게 지켜 주는 되돌아가기 룰
이 선택을 지켜 주는 규율이 하나 있어. 더 무겁고 익숙한 쪽으로 되돌아가는 건 가벼운 쪽에서 진짜로 막히는 지점을 확인한 다음에만 허용돼. 가벼운 쪽이 낯설다는 이유로는 절대 안 되고. 낯섦은 배우는 값이지 막힌 게 아니야. 이 룰이 '이거 어렵고 잘 모르겠어' 가 '이건 안 돼' 인 척하는 걸 막아 줘. 가벼운 스택이 정말로 꼭 필요한 걸 못 하면 되돌아가. 그냥 아직 안 배운 거면 배우고.