stdout과 stderr를 합칠지 분리할지는 단순한 쉘 문법 선택이 아니다. 이 글은 >, 2>, 2>&1, /dev/null, 파이프를 기준으로 로그를 언제 통합하고 언제 분리해야 하는지 설명한다. 핵심은 출력 문법이 아니라 데이터 흐름과 오류 흐름을 어떻게 설계할 것인지에 있다.
Docker와 Kubernetes 환경에서 애플리케이션 로그는 왜 파일이 아니라 stdout으로 출력해야 할까? 컨테이너 로그 구조를 따라가 보면 결국 Unix의 오래된 설계로 돌아가게 된다. stdout과 stderr로 분리된 I/O 모델이 어떻게 현대 클라우드 인프라의 로그 시스템까지 이어졌는지 살펴본다.