"command는 그냥 스티커 붙은 Rust 함수야 — 그리고 명단에 올라간 이름이지. 명단을 빠뜨리면 사라져."
두 단계, 항상 둘 다
네이티브 힘을 프론트엔드에 노출하는 건 두 단계고, 두 번째 깜빡하는 게 제일 흔한 초보 버그야:
- 함수에 표시 —
#[tauri::command]어트리뷰트. Tauri 매크로 기계한테 이놈의 IPC 접착제를 생성하라고 알려줘. - 등록 — Builder 안
tauri::generate_handler![]에. 이게 웹뷰가 대화하는 라우터에 command를 실제로 올리는 거야.
1단계만 하고 2단계 안 하면 'command greet not found' 같은 런타임 에러가 나 — 함수는 있는데 다리에 엮은 게 없는 거야. command가 '안 찾아질' 땐 핸들러 명단부터 확인해.
command가 받고 반환할 수 있는 것
command 파라미터는 평범한 타입(String, 숫자, 불리언), 네 serde struct, 또는 나중에 만날 특수 Tauri 타입(State, AppHandle, Window)이 될 수 있어. 반환 타입은 직렬화되는 거면 뭐든 — 실패 없는 command는 값, 실패 가능한 건 Result<T, E>. 특수 타입은 Tauri가 자동 주입하고, 넌 프론트엔드에서 데이터 인자만 넘겨.
고전적인 첫 command
모든 Tauri 프로젝트는 greet command로 시작하고, 한 번 쳐보면서 루프 전체를 느낄 가치가 있어: Rust 함수, 스티커, 명단의 이름, 그리고 웹 쪽의 invoke(다음 레슨). command 하나가 다리를 건너는 걸 느끼고 나면, 다른 모든 command는 화물만 다른 같은 모양이야.