대시보드 streamlit 을 AWS EC2 서버에 배포하였을 때, 차트가 한글이 깨져서 나타나는 현상이 발생했다.
이럴때는 리눅스 서버에서 한글을 출력할 수 있도록, 폰트를 깔고 matplotlib 에 한글 폰트를 추가해주어야 한다.
나눔 폰트 다운로드 하기
- 폰트 관리 유틸리티 설치
// CentOS(EC2) 계열
sudo yum install fontconfig
// Debian(Ubuntu)계열
sudo apt install fontconfig
- 네이버 나눔 폰트 다운로드 후 압출 풀기 진행
curl -o nanumfont.zip http://cdn.naver.com/naver/NanumFont/fontfiles/NanumFont_TTF_ALL.zip
sudo unzip -d /usr/share/fonts/nanum nanumfont.zip
- 시스템 내 폰트의 캐쉬 정보 업데이트 (-f:강제생성, -v:진행도보기)
sudo fc-cache -f -v
- 폰트 리스트 확인
fc-list
리눅스(linux) 운영체제에서 matplotlib 한글 사용하기
1. 한글폰트 유무 확인
- fontconfig 를 이용하여 사용할 한글 폰트 확인
fc-list
fc-list 명령어를 이용하면, 현재 설치되어있는 폰트 리스트를 뽑아서 보여준다.

2. 한글폰트 설정
python 을 입력 후,
아래의 코드를 하나씩 입력하여서 버전, 설치 폴더 경로, 캐시 폴더 경로를 확인한다.
import matplotlib
print(matplotlib.__version__) # 파이썬 버전확인
print(matplotlib.__file__) # 설치 폴더 경로 확인
print(matplotlib.get_cachedir()) # 캐시 폴더 경로 확인
3. matplotlib에 한글 폰트 추가
- 위에서 확인한 자신의 설치 폴더 경로에 맞게 폰트를 복사해줍니다.
- 그 후 matplotlib의 폰트 캐시를 삭제합니다. 이는 새로 설치한 폰트를 업데이트해주는 역할을 합니다.
#sudo cp -r /usr/share/fonts/truetype/nanum/Nanum* 아까 확인한 설치 폴더 위치+mpl-data/fonts/ttf/
sudo cp -r /usr/share/fonts/* /home/ec2-user/anaconda3/envs/streamlit3.7/lib/python3.7/site-packages/matplotlib/mpl-data/fonts/ttf/
rm -rf /home/ec2-user/.cache/matplotlib/*
4. matplotlib에 한글 폰트 확인
- python을 입력하여 아래의 코드를 한줄한줄 쳐서 확인해봅니다.
- 이는 matplotlib에 추가한 한글 폰트가 정상적으로 추가되었는지 확인하기 위함입니다.
- 코드 입력시 리스트가 보인다면 성공적으로 한글 폰트가 추가된 것입니다.
import matplotlib
import matplotlib.font_manager
# 폰트 전체 리스트 확인
[i.fname for i in matplotlib.font_manager.fontManager.ttflist]
# 나눔 폰트 설치 확인
[f.name for f in matplotlib.font_manager.fontManager.ttflist if 'Nanum' in f.name]
해결 방법
- 한글 폰트를 matplotlib의 출력 폰트로 지정해줍니다.
- 아래의 코드를 소스 파일 최상단에 배치하여 설치한 글씨체의 이름을 입력해주세요.
- 'family' 의 값을 위에서 설치한 폰트의 이름으로 입력
차트에 한글이 잘 출력되는 것을 확인할 수 있다.

'AWS' 카테고리의 다른 글
| Flask API 를 lambda ( 서버리스 ) 에 배포하는 방법 (0) | 2023.01.11 |
|---|---|
| [Serverless] AWS 에서 IAM 을 이용하여 API 배포하기 (0) | 2023.01.10 |
| Github Actions 을 이용한 CI/CD (0) | 2022.12.20 |
| 하나의 EC2 서버에 여러개의 앱을 돌리는 방법 (0) | 2022.12.16 |
| AWS 방화벽에 8501 등의 포트 추가하기 (0) | 2022.12.15 |