푸터 콘텐츠로 바로가기
Iron Academy Logo
C# 애플리케이션
C# 애플리케이션

다른 카테고리

콘솔에 테이블 추가 - Spectre Console 시리즈

Tim Corey
10분 24초

Spectre.Console은 아름다운 콘솔 애플리케이션을 만들 수 있도록 도와주는 강력한 .NET 라이브러리입니다. 단순 텍스트 출력 대신 구조화된 레이아웃을 만들고, 색상을 사용하고, 진행률 표시줄이나 대화형 프롬프트를 표시할 수도 있습니다. 팀 코리는 그의 스펙터 콘솔 시리즈에서 개발자들이 이 라이브러리를 최대한 활용하는 방법을 작고 실용적인 강의 형식으로 보여줍니다.

Tim은 " 콘솔에 테이블 추가하기 - Spectre 콘솔 시리즈 "라는 제목의 비디오에서 Spectre.Console 테이블에 대해 중점적으로 다룹니다. 테이블은 정렬, 여백, 테두리 및 스타일을 적용하여 구조화된 데이터를 표시할 수 있는 핵심 기능입니다. 팀의 사용법 안내를 자세히 살펴보면서 이 기능을 정확히 사용하는 방법을 알아보겠습니다.

Spectre.Console 시작하기

영상 초반(0:00)에서 Tim은 Spectre.Console을 사용하면 시각적으로 매력적이고 유익한 애플리케이션을 만들 수 있다고 설명합니다. 이 소프트웨어는 Spectre.Console이라는 이름의 NuGet 패키지로 배포됩니다. 다음 명령어를 사용하면 간편하게 설치할 수 있습니다.

// dotnet add package spectre console
dotnet add package Spectre.Console
// dotnet add package spectre console
dotnet add package Spectre.Console

라이브러리를 설치하면 콘솔 애플리케이션에서 정보를 표시하는 것이 훨씬 쉬워집니다. 팀은 더 많은 예시를 보고 싶은 사람들을 위해 영상에 제공된 문서 및 소스 코드 링크를 참조하라고 안내합니다.

첫 번째 테이블 만들기

Tim은 0:35부터 코딩을 시작합니다. 그는 Table 객체를 생성합니다.

var table = new Table();
var table = new Table();

그다음 그는 AddColumn을 사용하여 세 개의 열을 추가합니다.

table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");
table.AddColumn("First Name");
table.AddColumn("Last Name");
table.AddColumn("Age");

이것이 기본적인 구조를 만듭니다. 그는 각 열이 나중에 고유한 너비, 정렬 및 스타일을 가질 수 있다고 설명합니다.

다음으로, 그는 AddRow를 사용하여 행을 추가합니다. Tim은 1시 6분에 행을 추가하는 데 지원되는 세 가지 방법이 있다고 말합니다.

  1. IRenderable 객체의 매개변수 목록(패널, 다른 테이블 또는 차트와 같은 중첩 항목용).

  2. 문자열로 구성된 매개변수 목록(가장 일반적임).

  3. IEnumerable(흔하지는 않지만 구할 수 있습니다.)

그는 먼저 두 번째 선택지를 시연하며 다음과 같이 덧붙였습니다.

table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");
table.AddRow("Tim", "Corey", "46");
table.AddRow("Sue", "Storm", "23");

이렇게 하면 표에 두 행의 데이터가 추가됩니다. 3분 26초에 Tim은 시청자들에게 터미널에 테이블과 같은 IRenderable을 표시하려면 AnsiConsole.Write(table) (WriteLine이 아님)을 사용해야 한다고 다시 한번 강조합니다.

AnsiConsole.Write(table);
AnsiConsole.Write(table);

그가 프로그램을 실행하면 콘솔에 머리글과 행이 자동으로 정렬된 깔끔한 표가 표시됩니다. Spectre는 단 몇 줄의 코드만으로도 콘솔 출력을 훨씬 더 전문적으로 보이게 만듭니다.

Spectre Console Adding Tables 1 related to 첫 번째 테이블 만들기

테이블 정렬 및 확장

4시에 Tim은 화면에서 테이블의 위치를 ​​조절하는 방법을 보여줍니다. 예를 들어:

table.Centered();
table.Centered();

이렇게 하면 콘솔 창 중앙에 전체 표가 표시됩니다. 그는 이 설정이 열이 아닌 표 전체에 영향을 미친다고 설명합니다. 표를 오른쪽 정렬 또는 왼쪽 정렬할 수도 있습니다. 기본 설정은 왼쪽입니다.

Spectre Console Adding Tables 2 related to 테이블 정렬 및 확장

그는 5분 1초에 table.Expand()를 시연하는데, 이 함수를 사용하면 테이블이 터미널 창의 전체 너비를 채우게 됩니다. 일단 확장되면 테이블이 사용 가능한 모든 공간을 차지하므로 중앙 정렬은 아무런 효과가 없습니다. 기본 설정은 접힌 표입니다.

Spectre Console Adding Tables 3 related to 테이블 정렬 및 확장

테두리 추가 및 터미널 지원 이해하기

다음으로, 팀은 5분 21초에 테두리를 추가합니다.

table.Border(TableBorder.Rounded);
table.Border(TableBorder.Rounded);

그는 Visual Studio 콘솔에서 앱을 실행해 보고 모서리가 둥글게 처리되지 않은 것을 발견했습니다. 5시 54분에 그는 윈도우 터미널로 전환하여 다시 실행했고, 이제 둥근 모서리가 나타났습니다.

Tim은 (5:59) 렌더링 기능은 사용 중인 터미널에 따라 다르다고 설명합니다. 기본 셸은 단순히 출력을 제공할 뿐이며, 터미널은 어떤 스타일을 표시할지 결정합니다. Windows 터미널은 둥근 테두리 문자를 지원합니다. Visual Studio의 통합 콘솔은 그렇지 않습니다. 색상, 마크업, 또는 추가하는 기울임꼴, 밑줄, 굵은 글씨체에도 동일하게 적용됩니다.

그는 7분 1초에 Visual Studio 외부의 개발자 명령 프롬프트도 다른 터미널을 사용하기 때문에 올바르게 표시된다는 것을 보여줍니다. 진행률 표시줄, 장시간 실행되는 작업 또는 표와 같은 Spectre 기능을 사용해 볼 때 명심해야 할 중요한 사항은 모든 터미널에서 모든 스타일을 표시할 수 있는 것은 아니라는 점입니다.

행 구분 기호 추가

팀은 또한 가독성을 높이기 위해 행 사이에 구분선을 표시할 수 있다고 지적합니다.

table.ShowRowSeparators();
table.ShowRowSeparators();

이 기능은 각 행 사이에 가로선을 그려주므로, 특히 많은 출력을 표시하거나 인수를 동적으로 처리하는 CLI 도구를 개발할 때 큰 표에서 정보를 더 쉽게 훑어볼 수 있습니다.

컬럼 레벨 스타일링: 패딩, 너비, 정렬

Spectre.Console 테이블의 장점 중 하나는 각 열을 개별적으로 얼마나 세밀하게 사용자 지정할 수 있는지입니다. 8시 2분에 Tim은 첫 번째 열을 수정합니다.

table.Columns[0].PadLeft(5).PadRight(5);
table.Columns[0].PadLeft(5).PadRight(5);

이렇게 하면 텍스트 양쪽에 여백이 추가됩니다. 그는 두 번째 열의 너비를 고정합니다.

table.Columns[1].Width(15);
table.Columns[1].Width(15);

마지막으로 그는 해당 열의 내용을 오른쪽 정렬합니다.

table.Columns[1].RightAligned();
table.Columns[1].RightAligned();

그가 9시 10분에 프로그램을 다시 실행하면 첫 번째 열은 여백이 추가되고 두 ​​번째 열은 고정 너비로 ​​설정되며 콘텐츠는 오른쪽 정렬되는 것을 볼 수 있습니다. 헤더 텍스트조차도 이러한 설정을 따릅니다. Tim은 (8:42) 너비는 픽셀이 아니라 문자 단위로 측정된다고 언급합니다.

여백, 정렬, 고정 너비와 같은 작은 요소들이 콘솔 애플리케이션의 가독성을 훨씬 높여줍니다. Spectre의 색상, 마크업 및 패널과 결합하면 GUI에 더 가까운 느낌을 주지만 콘솔에서 완전히 실행되는 출력을 만들 수 있습니다.

Spectre Console Adding Tables 4 related to 컬럼 레벨 스타일링: 패딩, 너비, 정렬

IEnumerable에서 행 추가하기

오전 9시 25분에 Tim은 IEnumerable을 전달하는 세 번째 행 추가 방법을 보여줍니다.. 그는 Text 객체 목록을 준비합니다.

var person = new List<Text>
{
    new Text("Bilbo"),
    new Text("Baggins"),
    new Text("111")
};

table.AddRow(person);
var person = new List<Text>
{
    new Text("Bilbo"),
    new Text("Baggins"),
    new Text("111")
};

table.AddRow(person);

이 코드는 컬렉션을 사용하여 다른 행을 삽입합니다. Tim은 이 옵션이 일상적인 코드에서는 "그다지 유용하지 않다"고 언급했지만, 파일, 단위 테스트 프레임워크 또는 대화형 프롬프트와 같은 다른 소스에서 행을 동적으로 생성하는 경우에는 지원된다고 말했습니다.

Spectre Console Adding Tables 5 related to IEnumerable에서 행 추가하기

마무리

영상 말미(9:59)에서 Tim은 다음과 같이 요약합니다. Spectre.Console 테이블은 정보를 깔끔하고 구조화된 방식으로 표시할 수 있는 강력한 기능을 제공합니다. 테이블의 정렬, 너비 및 테두리 스타일을 제어하고, 행 구분선을 추가하고, 열에 여백을 적용하고, 패널이나 기타 렌더링 가능한 요소를 포함할 수도 있습니다.

이 라이브러리는 최신 CLI 디자인에서 많은 영감을 받았기 때문에 테이블뿐만 아니라 오래 걸리는 작업의 진행률 표시기, 차트, 굵게, 기울임꼴, 밑줄 및 색상(예: 파란색 또는 녹색 텍스트)에 대한 마크업 등을 지원합니다. Tim은 시청자들에게 문서를 확인하고 예제를 실행해 보면서 Spectre를 통해 콘솔 출력을 더욱 매력적으로 만드는 방법을 알아보라고 권장합니다.

Tim Corey의 단계별 시연을 따라가다 보면 Spectre.Console을 사용하여 최소한의 노력으로 아름다운 콘솔 애플리케이션을 구축하는 방법을 알 수 있습니다. 지금 바로 NuGet 패키지를 설치하고, API를 살펴보고, 평범한 콘솔 출력을 구조화되고 스타일이 적용된 화면으로 변환해 보세요.

Hero Worlddot related to 콘솔에 테이블 추가 - Spectre Console 시리즈
Hero Affiliate related to 콘솔에 테이블 추가 - Spectre Console 시리즈

사랑하는 것을 공유하여 더 많은 수익을 얻으세요

당신은 .NET, C#, Java, Python, 또는 Node.js를 다루는 개발자를 위한 콘텐츠를 만드나요? 당신의 전문성을 추가 수입으로 전환하세요!

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해