C# 프로그래밍에서 콘솔(Console)을 통해 표준 출력 스트림(Standard Output Stream)과 표준 오류 출력 스트림(Standard Error Output Stream)에 접근해야 할 때가 있습니다. 이때 각각 Console.Out과 Console.Error 속성을 사용하면 손쉽게 해당 스트림 객체를 가져올 수 있습니다.
Console.Out으로 표준 출력 스트림 가져오기
Console.Out은 표준 출력 스트림을 나타내는 TextWriter 객체를 반환합니다. 아래 예제 코드를 통해 확인해 보겠습니다.
예제 코드
using System;
public class Demo {
public static void Main(string[] args) {
Console.WriteLine("Standard Output Stream = " + Console.Out);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Standard Output Stream = System.IO.TextWriter+SyncTextWriter
출력 결과를 보면 표준 출력 스트림이 System.IO.TextWriter+SyncTextWriter 타입의 객체임을 알 수 있습니다. 내부적으로는 스레드 동기화가 적용된 TextWriter 래퍼(wrapper)입니다.
Console.Error로 표준 오류 출력 스트림 가져오기
Console.Error 역시 TextWriter 타입의 객체를 반환하지만, 일반 출력이 아닌 오류 메시지 전용 스트림이라는 점이 다릅니다. 아래 예제에서 두 스트림을 함께 확인해 보겠습니다.
예제 코드
using System;
public class Demo {
public static void Main(string[] args) {
Console.WriteLine("Standard Output Stream = " + Console.Out);
Console.WriteLine("Standard Error Output Stream = " + Console.Error);
}
}실행 결과
위 코드를 실행하면 다음과 같은 결과가 출력됩니다.
Standard Output Stream = System.IO.TextWriter+SyncTextWriter Standard Error Output Stream = System.IO.TextWriter+SyncTextWriter
정리
Console.Out: 표준 출력(stdout)을 담당하는 스트림으로,Write(),WriteLine()등의 메서드가 기본적으로 사용하는 대상입니다.Console.Error: 표준 오류(stderr)를 담당하는 스트림으로, 주로 에러 메시지나 경고를 출력할 때 사용됩니다.- 두 스트림 모두
TextWriter계열 객체이며, 리디렉션(redirection)을 통해 파일이나 다른 출력 대상으로 변경할 수 있습니다.