한국의 개발자들을 위한 Google for Developers 국문 블로그입니다.
한국어 지원을 출시한 Google Fonts를 소개합니다.
2018년 4월 16일 월요일
블로그 원문은
이곳
에서 확인할 수 있습니다.
게시자: Google Fonts 팀
이제 Google Fonts 카탈로그에는 민족 고유의 한글 표기 체계를 사용하는 디자이너와 개발자를 위한
한국어 웹 글꼴
이 포함됩니다. 지금까지 몇년 동안 일부 글꼴이 베타 버전에 제공되긴 했지만, 중국어, 일본어 및 한국어(CJK) 글꼴 파일을 제공하기 위한 보다 효율적인 수단을 연구한 끝에 이달 초 저희가 한국어 공식 지원을 발표했습니다. 이 CJK 글꼴 파일은 문자 집합과 파일 크기가 매우 큽니다.
저희는 CJK 글꼴을 제공하려고 항상 생각해 왔으며 이를 실현하기 위해
WOFF2
및
CSS3 유니코드 범위
와 같은 기초 기술에 대해 오랫동안 연구를 수행했습니다. 작년에 Google 엔지니어들은 글꼴을 더 작은 하위 집합으로 슬라이싱하는 다양한 접근방법을 사용하여 실험을 수행했으며, 매우 뛰어난 결과를 이끌어낸 몇몇 기술을 발견함으로써 이번 출시가 가능하게 되었습니다.
한글 문자는 중국어 한자와 일본어 간지 문자와는 완전히 다릅니다. 어떤 면에서 한글은 음성 문자로 구성되기 때문에 오히려 서양식 표기 체계와 더 유사합니다. 한자 및 간지는 시각적인 표어 문자이며 그 발음을 직접 나타내지 않는 반면, 한글은 표음 문자이므로 쓰여진 단어는 그 단어를 이루고 있는 소리로 구성됩니다.
한글은 19개의 자음 세트와 21개의 모음 세트로 시작합니다(1). 하나의 문장을 작성할 때 먼저 개별 문자가 확인되고(2), 이들 개별 문자가 한 덩어리를 이루어 전체 단어를 나타내며(3), 끝으로 문법적인 형태로 연결되고 배열되어 하나의 문장을 이룹니다(4).
한글 서체의 우아한 로직에도 불구하고, 중국어 및 일본어 글꼴처럼 한국어 글꼴이 개발자에게 어렵기는 마찬가지입니다. 한글 문자는 겨우 40개의 기본 요소로부터 구성될 수 있지만, 그 최종적인 형태의 수는 빠르게 늘어납니다. 한국어 글꼴은 궁극적으로 1만개 이상의 문자를 필요로 합니다. 즉, 대부분의 사용자가 다운로드하기에 파일이 너무 크기 때문에 웹사이트를 방문하자마자 즉시 글꼴이 나타날 것입니다. 일반적인 전체 한국어 글꼴이 약 4Mb를 차지하는 반면, 상당히 방대한 라틴어 글꼴이라도 대개 250Kb를 넘지 않습니다.
Google Fonts
사전 체험판
시스템에서만 한국어 글꼴이 제공되던 시절에, 저희는 전체 글꼴 파일을 사용자에게 제공할 때 발생하는 지연 시간을 많은 웹 개발자들이 기꺼이 감수한다는 사실에 놀랐습니다. 이러한 글꼴을 사전 체험판 시스템에서 제거하기 위해 저희는 더욱 넓은 계층의 웹 사용자(특히, 연결이 비교적 느린 사용자)가 이 글꼴을 사용할 수 있는 방법을 찾아야만 했습니다.
Google Fonts API는 큰 글꼴 파일을 여러 개의 하위 집합(예: "라틴어" 및 "키릴어")으로 나누어 제공합니다. 서비스가 출시될 때 개발자가 이들 하위 집합을 선택해야 했습니다. 몇년 동안 저희는 지원하는 브라우저에서 CSS3의 '유니코드 범위' 속성을 활성화했습니다. 즉, 큰 글꼴 파일을 하위 집합으로 슬라이싱할 때, 각 하위 집합의 유니코드 문자 범위는 @font-face 선언의 일부분으로 선언됩니다. 이렇게 하면 이들 문자가 웹페이지에 나타날 때 브라우저가 특정 하위 집합만을 가져올 수 있습니다.
Google Fonts API의 주요 이점 중 하나는 바로
교차 사이트 캐싱
이며, 이러한 이점은 유니코드 범위에서 글꼴 하위 집합을 제공할 때도 그대로 적용됩니다. 저희가 제공하는 글꼴 파일은 많은 도메인에서 사용되므로, 여러분이 사이트를 방문하고 브라우저가 글꼴을 다운로드한 후에는 해당 파일이 브라우저의 캐시에 저장됩니다. 그런 다음, 이와 동일한 글꼴 파일을 사용하는 또 다른 사이트를 다시 방문할 때는 브라우저가 해당 파일을 다시 다운로드할 필요가 없습니다. 이와 같은 지연 시간 관련 이점은 시간이 지남에 따라 더욱 커집니다. 또한 큰 글꼴 파일의 많은 하위 집합들이 이와 동일한 방식으로 캐시에 저장되므로 CJK 글꼴에서도 교차 사이트 캐싱의 이점을 동일하게 누릴 수 있습니다.
지난 수년 동안 저희는 유니코드 범위의 원활한 지원을 보장하기 위해 W3C 및 웹 개발자들과 협력해 왔습니다. 이제 Chrome, Firefox, Safari 및 Edge에도 이 기능이 제공되므로, 이들 브라우저에서 완벽하게 작동하는 한국어 웹 글꼴을 제공하기 위한 새로운 수단을 충분히 지원할 수 있게 되었습니다.
caniuse.com
에 따르면 유니코드 범위 기능에 대한 지원이 더욱 넓어지고 있습니다.
효율성 극대화를 위해 저희는 어떤 문자를 하위 집합에 모아놓아야 가장 적합한지 알고 싶었습니다. 저희는 한국어 웹의 텍스트를 분석하여 유니코드 문자의 패턴을 추출하는 방식으로 슬라이싱 전략을 고안했으며, 동일한 페이지에 함께 나타나는 경향이 있는 문자의 주제 모델을 빌드했습니다.
각 하위 집합에 어떤 한국어 문자를 포함할지 결정하기 위한 다양한 슬라이싱 전략을 평가할 때 저희의 목표는 하위 집합의 수와 요청의 수를 동시에 최소화하는 것이었습니다. 사용량과 공통성을 고려하지 않은 채 스크립트를 1,000개의 임의 하위 집합으로 슬라이싱한다면 너무 많은 HTTP 요청이 사라질 것입니다. 저희는 사전 체험판 시스템을 사용하여 다양한 전략들이 실제 트래픽을 어떻게 처리하는지 그 방법을 알아보기 위해 테스트 프레임워크를 빌드했으며, 지금까지 발견한 것 중에서 가장 효율적인 한국어 글꼴을 저희 디렉토리에 출시했습니다.
전략 1에는 슬라이싱이 없습니다. 최적의 전략은 최악의 전략보다 연결 요청이 1/20 이상 적었고, 이 경우에는 언어 사용 패턴을 고려하지 않고 글꼴이 동일한 부분으로 나눠집니다.
앞으로 더욱 나아질 것으로 기대합니다. 저희 기준으로 볼 때, 아주 작은 개선이라도 이루어진다면 많은 노력이 그만한 가치가 있을 것입니다. 슬라이싱에 대한 다양한 접근방법에서 테스트 프레임워크를 계속 사용함으로써 서비스를 최대한 효율적으로 조정할 수 있습니다. 저희 API를 사용하는 웹 개발자와 모든 최종 사용자들에게 있어 이러한 종류의 변화는 완전히 투명하게 수행되며 어떠한 추가 작업도 수행할 필요가 없습니다. 예를 들어 WOFF2가 2015년에 나왔을 때, WOFF2를 지원하는 브라우저를 사용하는 모든 사용자의
환경이 25% 더 빨라졌습니다
. 저희는 모든 사용자에게 더 나은 환경을 지속적으로 투명하게 제공할 것입니다. 앞으로 CJK 글꼴 제공이 개선될 가능성이 매우 높습니다.
이번 출시는 5개의 한국어 글꼴로 시작되었고, 이들 글꼴은 한국 최고의 한국어 활자 주조소인 산돌이 네이버용으로 처음 디자인한 것입니다. 초기 출시 이후로 저희 컬렉션은 23개 한국어 제품군으로 성장했으며, 이들 제품군을 소개하기 위해 뉴욕시의 디지털 디자인 스튜디오인 Math Practice사로부터
디지털 견본 웹사이트
를 의뢰했습니다. 여기에서 아름다운 한국어 서체를 실제로 볼 수 있고 새로운 슬라이싱 기법을 통해 빠른 페이지 로딩이 가능합니다.
한국어 글꼴 컬렉션의 수를 늘리고 미니사이트를 개발하는 데 참여하신 SooYoung Jang, Irin Kim, E Roon Kang, Wonyoung So, Guhong Min, Hannah Son, Aaron Bell, Marc Foley 그리고 모든 서체 디자이너들에게 감사의 말씀을 전합니다.
댓글 없음 :
댓글 쓰기
Contents
ML/Tensorflow
Android
Flutter
Web/Chrome
Cloud
Google Play
Community
Game
Firebase
검색
Tag
인디게임페스티벌
정책 세미나
창구프로그램
AdMob
AI
Android
Android 12
Android 12L
Android 13
Android 14
Android Assistant
Android Auto
Android Games
Android Jetpack
Android Machine Learning
Android Privacy
Android Studio
Android TV
Android Wear
App Bundle
bootcamp
Business
Chrome
Cloud
Community
compose
Firebase
Flutter
Foldables
Game
gdg
GDSC
google
Google Developer Student Clubs
Google Play
Google Play Games
Interview
Jetpack
Jetpack Compose
kotlin
Large Screens
Library
ma
Material Design
Material You
ML/Tensorflow
mobile games
Now in Android
PC
Play Console
Policy
priva
wa
wear
Wearables
Web
Web/Chrome
Weeklyupdates
WorkManager
Archive
2024
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2023
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2022
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2021
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2020
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2019
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2018
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2017
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2016
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2015
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2014
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2013
12월
11월
10월
9월
8월
7월
6월
5월
4월
3월
2월
1월
2012
12월
11월
10월
9월
8월
7월
6월
5월
3월
2월
1월
2011
12월
11월
Feed
댓글 없음 :
댓글 쓰기