[java] Jansi를 이용하여 자바 애플리케이션에서 터미널에서 텍스트 출력 위치 변경하기

자바 애플리케이션을 개발할 때 종종 터미널에 텍스트를 출력하게 됩니다. 하지만 기본적으로 터미널에서 텍스트의 출력 위치는 한 줄씩 아래로 내려가는 방식입니다. 이번에는 Jansi라는 라이브러리를 사용하여 자바 애플리케이션에서 텍스트 출력 위치를 직접 변경하는 방법을 알아보겠습니다.

Jansi란?

Jansi는 자바에서 터미널 관련 작업을 수행하기 위한 라이브러리입니다. 이 라이브러리를 사용하면 터미널에서 텍스트 출력에 대한 세밀한 제어를 할 수 있습니다.

Jansi 사용하기

  1. Jansi 라이브러리 추가

    프로젝트의 의존성 관리 도구(예: Gradle 또는 Maven)를 사용하여 Jansi 라이브러리를 추가해야 합니다. 다음은 Gradle을 사용하는 경우의 예시입니다.

    dependencies {
        implementation 'org.fusesource.jansi:jansi:1.18'
    }
    
  2. 텍스트 출력 위치 변경하기

    Jansi를 사용하여 텍스트 출력 위치를 변경하려면 다음과 같은 코드를 작성해야 합니다.

    import org.fusesource.jansi.Ansi;
    import org.fusesource.jansi.AnsiConsole;
    
    public class Main {
        public static void main(String[] args) {
            AnsiConsole.systemInstall();
    
            Ansi ansi = Ansi.ansi();
            ansi.cursor(5, 10).eraseScreen().fgRed().a("Hello, World!").reset();
    
            System.out.print(ansi);
    
            AnsiConsole.systemUninstall();
        }
    }
    

    위의 코드에서 ansi.cursor(5, 10) 메서드는 커서를 5행 10열로 이동시킵니다. ansi.eraseScreen() 메서드는 화면을 지우는 작업을 수행하고, ansi.fgRed() 메서드는 텍스트를 빨간색으로 설정합니다. ansi.a("Hello, World!") 메서드는 출력할 텍스트를 지정합니다. 마지막으로 ansi.reset() 메서드는 모든 스타일을 초기화합니다.

  3. 결과 확인하기

    위의 코드를 실행하면 터미널 상에서 “Hello, World!”라는 텍스트가 5행 10열부터 시작해서 빨간색으로 출력됩니다.

결론

Jansi를 이용하여 자바 애플리케이션에서 텍스트 출력 위치를 변경하는 방법에 대해 알아보았습니다. 이를 통해 터미널에서 더 세밀한 텍스트 출력을 제어할 수 있게 되었습니다. Jansi를 사용하면 프로그램을 개발하거나 디버깅할 때 터미널에서 더 나은 사용자 경험을 제공할 수 있습니다.

참고 자료