피드로 돌아가기![[Rust Guide]12.8. Writing Error Messages to Standard Error](/_next/image?url=https%3A%2F%2Ftsewlmecqtvqphyhezcm.supabase.co%2Fstorage%2Fv1%2Fobject%2Fpublic%2Fthumbnails%2F450d2b7a-6e4a-4b40-acf0-3f408e91b291.webp%3F&w=3840&q=75)
Dev.toBackend
원문 읽기
stdout과 stderr 분리를 통한 CLI 출력 파이프라인 최적화
[Rust Guide]12.8. Writing Error Messages to Standard Error
AI 요약
Context
표준 출력(stdout)에 일반 결과와 에러 메시지를 통합 출력하는 단일 스트림 구조 설계. 리다이렉션 사용 시 에러 메시지까지 파일로 유입되어 런타임 오류 식별이 불가능한 제약 발생.
Technical Solution
- 표준 출력(stdout)과 표준 에러(stderr)의 스트림 분리를 통한 관심사 분리 설계
println!매크로의 stdout 전용 특성으로 인한 에러 메시지 혼입 문제 해결eprintln!매크로 도입을 통한 에러 메시지의 stderr 전용 출력 경로 확보main.rs내의 에러 핸들링 로직을unwrap_or_else및if let Err구문과 결합하여 stderr로 라우팅- 정규 결과물은 파일로 리다이렉션하고 시스템 오류는 터미널에 즉시 노출하는 파이프라인 구축
실천 포인트
- CLI 도구 설계 시 일반 로그와 에러 메시지를 서로 다른 스트림으로 분리했는지 확인 - 쉘 리다이렉션(`>`) 환경에서도 시스템 진단 정보가 유실되지 않도록 stderr 활용 검토 - Rust 개발 시 표준 출력과 표준 에러 매크로(`println!` vs `eprintln!`)의 용도 구분 적용