이것저것 해보기🌼

NotoSansKR 폰트 경량화하기 (서브셋 폰트 공유) 본문

FE

NotoSansKR 폰트 경량화하기 (서브셋 폰트 공유)

realtree 2024. 6. 19. 12:56

 

웹페이지의 리소스가 늘어나다보면 폰트를 불러오는 용량도 네트워크 비용을 많이 잡아먹는 경우가 생긴다.

이때는 폰트를 woff로 경량화하거나, 거기에서 추가로 서브셋 폰트로까지 경량화를 해주면 좋다.

NotoSans

 

NotoSans 폰트는 자주 쓰이는 웹 폰트이지만 생각보다 큰 용량을 갖고 있기 때문에, 서브셋 폰트라고 하는 경량화 폰트로 쓰는 경우가 많다.

서브셋 폰트는 한국어에서 거의 쓰이지 않는 문자집합을 제외한 폰트를 말한다.

 

서브셋 폰트를 만드는 방법에는 몇가지가 있는데, 그중에 fonttools 라는 파이썬 라이브러리를 사용하는 방법을 공유한다.

 

fonttools 다운로드

https://github.com/fonttools/fonttools

 

GitHub - fonttools/fonttools: A library to manipulate font files from Python.

A library to manipulate font files from Python. Contribute to fonttools/fonttools development by creating an account on GitHub.

github.com

 

fonttools 로 서브셋 만드는 방법

https://www.44bits.io/ko/post/optimization_webfont_with_pyftsubnet

 

웹폰트 경량화: 폰트툴즈(fontTools)의 pyftsubset을 사용한 폰트 서브셋 만들기

폰트는 글자의 수에 비례해 용량이 커지며, 한글과 같 언어는 웹폰트의 용량을 줄이는 것이 중요합니다. 이 글에서는 폰트툴즈를 사용해 폰트의 서브셋을 만들고 웹폰트 형식으로 변환하는 방

www.44bits.io

 

위 블로그가 상세한 가이드를 잘 설명하고 있다. 이 방법으로 추출하되, 각자가 원하는 문자집합을 잘 지정하면 된다.

 

문자집합

한글의 경우 대부분 KS X 1001 표준 2350자로 커버된다.

https://raw.githubusercontent.com/nacyot/korean_subset_glyphs/master/ksx1001_korean_2350.txt

위 파일에 있는 한글을 복사해서 쓰면 된다.

 

NotoSansKR 서브셋 폰트 다운로드

https://github.com/hui3363/NotoSansKR-subset-fonts.git

 

GitHub - hui3363/NotoSansKR-subset-fonts: NotoSansKR (한국어) 서브셋 폰트입니다.

NotoSansKR (한국어) 서브셋 폰트입니다. Contribute to hui3363/NotoSansKR-subset-fonts development by creating an account on GitHub.

github.com

- 위에서 소개한 fonttools 를 사용하였음

- 문자집합은 아래와 같음

  • KS X 1001 표준의 2,350자
  • KS X 1001의 특수문자, 한글 자모, 알파벳, 숫자, 구두점, KS 코드 완성형 한글의 추가 글자 제안’에서 추가 제안한 224자
  • 폰트 목록 :
    NotoSansKR-Bold  
    NotoSansKR-ExtraBold
    NotoSansKR-Medium
    NotoSansKR-Regular
    NotoSansKR-SemiBold