"가끔 필요한 기능이 이미 커맨드라인 도구로 존재해. 사이드카가 그걸 앱 안에 싣고 구동하게 해줘."
사이드카가 뭐냐면
사이드카는 앱과 함께 번들해 런타임에 돌리는 외부 실행파일이야 — 영상엔 ffmpeg, 바이너리로 컴파일된 Python 스크립트, Go CLI, 뭐든. 사용자한테 의존성 설치를 요구하는 대신, 임베드하고, 네 Rust 코어가 필요할 때 띄워. Tauri 앱이 Rust로 재구현하기 비현실적인 무거운 네이티브 기능을 전달하는 방법이야.
선언하고 이름 짓기
바이너리를 tauri.conf.json의 bundle.externalBin 아래 나열하고 — 누구나 한 번 걸려 — 실제 파일은 플랫폼별로 맞는 바이너리가 실리게 target-triple 접미사를 달아야 해: ffmpeg-aarch64-apple-darwin, ffmpeg-x86_64-pc-windows-msvc.exe 등. Tauri가 빌드 타임에 맞는 걸 고르고 런타임엔 맨 이름으로 풀어. 접미사 까먹으면 번들러가 네 바이너리를 못 찾아.
실행은 shell을 거쳐 — 그러니 scope해
사이드카는 shell 플러그인의 Command.sidecar(...)로 실행해, 즉 같은 보안 규율을 받아: shell capability가 그 특정 사이드카를, 거기에 (이상적으론) 허용 인자로 scope해서 허락해야 해. 사이드카는 권한 있는 네이티브 실행이라, 어떤 셸 명령처럼 같은 주의로 대해 — 딱 이 바이너리만 부여하고 그 이상은 안 돼. (참고: 모든 앱이 사이드카가 필요하진 않아. Cinder는 예를 들어 바이너리 번들 대신 네트워크 서비스로 무거운 이미지 작업에 닿아 — 다른 필요엔 다른 아키텍처.)