"dev는 네 창을 살아있는 서버로 가리켜. build는 전부를 바이너리 하나로 얼려. 지금 어느 세계인지 알아."
명령 둘, 세계 둘
tauri dev는 네 이너 루프야. beforeDevCommand를 돌려 프론트엔드 dev 서버를 띄우고, devUrl이 응답할 때까지 기다린 다음, Rust 코어를 debug 모드로 컴파일하고 그 dev 서버를 가리키는 네이티브 창을 띄워. 프론트엔드엔 HMR, Rust 쪽엔 저장 시 재컴파일. 컴포넌트 고치면 — 라이브 갱신. command 고치면 — Rust가 리빌드하고 재실행.
tauri build는 출시 경로야. beforeBuildCommand를 돌려 정적 프론트엔드를 만들고, Rust 코어를 release 모드(최적화, 컴파일 더 느림)로 컴파일하고, frontendDist 파일을 바이너리에 박고, 그다음 번들러를 돌려 네 타깃용 설치 파일을 만들어. dev 서버는 관여 안 해. 앱이 완전히 자체 완결돼.
debug vs release는 진짜 차이야
tauri dev가 만드는 debug 바이너리는 크고 최적화 안 됐어 — 빠른 반복엔 좋고, 출시엔 끔찍해. tauri build가 만드는 release 바이너리는 최적화되고 스트립돼서, 작고 빠른 대신 컴파일이 더 오래 걸려. 성능이나 바이너리 크기를 debug 빌드로 절대 재지 마. release 출력으로 재.
출력이 떨어지는 곳
tauri build 후, 설치 파일이 src-tauri/target/release/bundle/ 아래 타입별로 정리돼 나타나 — Mac은 dmg/랑 macos/, Windows는 msi/랑 nsis/, Linux는 deb/랑 appimage/. 생 실행파일은 target/release/에 있고, 사용자한테 건네는 건 bundle 폴더야. 이건 ship 트랙에서 깊게 파.