[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에서 그림 그리기

Jansi는 자바를 사용하여 터미널에서 색상, 스타일 및 텍스트를 처리하는 라이브러리입니다. 이를 이용하면 자바 애플리케이션에서 터미널에 그림을 그릴 수 있습니다. 이번 블로그에서는 Jansi를 사용하여 자바 애플리케이션에서 터미널에 그림을 그리는 방법을 알아보겠습니다.

Jansi 라이브러리 추가하기

먼저 Jansi 라이브러리를 프로젝트에 추가해야 합니다. Maven을 사용하는 경우 pom.xml 파일에 다음 의존성을 추가하세요.

<dependency>
    <groupId>org.fusesource.jansi</groupId>
    <artifactId>jansi</artifactId>
    <version>1.18</version>
</dependency>

Gradle을 사용하는 경우 build.gradle 파일에 다음 의존성을 추가하세요.

dependencies {
    implementation 'org.fusesource.jansi:jansi:1.18'
}

터미널에 그림 그리기

이제 Jansi를 사용하여 터미널에 그림을 그리는 코드를 작성해보겠습니다. 아래는 간단한 사각형을 그리는 예제입니다.

import org.fusesource.jansi.Ansi;
import org.fusesource.jansi.AnsiConsole;

public class TerminalGraphics {

    public static void main(String[] args) {
        AnsiConsole.systemInstall();

        Ansi buffer = Ansi.ansi();

        // 사각형 그리기
        buffer.fg(Ansi.Color.RED).a("┏━━━━━━━━━━━━━━┓\n");
        buffer.fg(Ansi.Color.RED).a("┃              ┃\n");
        buffer.fg(Ansi.Color.RED).a("┃              ┃\n");
        buffer.fg(Ansi.Color.RED).a("┗━━━━━━━━━━━━━━┛\n");

        System.out.print(buffer);

        AnsiConsole.systemUninstall();
    }
}

위 코드에서는 Jansi의 AnsiConsole 클래스를 사용하여 터미널에 ANSI 이스케이프 시퀀스를 적용합니다. 그리고 Ansi 객체를 사용하여 색상 및 텍스트를 지정하여 사각형을 그립니다. fg() 메서드를 사용하여 글꼴 색상을 지정하고, a() 메서드를 사용하여 텍스트를 출력합니다.

실행 결과

위의 코드를 실행하면 터미널에 다음과 같은 사각형이 그려집니다.

┏━━━━━━━━━━━━━━┓
┃              ┃
┃              ┃
┗━━━━━━━━━━━━━━┛

마무리

이번 블로그에서는 Jansi를 사용하여 자바 애플리케이션에서 터미널에 그림을 그리는 방법을 알아보았습니다. Jansi를 사용하면 터미널 화면에 색상, 스타일 및 텍스트를 적용하여 원하는 형태의 그림을 그릴 수 있습니다. 추가로 Jansi에 대한 자세한 내용은 공식 문서를 참조하세요.