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

다른 카테고리

JSON 출력 포맷팅 - Spectre 콘솔 시리즈

Tim Corey
7분 01초

Spectre Console은 풍부하고 다채로운 콘솔 애플리케이션을 구축할 수 있도록 해주는 .NET 라이브러리입니다. 일반 텍스트 출력 대신 Spectre의 패널, 테이블, 심지어 JSON 형식을 사용하여 데이터를 보기 좋게 표시할 수 있습니다.

이 글에서는 Tim Corey의 " JSON 출력 형식 지정 - Spectre Console 시리즈 " 영상에 나오는 Spectre 콘솔 JSON 형식을 자세히 살펴보겠습니다. 그의 코드, NuGet Install-Package, 그리고 스타일링 팁을 하나씩 살펴보겠습니다. 이 글에서는 콘솔 앱에 명확한 구문 강조 표시와 읽기 쉬운 레이아웃을 통해 "JSON의 강력한 기능"을 부여하는 방법을 보여드리겠습니다. 제목에 있는 모든 시간 표시는 팀의 영상과 일치하므로 영상을 따라가면서 시청할 수 있습니다.

시작하기: Spectre 콘솔 JSON이란 무엇인가

0:00에 Tim은 시각적으로 매력적인 콘솔 애플리케이션을 만들기 위한 .NET 라이브러리인 Spectre Console을 소개합니다. 그는 이번 강의에서 API에서 JSON 데이터를 가져와 Spectre Console JSON을 사용하여 표시할 것이라고 설명합니다. 즉, 원시 JSON 문자열을 Spectre가 렌더링할 수 있는 풍부한 객체로 변환할 수 있다는 의미입니다.

그는 소스 코드와 프로젝트 웹사이트 링크가 설명란에 있으니 직접 다운로드할 수 있다고 언급했습니다.

헬퍼 함수를 ​​사용하여 JSON 데이터 가져오기

0시 35분에 Tim이 도우미 코드를 보여줍니다. 그의 프로젝트에는 FetchApiDataAsync라는 함수가 있는 Helpers 클래스가 있습니다. 이 함수는 URL로 요청을 보내고, JSON 형식의 응답을 받아 문자열로 반환합니다.

그는 AnsiConsole.WriteLine(jsonResponse)를 사용하면 간단하게 JSON을 콘솔에 출력할 수 있다고 언급합니다. 하지만 그가 1분 26초에서 보여주듯이, 그 원본 출력물은 그저 텍스트가 빽빽하게 모여 있는 것에 불과하며, 읽거나 작업하는 사람들에게는 그다지 편리하지 않습니다.

Spectre 콘솔 JSON Install-Package

1시 46분에 팀은 JSON 형식을 제대로 지정하고 싶다고 말합니다. 하지만 먼저, 그는 JSON 확장 패키지가 필요합니다. 그는 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 " NuGet 패키지 관리"를 선택한 다음 Spectre.Console.Json을 설치합니다.

그는 CLI를 사용하여 다음과 같이 실행할 수도 있다고 지적합니다.

dotnet add package Spectre.Console.Json
dotnet add package Spectre.Console.Json

이것은 JSON 렌더링을 위한 공식 NuGet 패키지입니다. Tim이 2분 14초에 설명하는 것처럼 Spectre 패키지와 Spectre.Console.Json 패키지를 사용하면 AOT(사전 컴파일) 방식으로 앱을 만들 수 있지만, 현재로서는 CLI를 사용해서는 불가능합니다.

JsonText 인스턴스 생성

2분 31초에 Tim은 JSON 문자열을 Spectre에서 렌더링 가능한 객체로 변환하는 구문을 보여줍니다. 그는 이렇게 썼습니다.

using Spectre.Console.Json;

var json = new JsonText(jsonResponse);
using Spectre.Console.Json;

var json = new JsonText(jsonResponse);

이렇게 하면 문자열로부터 JsonText의 새 인스턴스가 생성됩니다. 이제 Spectre가 멋지게 렌더링할 수 있는 객체가 생겼습니다. 배열, null 값 또는 중첩된 객체를 직접 파싱할 필요가 없습니다. 라이브러리가 자동으로 처리해 줍니다.

패널 내부에 JSON 렌더링

3시에 Tim은 실제로 JSON을 콘솔에 출력하는 방법을 보여줍니다. 그는 스펙터의 패널 기능을 사용하여 데이터를 구성합니다.

AnsiConsole.Write(
    new Panel(json)
);
AnsiConsole.Write(
    new Panel(json)
);

3시 39분에 그가 코드를 실행하면 JSON 결과가 스타일이 적용된 상자 안에 나타납니다. 키는 파란색이고, 숫자와 불리언 값은 녹색이며, 텍스트 값은 빨간색입니다. 배열 데이터와 중첩된 객체도 올바르게 표시됩니다. Spectre는 긴 줄을 자동으로 줄 바꿈하므로 들여쓰기나 간격을 직접 설정할 필요가 없습니다.

Spectre Console Formatting Json Output 1 related to 패널 내부에 JSON 렌더링

그는 또한 3분 59초에 JSON 내의 URL이 많은 터미널에서 클릭 가능한 링크가 된다는 점을 언급하는데, 이는 콘솔에서 JSON을 직접 읽는 사람들에게 또 다른 이점입니다.

머리글, 테두리 및 스타일 추가하기

4시 9분에 팀은 스타일링 단계로 넘어갑니다. 그는 패널에서 여러 메서드를 연결하여 헤더를 설정하고, 남는 공간을 줄이고, 테두리 색상을 변경합니다.

var panel = new Panel(json)
    .Header("API Response")
    .Collapse()
    .BorderColor(Color.White);

AnsiConsole.Write(panel);
var panel = new Panel(json)
    .Header("API Response")
    .Collapse()
    .BorderColor(Color.White);

AnsiConsole.Write(panel);

5시 2분에 이 빌드를 실행하면 콘솔에 웹 도구나 IDE에서 볼 수 있는 것과 똑같이 "API 응답"이라는 깔끔한 상자가 표시됩니다. 이렇게 하면 API에서 받은 정보를 훨씬 쉽게 읽을 수 있습니다.

Spectre Console Formatting Json Output 2 related to 머리글, 테두리 및 스타일 추가하기

JSON 색상 사용자 지정

5분 14초에 Tim은 JSON 구성 요소의 색상을 개별적으로 변경할 수 있음을 보여줍니다. 그는 모든 속성을 바꾸는 것이 아니라 구문을 보여주기에 충분한 부분만 바꿉니다.

json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;
json.StringColor = Color.Yellow;
json.ColonColor = Color.Orange;

5시 52분에 그가 실행했을 때, 텍스트 값은 노란색이고 콜론은 주황색입니다. Color.Red, Color.Green 또는 Spectre에서 정의한 다른 색상을 사용할 수 있습니다. 이를 통해 콘솔에서 회사 스타일을 맞추거나 특정 가치를 강조할 수 있습니다.

Spectre 콘솔 JSON이 중요한 이유

6시 4분에 팀은 그 이점을 요약합니다. Spectre Console JSON을 사용하면 다음을 수행할 수 있습니다.

  • NuGet 패키지 하나만 설치하면 JSON 포맷팅의 강력한 기능을 활용할 수 있습니다.

  • 일반 JSON 문자열을 입력받아 자동으로 색상이 입혀진 객체로 렌더링합니다.

  • 배열, 중첩 컬렉션, null 값 및 대규모 데이터 세트를 직접 서식 지정 코드 없이 처리할 수 있습니다.

패널에 헤더, 테두리 및 사용자 지정 색상을 쉽게 추가할 수 있습니다.

콘솔 애플리케이션은 전문적이고 읽기 쉬운 디자인으로 작성하세요.

그는 들여쓰기, 간격 조정, 색상 정의 등을 수동으로 할 필요가 없다고 강조합니다. 라이브러리가 이러한 작업을 자동으로 처리해 줍니다.

결론

6시 38분에 팀은 시청자들에게 감사를 표하며 마무리합니다. 그는 API에서 JSON을 가져와 JsonText 객체로 변환한 다음, 사용자 지정 색상 설정이 적용된 스타일 패널 안에 표시하는 방법을 보여주었습니다.

단 하나의 NuGet 패키지와 몇 줄의 코드만 추가하면 콘솔 앱에 "JSON 파워"를 부여하여 데이터를 보기 좋고 읽기 쉬운 형식으로 출력할 수 있습니다.

더 자세히 알아보고 싶다면 Spectre Console 프로젝트 웹사이트나 Tim의 채널 에서 더 자세한 지침을 확인하세요. Tim이 영상 에서 보여주듯이, 패키지를 설치하고 JsonText 인스턴스를 생성하고 나면 모든 어려운 작업은 완료된 것입니다. 콘솔 앱이 JSON 정보를 읽고, 작업하고, 공유하는 데 훨씬 더 유용한 도구가 됩니다.

Hero Worlddot related to JSON 출력 포맷팅 - Spectre 콘솔 시리즈
Hero Affiliate related to JSON 출력 포맷팅 - Spectre 콘솔 시리즈

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

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

아이언 서포트 팀

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