"추상은 고개 끄덕이기 쉬워. 진짜 앱은 그 추상이 버티느냐 깨지느냐가 갈리는 곳이야."
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 앱이 작게 유지되는 건 쓰는 것만 끌어오기 때문이기도 해.