피드로 돌아가기
[Rust Guide]12.8. Writing Error Messages to Standard Error
Dev.toDev.to
Backend

stdout과 stderr 분리를 통한 CLI 출력 파이프라인 최적화

[Rust Guide]12.8. Writing Error Messages to Standard Error

SomeB1oody2026년 5월 23일5beginner

Context

표준 출력(stdout)에 일반 결과와 에러 메시지를 통합 출력하는 단일 스트림 구조 설계. 리다이렉션 사용 시 에러 메시지까지 파일로 유입되어 런타임 오류 식별이 불가능한 제약 발생.

Technical Solution

  • 표준 출력(stdout)과 표준 에러(stderr)의 스트림 분리를 통한 관심사 분리 설계
  • println! 매크로의 stdout 전용 특성으로 인한 에러 메시지 혼입 문제 해결
  • eprintln! 매크로 도입을 통한 에러 메시지의 stderr 전용 출력 경로 확보
  • main.rs 내의 에러 핸들링 로직을 unwrap_or_elseif let Err 구문과 결합하여 stderr로 라우팅
  • 정규 결과물은 파일로 리다이렉션하고 시스템 오류는 터미널에 즉시 노출하는 파이프라인 구축

- CLI 도구 설계 시 일반 로그와 에러 메시지를 서로 다른 스트림으로 분리했는지 확인 - 쉘 리다이렉션(`>`) 환경에서도 시스템 진단 정보가 유실되지 않도록 stderr 활용 검토 - Rust 개발 시 표준 출력과 표준 에러 매크로(`println!` vs `eprintln!`)의 용도 구분 적용

원문 읽기