구글 코랩(colab) 실행시 그래프에서 한글이 깨진다면?

     

    구글 코랩(colab) 실행시 그래프에서 한글이 깨진다면?

    구글 코랩에서 프로그램을 작성하고 실행했는데, 한글이 깨지는 경우가 있다. 특히 분석 결과를 그래프로 노출하고자 할때 정상적으로 출력되지 않고 ㅁㅁㅁ 의 형태로 출력되는 경우를 한글이 깨진다고 표현한 것인데, 이 문제를 해결하는 방법을 적어놓고자 한다.

     

    한글 깨지는 문제 사례

    위의 이미지와 같이 한글이 정상적으로 출력되기를 기대하는 부분에 ㅁㅁ 등과 같이 출력되는 것을 볼 수 있다.

    또한 실행시에 한글 폰트에 문제가 있음을 나타내는 단서 로그들이 보인다.

     

    문제 해결 방법

    코랩의 제일 위쪽 셀을 만들고 (만들어서 옮기거나 위에 만들고), 아래의 코드를 복사한다.

    !sudo apt-get install -y fonts-nanum
    !sudo fc-cache -fv
    !rm ~/.cache/matplotlib -rf

    !로 시작하는 코드이기 때문에 이 셀을 실행하면 시스템 내부 명령어를 수행하게 된다.

     

    코드상에 폰트 지정했는지 확인/ 보완하기

    코드상에서 폰트를 로딩하라고 했다 하더라도, 적절한 폰트를 로딩하지 못한다면 위의 작업을 해준다 하더라도 여전히 한글 폰트는 ㅁㅁㅁ 형태로 노출되게 된다.

    따라서, 본인의 코드에 한글 폰트가 지정되었는지 확인하자.

    위에서는 나눔 폰트를 설정했으므로, 나눔폰트 계열을 아래와 같이 지정해 본다.

    import matplotlib.pyplot as plt
    
    ... 중략 ...
    
    plt.rc('font', family='NanumBarunGothic')
    

    pyplot을 사용하는 과정에서 폰트 문제가 발생하였으므로, 위의 구조와 같이 폰트를 명시적으로 지정하였다.

    반응형

     

    런타임 재실행 후 확인

    시스템 작업을 수행해야 하므로, 런타임을 재실행하고 모든 코드를 순차적으로 재실행 한다.

    폰트 설치가 이미 정상적으로 수행되었다면, 아래와 같이 메시지가 나올 것이다.

    fonts-nanum is already the newest version (20200506-1).
    0 upgraded, 0 newly installed, 0 to remove and 33 not upgraded.
    /usr/share/fonts: caching, new cache contents: 0 fonts, 1 dirs
    /usr/share/fonts/truetype: caching, new cache contents: 0 fonts, 3 dirs
    /usr/share/fonts/truetype/humor-sans: caching, new cache contents: 1 fonts, 0 dirs
    /usr/share/fonts/truetype/liberation: caching, new cache contents: 16 fonts, 0 dirs
    /usr/share/fonts/truetype/nanum: caching, new cache contents: 12 fonts, 0 dirs
    /usr/local/share/fonts: caching, new cache contents: 0 fonts, 0 dirs
    /root/.local/share/fonts: skipping, no such directory
    /root/.fonts: skipping, no such directory
    /usr/share/fonts/truetype: skipping, looped directory detected
    /usr/share/fonts/truetype/humor-sans: skipping, looped directory detected
    /usr/share/fonts/truetype/liberation: skipping, looped directory detected
    /usr/share/fonts/truetype/nanum: skipping, looped directory detected
    /var/cache/fontconfig: cleaning cache directory
    /root/.cache/fontconfig: not cleaning non-existent cache directory
    /root/.fontconfig: not cleaning non-existent cache directory
    fc-cache: succeeded

    이제 앞서 떴었던 warning 메시지도 사라진 것을 확인할 수 있고, 에러가 발생했던 한글도 정상적으로 출력되는 것을 확인할 수 있다.

     

    더 보기

     

    구글 코랩 (Google Colab) 시작하기

    구글 코랩(Google Colaboratory) 시작하기 구글 코랩(Google Colaboratory)은 구글에서 제공하는 Jupyter Notebook이다. 대신, 인프라는 구글 클라우드를 기반으로 하기 때문에 개개인의 PC 보다 오히려 좋은 성능

    luran.me

     

    댓글

    Designed by JB FACTORY