이번 글에서는 Python을 활용해 텍스트를 독특하고 개성 있는 방식으로 화면에 출력하는 다양한 방법을 살펴보겠습니다.
예를 들어 "Hello, Python"이라는 문자열을 출력한다고 가정해 봅시다. 평범한 print 문 대신, 아래와 같이 여러 가지 ASCII 아트 글꼴 스타일로 표현할 수 있습니다.
입력
"Hello, Python"
출력 예시 1
___ ___ .__ .__ / | \ ____ | | | | ____ / ~ \_/ __ \| | | | / _ \ \ Y /\ ___/| |_| |_( <_> ) \___|_ / \___ >____/____/\____/ /\ \/ \/ )/ __________ __ .__ \______ \___.__._/ |_| |__ ____ ____ | ___< | |\ __\ | \ / _ \ / \ | | \___ | | | | Y ( <_> ) | \ |____| / ____| |__| |___| /\____/|___| / \/ \/ \/
출력 예시 2
_ _ _____ _ _ ___ ______ _______ _ _ ___ _ _ | | | | ____| | | | / _ \ | _ \ \ / /_ _| | | |/ _ \| \ | | | |_| | _| | | | | | | | | | |_) \ V / | | | |_| | | | | \| | | _ | |___| |___| |__| |_| | | __/ | | | | | _ | |_| | |\ | |_| |_|_____|_____|_____\___( ) |_| |_| |_| |_| |_|\___/|_| \_| |/
출력 예시 3
## ## # # # ## ## # # # ## ## ### # # # # # ### ####### # # ##### # #### ### ### # # # ##### ##### ## ## # # # # # ###### ## ### ## # # # # ####### # ## ## # # # # ######## ###### ######## ### # # # # ### # # ##### # ####### # # # ## # ## ## # ### # # # # ####### ## ## # # # ## # ### # #### # # # # # ##### ## ## ## # ## # ## #### ##### # # # # # #### # ## ## # ### # ##### # # # # ## # ## ## ## # ## ### ### # ## ###
위 예시는 극히 일부일 뿐입니다. 이 외에도 수십 가지의 다양한 글꼴 스타일로 텍스트를 표현할 수 있습니다.
여기서는 Python의 pyfiglet 모듈을 사용하겠습니다. pyfiglet은 일반 문자열을 ASCII 아트 글꼴로 손쉽게 변환해 주는 라이브러리입니다. 설치는 터미널 창에서 아래 명령어 한 줄이면 끝납니다.
$pip install pyfiglet
예제 1 – 기본 사용법
>>> import pyfiglet
>>> ascii_banner = pyfiglet.figlet_format("HELLO, PYTHON")
>>> print(ascii_banner)
_ _ _____ _ _ ___ ______ _______ _ _ ___ _ _
| | | | ____| | | | / _ \ | _ \ \ / /_ _| | | |/ _ \| \ | |
| |_| | _| | | | | | | | | | |_) \ V / | | | |_| | | | | \| |
| _ | |___| |___| |__| |_| | | __/ | | | | | _ | |_| | |\ |
|_| |_|_____|_____|_____\___( ) |_| |_| |_| |_| |_|\___/|_| \_|
|/pyfiglet.figlet_format() 함수에 원하는 문자열을 전달하기만 하면 기본 글꼴로 변환된 ASCII 아트가 반환됩니다.
예제 2 – graffiti 글꼴 적용
>>> from pyfiglet import Figlet
>>> custom_fig = Figlet(font='graffiti')
>>> print(custom_fig.renderText('HELLO, PYTHON'))
___ ______________.____ .____ ________
/ | \_ _____/| | | | \_____ \
/ ~ \ __)_ | | | | / | \
\ Y / \| |___| |___/ | \
\___|_ /_______ /|_______ \_______ \_______ / /\
\/ \/ \/ \/ \/ )/
_______________.___.______________ ___ ________ _______
\______ \__ | |\__ ___/ | \\_____ \ \ \
| ___// | | | | / ~ \/ | \ / | \
| | \____ | | | \ Y / | \/ | \
|____| / ______| |____| \___|_ /\_______ /\____|__ /
\/ \/ \/ \/Figlet 클래스의 font 매개변수에 글꼴 이름을 지정하면 원하는 스타일을 선택할 수 있습니다. 위 예제는 'graffiti' 글꼴을 적용한 결과입니다.
예제 3 – bubble 글꼴 적용
>>> from pyfiglet import Figlet
>>> custom_fig = Figlet(font='bubble')
>>> print(custom_fig.renderText('Hello, Python'))
_ _ _ _ _ _ _ _ _ _ _ _
/ \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \ / \
( H | e | l | l | o | , ) ( P | y | t | h | o | n )
\_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/ \_/'bubble' 글꼴은 각 문자를 박스 형태로 감싸는 재미있는 스타일입니다.
예제 4 – speed 글꼴 적용
>>> custom_fig = Figlet(font='speed')
>>> print(custom_fig.renderText('Hello, Python'))
______ __ ___________
___ / / /_______ /__ /_____
__ /_/ /_ _ \_ /__ /_ __ \
_ __ / / __/ / _ / / /_/ /__
/_/ /_/ \___//_/ /_/ \____/_( )
_|/
________ ___________
___ __ \____ ___ /___ /______________
__ /_/ /_ / / / __/_ __ \ __ \_ __ \
_ ____/_ /_/ // /_ _ / / / /_/ / / / /
/_/ _\__, / \__/ /_/ /_/\____//_/ /_/
/____/'speed' 글꼴은 빠르고 역동적인 느낌의 스타일로, CLI 배너나 로딩 화면에 잘 어울립니다.
사용 가능한 글꼴 목록 확인하기
pyfiglet에서 지원하는 전체 글꼴 목록이 궁금하다면 아래 코드로 간단히 확인할 수 있습니다.
>>> import pyfiglet >>> print(pyfiglet.FigletFont.getFonts())
이제 좋아하는 글꼴을 골라 pyfiglet으로 ASCII 아트 배너를 만들고, 여러분의 애플리케이션에 개성을 더해 보세요!