C#의 Console 클래스는 콘솔 애플리케이션에서 표준 입력(Input), 표준 출력(Output), 표준 오류(Error) 스트림을 다루기 위해 사용되는 핵심 클래스입니다. 이 클래스를 활용하면 콘솔 창의 배경색·글자색 변경, 커서 위치 조정, 버퍼 크기 설정 등 다양한 화면 제어 작업을 수행할 수 있습니다.
이번 글에서는 Console 클래스의 대표적인 속성들을 실제 코드 예제와 함께 살펴보겠습니다.
1. Console.CursorLeft 속성
Console.CursorLeft 속성은 콘솔 창 내에서 커서의 가로(열) 위치를 가져오거나 설정할 때 사용합니다. 값을 지정하면 커서가 해당 열 위치로 이동하며, 이후 출력되는 텍스트는 그 위치부터 표시됩니다.
예제 코드
using System;
class Demo {
public static void Main(string[] args) {
Console.BackgroundColor = ConsoleColor.Blue;
Console.WriteLine("Background color changed = " + Console.BackgroundColor);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\nForeground color changed = " + Console.ForegroundColor);
Console.CursorLeft = 30;
Console.Write("CursorLeft position: " + Console.CursorLeft);
}
}실행 결과
위 코드를 실행하면 배경색은 파란색으로, 글자색은 노란색으로 변경되고, 커서가 30번째 열로 이동한 후 해당 위치 값이 출력됩니다.
2. Console.CursorSize 속성
Console.CursorSize 속성은 콘솔에서 커서의 높이(크기)를 백분율 단위로 제어합니다. 값의 범위는 1부터 100까지이며, 숫자가 작을수록 얇은 커서가, 클수록 두꺼운 커서가 표시됩니다.
예제 코드
using System;
class Demo {
public static void Main(string[] args) {
Console.BackgroundColor = ConsoleColor.Blue;
Console.WriteLine("Background color changed = " + Console.BackgroundColor);
Console.ForegroundColor = ConsoleColor.Yellow;
Console.WriteLine("\nForeground color changed = " + Console.ForegroundColor);
Console.CursorSize = 1;
Console.WriteLine("\nCursorSize = " + Console.CursorSize);
}
}실행 결과
커서 크기가 최소값인 1로 설정되며, 화면에는 변경된 배경색과 글자색 정보, 그리고 CursorSize 값이 함께 출력됩니다.
3. Console.BufferWidth 속성
Console.BufferWidth 속성은 콘솔 화면 버퍼의 너비(가로 크기)를 가져오거나 설정합니다. 버퍼는 콘솔 창에 표시되는 것보다 더 많은 내용을 저장할 수 있는 메모리 영역으로, 스크롤하여 이전 출력 내용을 확인할 때 활용됩니다.
예제 코드
using System;
class Demo {
public static void Main(string[] args) {
Console.BufferHeight = 200;
Console.WriteLine("Buffer Height = " + Console.BufferHeight);
Console.BufferHeight = 250;
Console.WriteLine("Buffer Width = " + Console.BufferWidth);
}
}실행 결과
Buffer Height = 200 Buffer Width = 200
마무리
지금까지 C# Console 클래스의 주요 속성인 CursorLeft, CursorSize, BufferWidth에 대해 알아보았습니다. 이 외에도 Console 클래스는 SetCursorPosition(), Clear(), Beep() 등 다양한 메서드를 제공하므로, 이를 함께 활용하면 사용자 경험을 개선하는 인터랙티브한 콘솔 애플리케이션을 손쉽게 만들 수 있습니다.