리눅스 태블로 서버에서 한글 폰트가 깨질 때 해결하기

리눅스 태블로 서버에서 한글 폰트가 깨질 때 해결하기

Linux 환경의 태블로 서버(Tableau Server)에 워크북을 게시하면, Desktop에서 보던 것과 달리 한글이 깨져 보이는 경우가 있습니다. 증상은 크게 두 가지입니다.

  • 한글이 네모(□)로 표시됩니다.
  • 한글은 보이지만 다른 폰트로 바뀌어 글자 폭, 자간, 줄바꿈이 달라지고 레이아웃이 틀어집니다.

이런 증상은 이미지·PDF 내보내기나 구독 메일에서 특히 자주 나타납니다.

Root Cause

태블로 서버는 복잡한 뷰, 이미지·PDF 내보내기, 구독처럼 서버 측에서 렌더링하는 경우 서버에 설치된 폰트를 사용합니다.

Linux 서버에는 기본적으로 한글 폰트가 없거나 몇 가지만 설치되어 있습니다. 서버에 한글 폰트가 전혀 없으면 글자가 네모로 표시됩니다. 워크북에 지정된 폰트만 없는 경우에는 서버가 다른 한글 폰트로 대체해 렌더링하기 때문에 레이아웃이 달라집니다. 맑은 고딕이나 Apple SD 산돌고딕 Neo처럼 Windows·macOS에 기본으로 들어 있는 폰트가 대표적인 예입니다.

Solution

먼저 서버에 설치된 한글 폰트를 확인합니다.

fc-list :lang=ko

결과가 비어 있다면 한글 폰트가 하나도 없는 상태입니다. 목록에 워크북에서 쓴 폰트가 없다면 대체 렌더링이 일어나고 있는 상태입니다.

방법 1. 워크북에서 사용한 폰트를 서버에 설치 (권장)
워크북에 지정된 폰트 파일(.ttf, .otf)을 서버에 복사해 설치한 뒤 서버를 재시작합니다.

sudo mkdir -p /usr/share/fonts/korean
sudo cp *.ttf /usr/share/fonts/korean/
sudo chmod 644 /usr/share/fonts/korean/*
sudo fc-cache -f -v
tsm restart

다중 노드로 구성했다면 모든 노드에 동일하게 설치해야 합니다.

방법 2. 서버와 작성자 PC에 공통 폰트 사용
나눔고딕, Noto Sans KR, Pretendard 같은 오픈 라이선스 폰트를 서버와 모든 작성자 PC에 설치합니다. 그다음 워크북의 서식 > 통합 문서 서식에서 기본 폰트를 해당 폰트로 지정합니다. 운영체제와 관계없이 같은 결과를 얻을 수 있어서, 작성자가 여러 명이거나 Windows와 macOS 사용자가 섞여 있는 조직에 적합합니다.

패키지 관리자로도 설치할 수 있습니다.

# Ubuntu / Debian
sudo apt install fonts-nanum fonts-noto-cjk

# RHEL / Rocky / CentOS
sudo dnf install google-noto-sans-cjk-ttc-fonts

💡
Windows·macOS 기본 폰트는 해당 운영체제 라이선스에 포함된 경우가 많으므로, 서버에 옮겨 설치하기 전에 라이선스 조건을 확인하세요. 적용 결과는 뷰 URL에 ?:render=false를 붙여 서버 렌더링을 강제한 상태로 확인합니다. 브라우저의 클라이언트 렌더링은 접속한 PC의 폰트를 사용하기 때문에, 작성자 PC에서만 보면 문제가 드러나지 않을 수 있습니다.