"'이거 플러그인으로 만들어야 하나?'의 답은 대개 아니오야 — 모듈이면 돼. 더 큰 망치를 꺼내기 전에 그 차이를 알아둬."
플러그인으로 안 만들어도 될 때
네 앱 하나만 쓰는 기능이면 플러그인일 필요가 없어. 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 짜듯 채우면 되고 — 그걸 옮겨 다닐 수 있고 허락을 거쳐야 하는 것으로 만들어주는 게 플러그인 껍데기야.