Spring Boot 애플리케이션을 실행하면 콘솔에 기본 ASCII 아트 배너가 출력됩니다. 이 배너는 단순한 장식 이상으로 애플리케이션의 브랜드 아이덴티티를 표현하는 역할을 합니다. Spring Boot는 개발자가 이 배너를 자유롭게 변경할 수 있는 기능을 제공합니다.
동작 원리
Spring Boot는 시작 과정에서 src/main/resources 디렉토리에서 banner.txt 파일을 자동으로 탐색하여 내용을 콘솔에 출력합니다. 또한 banner.gif, banner.jpg, banner.png 같은 이미지 파일을 읽어 ASCII 문자로 변환하여 출력할 수도 있습니다. 해당 파일이 없으면 기본 배너가 표시됩니다.
내부적으로 SpringApplication 클래스의 printBanner() 메서드가 배너 로딩과 출력을 담당합니다. 이 메서드는 먼저 환경 변수에서 배너 위치를 확인하고, 설정이 없으면 정해진 순서대로 리소스 파일을 검색합니다. 적절한 배너 리소스를 찾으면 ResourceBanner 또는 ImageBanner 구현체를 통해 내용을 파싱하고 출력합니다.
사용 방법
텍스트 파일로 배너 만들기
가장 간단한 방법은 src/main/resources 디렉토리에 banner.txt 파일을 생성하는 것입니다. 원하는 텍스트나 ASCII 아트를 자유롭게 넣을 수 있습니다. 예를 들어:
____ _ __ __ _
/ ___|___ __| | ___ | \/ (_)_ __
| | / _ \ / _` |/ _ \_____| |\/| | | '_ \
| |__| (_) | (_| | __/_____| | | | | |_) |
\____\___/ \__,_|\___| |_| |_|_| .__/
|_|
동적 속성 사용하기
Spring Boot의 플레이스홀더 기능을 활용하면 배너 내용을 동적으로 변경할 수 있습니다. 애플리케이션 버전이나 실행 환경 같은 정보를 포함시킬 수 있습니다.
${AnsiColor.BRIGHT_GREEN}Hello, ${spring-boot.version}${AnsiColor.BRIGHT_RED}
위 예제에서 ${spring-boot.version}은 실제 Spring Boot 버전으로 자동 치환됩니다.
이미지 배너
텍스트 외에 이미지를 배너로 사용할 수도 있습니다. banner.gif, banner.jpg, banner.png 파일을 resources 디렉토리에 넣으면 이미지가 ASCII 문자로 변환되어 출력됩니다. 다만 변환 과정에서 선명도가 떨어질 수 있습니다.
설정 속성
배너를 완전히 비활성화하려면 application.properties 또는 application.yml 파일에 다음 설정을 추가합니다.
spring.main.banner-mode=off
배너 파일 경로를 직접 지정하려면 아래와 같이 설정합니다.
spring.banner.location=classpath:my-banner.txt
온라인 생성 도구
인터넷에서 배너 생성기를 검색하여 원하는 ASCII 아트를 쉽게 만들 수 있습니다. 생성된 결과를 banner.txt 파일에 복사하여 사용하면 됩니다.