[GIS] Geoserver 레이어 라벨/범례의 한글폰트가 깨지는 현상 ( 한글폰트 설치 )
이번에 프로젝트를 하는데, 뭐 한글폰트가 깨지는 현상이 발생하였다.
현상은 이랬다. 레이어에 라벨을 달아서 호출을 했는데.. 호출만 하면 한글이 전부 ㅁ로 깨지는 것이었다.
그래서 스타일이 제대로 안먹힌건지, 호출할 때 뭐 제대로 못가져온 건지 확인하기 위해 geoserver에 접속하여
해당 스타일을 확인 했더니
핵심 : 리눅스 서버에 지오서버를 설치하면 한글폰트가 있는지 확인하고 없다면 설치해줘야 한다
Geoserver에서 한글폰트가 깨지는 현상 발생
위와 같이 [범례 미리보기]에서 이미 "ㅁㅁㅁㅁ"과 같이 한글폰트가 깨진 상태로 뱉어내고 있는 것을
확인할 수 있었다..이런적을 지금까지 본 적이 없었는데.. 결론을 말하자면
지오서버에 한글폰트가 설치 되어 있지 않아서였다.
보통 지오서버를 바이너리로 실행하면 윈도우 환경이기 때문에 따로 한글폰트를 설치 하지 않아도
윈도우에 있는 한글폰트를 갖다 쓰기 때문에 따로 폰트를 설치하지 않아도 한글이 제대로 나오는데
리눅스 환경에서는 한글폰트를 따로 설치해주어야 정상적으로 한글폰트를 출력할 수 있다.
그럼 한번 한글폰트를 설치하는 과정을 보도록 하자.
Geoserver에서 한글폰트 설치 확인
우선 해당 지오서버에 한글폰트가 설치되어 있는지부터 확인하는 것이 중요하다. 아래와 같은 방법으로 확인가능하다.
2번째 방법이 더 정확하다.
<지오서버 서버상태를 통해 설치된 폰트 확인하는 방법>
<fc-list 명령어를 통해 지오서버에 설치 된 폰트를 확인하는 방법>
위의 링크를 통해 한글폰트가 설치되어 있는지 우선 확인하고 만약 설치가 되어있다면 다른 방법을 찾아야 할 것이다.
여기서는 한글폰트가 설치 안되어 있어서 생긴 케이스이므로.. 본인은 우선 fc-list 명령어를 통해 폰트를 검색했을 때
아래와 같은 결과가 나왔다.
fc-list에 [ :lang=ko ] 옵션을 주어 검색해보았는데.. 한글폰트가 하나도 없다는 것을 인지하고 아 이거구나 싶었다.
( 그전에는 인코딩 문제인가 싶었음.. )
그럼 원인을 알았으니, 한글폰트를 설치해보자.
리눅스 서버에 한글폰트 설치
리눅스 서버에 폰트를 설치하는 건 어렵지 않다.
SFTP가 되는 환경이라면 그냥 폰트 경로에 font파일을 떨궈만 주면 된다. ( ttf나 tif파일.. )
경로 : $JAVA_HOME/jre/lib~/font 또는 /usr/share/fonts/
나같은 경우는 /usr/share/fonts/에 폰트를 떨구어 주었다.
kim_gothic이라는 폰트를 다운로드 받아서 fonts에 넣어주었다. /usr/share/fonts/kim_gothic 같이 디렉토리를 만들어
넣어주었다.
SFTP가 되지 않는 환경이라면 SSH에서 zip파일을 받아서 upzip을 해주든 ttf파일을 바로 받아도 된다..
만약 ssh로 폰트를 설치하는 방법을 모르겠다면 아래 링크를 통해 확인하도록 하자..
( 폰트 확인이나 다운로드 같은 글을 한 곳에 다 쓰면 너무 글이 길어져서 일부러 나누어 씀.. )
<리눅스에서 폰트파일을 다운로드 받는 방법>
여기까지 됬다면 geoserver를 재가동 해주도록 하자. 그래야 새로 설치된 폰트가 인식이 된다.
Geoserver에서 설치된 한글폰트 확인
geoserver -> 서버상태 -> 폰트 목록 확인하기를 통해서 내가 설치한 폰트가 정상적으로 목록에 나오는지 확인해야 한다.
리눅스에 설치했다 하더라도, 여기에 나오지 않는다면 해당 폰트는 사용하지 못하기 때문..
여기까지 왔다면 이제 한글폰트가 정상적으로 적용이 될 것이다. 다시 범례를 확인하면 아래와 같이 잘 나온다.
이렇게 한글폰트가 제대로 나오는 것을 확인 할 수 있다. 이 상태라면 실제 서비스에서 호출할때도
깨지지 않고 제대로 한글이 나올 것이다.