Python에서 터미널 출력 글자색을 바꾸려면 ANSI escape sequence로 색상 시작 코드와 reset 코드를 함께 감싸는 방식이 기본입니다.
이 글은 colorama 같은 외부 라이브러리 없이 간단한 CLI 색상 출력을 적용하려고 할 때 확인한 메모입니다.
핵심 정리
터미널 컬러링은 출력 문자열 앞뒤에 특수한 제어 코드를 붙여 색상, 굵기, 초기화를 지시하는 방식으로 동작합니다. colorama는 Windows 호환성까지 챙길 때 유용하지만, 작은 스크립트에 외부 라이브러리를 추가하고 싶지 않다면 ANSI escape sequence만으로도 충분한 경우가 있습니다. decorator 패턴으로 감싸면 실제 메시지를 만드는 코드와 색상을 적용하는 코드를 분리할 수 있어, 성공 메시지와 경고 메시지처럼 같은 형식의 출력을 반복할 때 깔끔합니다.
- ANSI escape sequence는 터미널이 해석하는 텍스트 제어 코드입니다.
- 색상을 시작했다면 마지막에 reset 코드를 붙여 다음 출력까지 색이 번지지 않게 해야 합니다.
- colorama는 편하지만 배포 대상에 외부 의존성을 하나 더 추가합니다.
- 작은 내부 도구라면 ANSI 코드만으로 간단히 처리하는 편이 더 가벼울 수 있습니다.
- decorator로 색상 처리를 감싸면 출력 함수의 본래 역할을 유지하면서 색상만 덧붙일 수 있습니다.
- 로그나 CLI 메시지에서는 색상이 정보 구분을 돕지만, 과하게 쓰면 오히려 읽기 어려워집니다.
원문은 링크와 간단한 기록 중심이어서 왜 colorama 대신 escape sequence를 골랐는지가 흐릿했습니다. 이번 보강은 선택 기준을 분명히 해서, 나중에 같은 문제를 다시 만났을 때 외부 라이브러리를 쓸지 직접 처리할지 빠르게 판단할 수 있게 했습니다.
이어서 볼 글
- Python decorator class와 type 개념 정리 - 함수 또는 클래스로 동작을 감싸는 decorator 구조를 정리한다.
coloring
• 먼저 파이선이던 뭐던 리눅스 터미널에서 텍스트 컬러링 하는데는 escape sequence 라는걸 쓴다.
• http://shiroyasha.github.io/escape-sequences-a-quick-guide.html
• 위 링크 참조하자.
• 여기 보면 잘 정리되어 있다.
• colorama라는게 맘에든다..
• 근데 외부라이브러리를 쓰는거라 플랫폼 적용시 고민해봐야한다.
• 결국 외부라이브러리 문제 때문에 여기나와있는걸로 적용함 ㅎㅎ
'Programming' 카테고리의 다른 글
| 챗봇 특강 메모: RNN, 룰베이스, MDP 대화 알고리즘 (0) | 2026.05.20 |
|---|---|
| Vimrc 설정 정리: 검색, 들여쓰기, 탭, 상태바 (0) | 2026.05.20 |
| Python unittest setUp, tearDown 사용법과 assertion (0) | 2026.05.17 |
| pytest 사용 패턴 정리 (0) | 2026.05.17 |
| Python mixin 패턴 정리 (0) | 2026.05.17 |
