디버깅
Tauri에는 많은 동작 부분이 있으므로 디버깅이 필요한 문제에 직면할 수 있습니다. 오류 세부 정보가 출력되는 곳은 여러 곳이 있으며, Tauri에는 디버깅 프로세스를 더 쉽게 만들어주는 몇 가지 도구도 있습니다.
개발 전용 코드
섹션 제목: “개발 전용 코드”디버깅용 툴킷 중에서 가장 유용한 도구 중 하나는 코드에 디버그 문을 추가하는 기능입니다. 그러나 이러한 기능이 프로덕션 환경에까지 들어가는 것은 일반적으로 바람직하지 않습니다. 여기서 “개발 모드에서 실행 중인지 여부”를 확인하는 기능이 유용합니다.
Rust에서
섹션 제목: “Rust에서”fn main() { // 현재 인스턴스가 `tauri dev`로 시작되었는지 여부. #[cfg(dev)] { // `tauri dev` 전용 코드 기재 } if cfg!(dev) { // `tauri dev` 전용 코드 기재 } else { // `tauri build` 전용 코드 기재 } let is_dev: bool = tauri::is_dev();
// 디버그 어설션이 활성화되어 있는지 여부. 이는 `tauri dev`와 `tauri build --debug`에서 "true"가 됩니다. #[cfg(debug_assertions)] { // 디버그 전용 코드 기재 } if cfg!(debug_assertions) { // 디버그 전용 코드 기재 } else { // 프로덕션 전용 코드 기재 }}《번역 주》 디버그 어설션 debug assertions. 프로그램 중에 충족되어야 할 조건(어설션)을 기술하여 실행 시에 체크하는 구조.
Rust 콘솔
섹션 제목: “Rust 콘솔”오류를 확인하는 첫 번째 장소는 “Rust 콘솔”입니다. 이것은 (tauri dev 등을 실행하는) 터미널 내에 있습니다. 다음 코드를 사용하면 Rust 파일 내에서 콘솔에 정보를 출력할 수 있습니다.
println!("Message from Rust: {}", msg);때로는 작성한 Rust 코드에 오류가 발생할 수 있지만, Rust 컴파일러가 많은 정보를 제공해 줍니다. 예를 들어, tauri dev가 충돌했을 때 다음과 같이 다시 실행할 수 있습니다. Linux 및 macOS에서는:
RUST_BACKTRACE=1 tauri devWindows(PowerShell)에서는 다음과 같습니다:
$env:RUST_BACKTRACE=1tauri dev이 명령은 상세한 스택 트레이스를 제공합니다. 종합적으로 보면, Rust 컴파일러는 문제에 대한 상세한 정보를 제공하여 문제 해결에 도움을 줍니다. 예를 들어:
error[E0425]: cannot find value `sun` in this scope --> src/main.rs:11:5 |11 | sun += i.to_string().parse::<u64>().unwrap(); | ^^^ help: a local variable with a similar name exists: `sum`
error: aborting due to previous error
For more information about this error, try `rustc --explain E0425`.《번역 주》 스택 트레이스 stack trace. 프로그램 오류 발생 시, 해당 오류에 이르기까지의 함수 호출 이력이나 메서드 등을 기록한 것. 자세한 내용은 Wikipedia를 참조하십시오.
WebView 콘솔
섹션 제목: “WebView 콘솔”WebView를 마우스 오른쪽 버튼으로 클릭하고 Inspect Element(요소 검사)를 선택합니다. 그러면 익숙한 Chrome이나 Firefox 개발자 도구와 유사한 “웹 인스펙터”가 열립니다.
Linux와 Windows에서는 단축키 Ctrl + Shift + i를, macOS에서는 Command + Option + i를 사용하여 이 “인스펙터”를 열 수도 있습니다.
“인스펙터”는 플랫폼에 따라 다르며, Linux에서는 “webkit2gtk WebInspector”, macOS에서는 “Safari 인스펙터”, Windows에서는 “Microsoft Edge DevTools”를 렌더링합니다.
프로그램에서 Devtools 열기
섹션 제목: “프로그램에서 Devtools 열기”인스펙터 창의 가시성을 조정하려면 WebviewWindow::open_devtools 및 WebviewWindow::close_devtools 함수를 사용합니다.
tauri::Builder::default() .setup(|app| { #[cfg(debug_assertions)] // 이 코드는 디버그 빌드에만 기재하십시오. { let window = app.get_webview_window("main").unwrap(); window.open_devtools(); window.close_devtools(); } Ok(()) });프로덕션 환경에서 인스펙터 사용
섹션 제목: “프로덕션 환경에서 인스펙터 사용”인스펙터는 기본적으로 개발 및 디버그 빌드에서만 활성화되어 있으므로 프로덕션 환경에서 사용하려면 Cargo 기능을 사용하여 활성화해야 합니다.
디버그 빌드 만들기
섹션 제목: “디버그 빌드 만들기”디버그 빌드를 만들려면 tauri build --debug 명령을 실행합니다.
npm run tauri build -- --debugyarn tauri build --debugpnpm tauri build --debugdeno task tauri build --debugbun tauri build --debugcargo tauri build --debug일반적인 빌드나 개발 프로세스와 마찬가지로, 이 명령을 처음 실행할 때는 빌드에 다소 시간이 걸리지만, 그 이후의 실행에서는 훨씬 빨라집니다. 최종적으로 번들된 앱에서는 개발 콘솔이 활성화되어 있으며, src-tauri/target/debug/bundle에 배치됩니다.
또한 터미널에서 빌드된 앱을 실행하여 Rust 컴파일러의 메모(오류의 경우)나 println 메시지를 표시할 수도 있습니다. src-tauri/target/(release|debug)/[앱 이름] 파일을 참조하여 콘솔에서 직접 실행하거나, 파일 시스템 내의 실행 파일 자체를 더블 클릭합니다(원주: 이 방법에서는 오류가 발생하면 콘솔이 닫힙니다).
Devtools 기능 활성화
섹션 제목: “Devtools 기능 활성화”프로덕션 빌드(제품판 빌드)에서 devtools를 활성화하려면, src-tauri/Cargo.toml 파일의 Cargo 기능 “devtools“를 활성화해야 합니다.
[dependencies]tauri = { version = "...", features = ["...", "devtools"] }Core 프로세스 디버깅
섹션 제목: “Core 프로세스 디버깅”Core 프로세스는 Rust로 작동하므로 GDB 또는 LLDB를 사용하여 디버깅할 수 있습니다. “LLDB VS Code 확장 기능”을 사용하여 Tauri 애플리케이션의 Core 프로세스를 디버깅하는 방법에 대해서는 VS Code에서의 디버깅 가이드를 참조하십시오.
《번역 주》 GDB The GNU Project Debugger의 약자. GNU 디버거 > > > LLDB The LLDB Debugger. 차세대 고성능 디버거.
【※ 이 한국어판은 “Mar 29, 2025 영문판”을 기준으로 합니다】
© 2026 Tauri Contributors. CC-BY / MIT