"대부분의 경우, '이거 플러그인이어야 해?'의 답은 아니오야 — 모듈이어야 해. 더 큰 망치를 꺼내기 전에 차이를 알아."
플러그인을 안 써야 할 때
네 한 앱만 쓰는 기능이면 플러그인일 필요 없어. Rust 모듈(commands.rs, storage.rs)에 두고 command를 평범하게 등록해 — 그게 더 단순하고, 의식이 적고, 건강한 Tauri 코어의 모습 그대로야(Cinder의 쪼갠 모듈이 이거). 플러그인은 패키징 오버헤드를 더해. 돌려받는 게 있을 때만 지불해.
플러그인이 제값 할 때
플러그인을 써, 기능을 여러 앱에 걸쳐 재사용하고 싶을 때, 남들이 쓰게 배포할 때, 또는 통일된 API 뒤에 네이티브 모바일 코드(Swift/Kotlin)를 번들할 때. 플러그인은 Rust command, JS API, permission 정의, 선택적 모바일 네이티브 코드를 설치 가능한 단위 하나로 묶어 — 네가 써온 공식 플러그인이랑 같은 모양이야. '이거 다음 앱에도 넣고 싶어'가 참이 되는 순간, 플러그인이 맞는 컨테이너야.
플러그인의 모양
핵심에서 플러그인은 이름, 자기 command용 invoke 핸들러, permission 세트를 가진 tauri::plugin::Builder야. CLI가 tauri plugin new(나 create 명령)로 전체 구조를 스캐폴딩해줘 — Rust 크레이트, JS 패키지, permission 스켈레톤 생성. command는 앱 command 쓰듯 채워 — 플러그인 래퍼가 그걸 이식 가능하고 부여-통제되게 만들어.