"추상은 고개 끄덕이기 쉬워. 그게 버티는지 깨지는지는 진짜 앱에서만 갈려."
Cinder를 소개할게
이 퀘스트 내내 개념은 Cinder에 대고 설명할 거야 — 아빠랑 내가 Tauri 2.0로 만들어서 출시한 데스크톱 창작 도구야. Cinder는 Photoshop 옆에 놓는 두 번째 캔버스야. candidate board가 있고, 계보를 따라가고, AI 사이드킥이 그림을 칠해넣는 자리가 있어. 얘는 데스크톱 전용이고 정확히는 macOS만 노려 — 이게 중요해. 뒤의 mobile 트랙이 Tauri의 폰 이야기를 다루는데 Cinder는 그걸 일부러 안 쓰거든. 그러니까 내가 'Cinder에선'이라고 하면 장난감이 아니라 진짜로 돌아가는 데스크톱 앱 얘기야.
먼저 짚고 갈게 — Cinder는 git clone 할 수 있는 물건이 아냐. 내가 나누는 건 그 모양이야. 아키텍처랑 그때 내린 결정들이지 다운로드가 아니라는 뜻이지. 모양이 곧 레슨이고, 그 레슨은 네가 뭘 만들든 따라와.
진짜 앱에서의 두 반쪽
Cinder도 방금 배운 2-프로세스 모델 그대로야. 웹뷰는 React 19 + Vite 프론트엔드 — candidate board, 컨트롤, 사이드킥 패널. 코어는 관심사별로 쪼갠 작은 Rust 크레이트야. IPC command 파일 하나, 별개 brain 프로세스랑 네트워크로 대화하는 파일 하나, 창 동작 파일 하나, 디스크에 저장하는 파일 하나. 어느 모듈도 거대하지 않아. 각자 한 가지씩만 쥐고 있어. Tauri 코어는 원래 이렇게 끝나 — 모놀리스가 아니라, 다리 건너편에 놓인 날카로운 파일 몇 개.
코어가 실제로 끌어오는 것
Cinder 코어는 플러그인 셋을 등록하는데, 하나하나 plugins 트랙에서 다시 만날 이유가 있어. 재시작해도 살아남아야 하는 설정 때문에 store, 완성된 이미지를 Photoshop으로 돌려주려고 clipboard, 창을 두고 간 자리에 다시 열어주려고 window-state. '혹시 몰라서' 넣은 건 하나도 없어 — 셋 다 제 자리를 벌었어. 그 절제 자체가 레슨이야. Tauri 앱이 작게 유지되는 이유의 절반은, 쓰는 것만 끌어오기 때문이거든.