Streamlit/이론

147. [Python] [Streamlit] : Streamlit에서 한글 폰트 설정하기 (Mac, Windows, Linux)

천재단미 2025. 2. 4. 14:47
728x90
반응형

한글1

목차 ▽열기

 

Streamlit을 사용하여 데이터를 시각화하거나 대시보드를 만들 때, 한글이 깨지거나 폰트가 이상하게 표시되는 문제가 발생할 수 있습니다. 이번 블로그에서는 Mac, Windows, Linux 환경에서 Streamlit의 한글 폰트를 설정하는 방법을 알아보겠습니다.

 


 

🛠️ 한글 폰트 깨짐 문제 해결하기

Streamlit은 Python 기반 웹 애플리케이션 개발 라이브러리로, 기본적으로 한글 폰트를 지원하지 않습니다. 이를 해결하려면 Matplotlib와 같은 시각화 라이브러리에서 한글 폰트를 설정하거나, Streamlit에서 CSS를 사용하여 직접 폰트를 지정해야 합니다.

 

 


 

1️⃣ Mac에서 한글 폰트 설정

 

1. 한글 폰트 확인

 

Mac에서는 시스템에 기본적으로 AppleGothic이나 NanumGothic과 같은 한글 폰트가 설치되어 있습니다. 먼저 사용할 수 있는 한글 폰트를 확인합니다.

 

fc-list | grep Korean

 

이 명령어를 실행하면 Mac에 설치된 한글 폰트 목록을 확인할 수 있습니다.

 


 

2. Matplotlib와 Streamlit에서 폰트 설정

 

Streamlit에서 Matplotlib와 함께 한글 폰트를 설정하려면 아래 코드를 사용하세요:

 

import matplotlib.pyplot as plt
from matplotlib import rc
import streamlit as st

# 한글 폰트 설정
rc('font', family='AppleGothic')  # AppleGothic은 Mac에서 기본 제공
plt.rcParams['axes.unicode_minus'] = False  # 마이너스 기호 깨짐 방지

# Streamlit 앱
def main():
    st.title("한글 폰트 설정 예제")
    st.text("Mac에서 한글 폰트가 올바르게 표시됩니다.")

    # 예제 차트
    fig, ax = plt.subplots()
    ax.plot([1, 2, 3], [3, 2, 1])
    ax.set_title("한글 차트 제목")
    st.pyplot(fig)

if __name__ == '__main__':
    main()

 

 


 

2️⃣ Windows에서 한글 폰트 설정

1. 한글 폰트 확인

Windows에서는 기본적으로 Malgun Gothic(맑은 고딕) 폰트를 사용합니다. 아래 명령어를 통해 폰트가 설치되어 있는지 확인할 수 있습니다:

fc-list | findstr "Malgun"

2. Matplotlib와 Streamlit에서 폰트 설정

Windows에서 Streamlit 앱에 한글 폰트를 설정하려면 다음과 같이 작성합니다:

import matplotlib.pyplot as plt
from matplotlib import rc
import streamlit as st

# 한글 폰트 설정
rc('font', family='Malgun Gothic')  # Windows 기본 한글 폰트
plt.rcParams['axes.unicode_minus'] = False  # 마이너스 기호 깨짐 방지

# Streamlit 앱
def main():
    st.title("한글 폰트 설정 예제")
    st.text("Windows에서 한글 폰트가 올바르게 표시됩니다.")

    # 예제 차트
    fig, ax = plt.subplots()
    ax.plot([1, 2, 3], [3, 2, 1])
    ax.set_title("한글 차트 제목")
    st.pyplot(fig)

if __name__ == '__main__':
    main()

 


 

3️⃣ Linux에서 한글 폰트 설정

 

1. 한글 폰트 설치

Linux 배포판에서는 기본적으로 한글 폰트가 설치되어 있지 않을 수 있습니다. 먼저 한글 폰트를 설치합니다.

Ubuntu/Debian:

sudo apt-get install fonts-nanum

 

 

CentOS/RHEL:

sudo yum install google-noto-sans-cjk-fonts

 

 

2. 설치된 폰트 확인

폰트가 제대로 설치되었는지 확인하려면 아래 명령어를 실행하세요:

fc-list | grep Korean

 

 

3. Matplotlib와 Streamlit에서 폰트 설정

Linux에서 한글 폰트를 설정하려면 다음 코드를 사용합니다:

import matplotlib.pyplot as plt
from matplotlib import rc
import streamlit as st

# 한글 폰트 설정
rc('font', family='NanumGothic')  # Ubuntu의 NanumGothic 폰트 사용
plt.rcParams['axes.unicode_minus'] = False  # 마이너스 기호 깨짐 방지

# Streamlit 앱
def main():
    st.title("한글 폰트 설정 예제")
    st.text("Linux에서 한글 폰트가 올바르게 표시됩니다.")

    # 예제 차트
    fig, ax = plt.subplots()
    ax.plot([1, 2, 3], [3, 2, 1])
    ax.set_title("한글 차트 제목")
    st.pyplot(fig)

if __name__ == '__main__':
    main()

 

 


 

4️⃣ CSS를 사용한 한글 폰트 설정 (공통)

Streamlit의 Markdown이나 HTML을 사용하여 직접 폰트를 설정할 수도 있습니다.

import streamlit as st

# CSS 스타일
st.markdown("""
    <style>
    body {
        font-family: 'Nanum Gothic', sans-serif;
    }
    </style>
""", unsafe_allow_html=True)

# Streamlit 앱
def main():
    st.title("CSS를 활용한 한글 폰트 설정")
    st.text("이 방법은 모든 OS에서 동일하게 작동합니다.")

if __name__ == '__main__':
    main()

 

 


✨ 결론

  • Mac: 기본 폰트는 AppleGothic.
  • Windows: 기본 폰트는 Malgun Gothic(맑은 고딕).
  • Linux: 별도로 NanumGothic 또는 Noto Sans CJK와 같은 폰트를 설치해야 함.
  • CSS 방식은 OS와 상관없이 공통적으로 사용 가능.

Streamlit 앱에서 한글 폰트 설정을 통해 가독성을 높이고, 한글 데이터를 효율적으로 시각화해보세요! 🚀

 

 

728x90
반응형
home
}