November 19, 2024
์๋ฌธ : The Ultimate Guide to Font Performance Optimization
ํฐํธ ์ฑ๋ฅ ์ต์ ํ๋ ์น์ฌ์ดํธ์ ํฐํธ ๋ก๋ฉ ์๋๋ฅผ ๋์ด๊ณ ๋ ๋ถ๋๋ฝ๊ฒ ๋ ๋๋ง ๋๋๋ก ํ๋ ๋ค์ํ ์น ๊ฐ๋ฐ ๊ธฐ๋ฒ์ ๋งํฉ๋๋ค. ์ด๋ฌํ ์ต์ ํ์๋ ์ ์คํ ํฐํธ ์ ํ, ์ฑ๋ฅ์ด ์ฐ์ํ ํฐํธ ํฌ๋งท ์ฌ์ฉ, ์์ฒด ํธ์คํ
, ์ต์ ํ๋ @font-face ์ ์ธ, ํฐํธ ๋์คํ๋ ์ด ์ ๋ต ๋ฑ์ด ํฌํจ๋ฉ๋๋ค.
์น์ฌ์ดํธ์ ํ์๋๋ ํฐํธ๋ฅผ ์ต์ ํํ๋ฉด ํ์ด์ง ๋ก๋ฉ ์๋๊ฐ ๋นจ๋ผ์ง๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ด ํฅ์๋๋ฉฐ, ์ฝ์ด ์น ๋ฐ์ดํ(Core Web Vitals) ๊ฐ์ ์ฑ๋ฅ ์งํ์์๋ ๊ธ์ ์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
๊ทธ๋ฌ๋ ํฐํธ ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ค๊ณ ํ๋ฉด ๋ฏธ์ ์ธ ๋ถ๋ถ์ด๋ ์ฐฝ์์ฑ์ ํฌ์ํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์ด๋ ๊ณ ์ ํ ๋ธ๋๋ ์ ์ฒด์ฑ์ ๋ง๋ค์ด ๋ด๋๋ฐ ์ด๋ ค์์ ์ค ์ ์๊ธฐ ๋๋ฌธ์ ์ปค์คํ ํ์ดํฌ๊ทธ๋ํผ๋ฅผ ์ฌ์ฉํ ๋๋ ํนํ ์ ์คํด์ผ ํฉ๋๋ค.
ํฐํธ ์ฑ๋ฅ ์ต์ ํ์ ๊ธฐ์ ์ ์ธ๋ถ์ฌํญ์ผ๋ก ๋ค์ด๊ฐ๊ธฐ ์ ์, ์ฐ์ ํฐํธ ์ฉ์ด์์ ์ค์ํ ์ฌํญ์ธ ์น ์ธ์ดํ ํฐํธ์ ์น ํฐํธ์ ์ฐจ์ด์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ด ๋ ํฐํธ๋ ๋ชจ๋ ๋์งํธ ํฐํธ ํ์ผ์ ๋๋ค. ํ์ง๋งโฆ
์น ์ธ์ดํ ํฐํธ๋ ์์คํ ํฐํธ์ ๋์์ด๋ก ์๋ชป ์ฌ์ฉ๋๊ธฐ๋ ํ์ง๋ง, ๋๋ถ๋ถ์ ์ด์ ์ฒด์ ์ ๋ฏธ๋ฆฌ ์ค์น๋ ํฐํธ๋ฅผ ๋งํฉ๋๋ค. ๋๋ถ์ ๋ธ๋ผ์ฐ์ ๊ฐ ์น์์ ํฐํธ ํ์ผ์ด๋ ๊ด๋ จ CSS๋ฅผ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ด ํ์ด์ง ๋ก๋ฉ ์๊ฐ๊ณผ LCP, INP ๋ฑ์ ์ฑ๋ฅ ์งํ๊ฐ ํฅ์๋ฉ๋๋ค.
์์คํ ํฐํธ๋ ์น ์ธ์ดํ ํฐํธ์ ์ผ๋ถ๋ก, ์ด์ ์ฒด์ ์์ UI ์์๋ฅผ ํ์ํ ๋ ์ฌ์ฉ๋ฉ๋๋ค. ๋ง์ฝ ์น์ฌ์ดํธ์์ ์์คํ ํฐํธ๋ฅผ ์ฌ์ฉํ๋ค๋ฉด(๋ฐฉ๋ฒ์ ์๋์์ ์ฐธ์กฐ) ์ฌ์ฉ์์๊ฒ ์ต์ํ ๋๋์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์น ์ธ์ดํ ํฐํธ์ ๊ฐ์ฅ ํฐ ๋จ์ ์ ๋ง์ ๊ฒฝ์ฐ ๋์์ธ์ด ํ๋ฒํด ๋ณด์ด๊ณ ์ง๋์น๊ฒ ์์ฃผ ์ฌ์ฉ๋๋ค๋ ์ ์ ๋๋ค. ์น์ฌ์ดํธ์ ๋ ๋ ์ฐฝ์ ์ด๊ณ ๊ธฐ์ต์ ๋จ๋ ๋๋์ ์ ๊ณตํ๋ ค๋ฉด ์ปค์คํ ์น ํฐํธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์น ํฐํธ๋ ๋๋ถ๋ถ์ ์ฌ์ฉ์์ ์ด์ ์ฒด์ ์ ๊ธฐ๋ณธ ์ค์น๋์ด ์์ง ์์ ์ปค์คํ ํฐํธ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ํฐํธ ํ์ผ๊ณผ ๊ด๋ จ๋ CSS ํ์ผ์ ์ธํฐ๋ท์์ ๋ค์ด๋ก๋ํด์ผ ํฉ๋๋ค. ์ด๋ฌํ ์น ํฐํธ๋ Google์ CDN ๊ฐ์ ์๋ํํฐ ๋๋ฉ์ธ์ ํธ์คํ ํ๊ฑฐ๋ ์์ฒด ๋๋ฉ์ธ์ ํธ์คํ ํ ์๋ ์์ต๋๋ค.
์น ํฐํธ์ ์ธํฐ๋ท์์ ๋ค์ด๋ก๋ํด์ผ ํ๋ฏ๋ก ์น ์ธ์ดํ ๊ธ๊ผด๋ณด๋ค ๋ธ๋ผ์ฐ์ ์์ ๋ก๋ํ๋ ๋ฐ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฝ๋๋ค. ํ์ง๋ง ๋ค์ํ ์ฑ๋ฅ ์ต์ ํ ๊ธฐ์ ์ ์ ์ฉํด ๋ก๋ฉ ์๊ฐ์ ์ถฉ๋ถํ ๋จ์ถํ ์ ์์ต๋๋ค. ์ด์ ๋ํ ๋ฐฉ๋ฒ์ ์๋์์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์น ํฐํธ๋ ์น์ฌ์ดํธ์ ๋์์ธ๊ณผ ๋ถ์๊ธฐ๋ฅผ ๋์ฑ ํฅ์ํ ์ ์์ง๋ง, ์ด๋ฅผ ์ํด์๋ ์๋นํ ๋์์ธ ๊ฐ๊ฐ์ด ์๊ตฌ๋ฉ๋๋ค. ๊ทธ๋ ์ง ์๋ค๋ฉด, ํฐํธ๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ ์ ๋์ง ๋ชปํด ์น ์ธ์ดํ ํฐํธ๋ฅผ ์ฌ์ฉํ์ ๋๋ณด๋ค ์น์ฌ์ดํธ์ ๋์์ธ์ด ์คํ๋ ค ์ ํ๋ ์ ์์ต๋๋ค.
์ฑ๋ฅ ๊ด์ ์์ ๋ณด๋ฉด ์น ์ธ์ดํ ํฐํธ๋ง ์ฌ์ฉํ๋ ๊ฒ์ด ์ต์ ์ ์ ํ์ ๋๋ค. ์๋์์๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ก์ปฌ ํฐํธ๋ฅผ ๋ก๋ํ๋ ์ฌ๋ฌ ์ํฉ๊ณผ ๋ก์ปฌ์์ ์ฌ์ฉํ ์ ์๋ ํฐํธ๋ฅผ ์ฌ์ฉํ๋ฉด์ ๋์์ธ ์์ ๋๋ฅผ ์ ์งํ๋ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
CSS์์ ํฐํธ ํจ๋ฐ๋ฆฌ๋ฅผ ์ง์ ํ์ง ์์ผ๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ฉ์์ ๊ธฐ๋ณธ ์ค์ ์์ ์ง์ ํ ๊ธฐ๋ณธ ํฐํธ๋ฅผ ์ฌ์ฉํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๊ตฌ๊ธ ํฌ๋กฌ์์๋ ๊ธฐ๋ณธ ๋ธ๋ผ์ฐ์ ํฐํธ(ํ์ค ํฐํธ)๋ฅผ ํฐํธ ์ค์ ํ์ด์ง(chrome://settings/fonts)์์ ์ฐพ์ ์ ์์ต๋๋ค.

CSS Font Module Level 4 ์น ํ์ค์ ๋ฐ๋ฅด๋ฉด, font-family ์์ฑ์ ๊ฐ์ผ๋ก ์ฌ์ฉํ ์ ์๋ ๋ค์ฏ ๊ฐ์ง์ ์ผ๋ฐ ํฐํธ ์ด๋ฆ์ด ์์ผ๋ฉฐ, ๊ฐ๊ฐ์ ์ ํํ ์ ์๋ฅผ ์ํ ๋ฏธ๋ฆฌ ์ ์๋ ํน์ฑ๋ค์ด ์์ต๋๋ค. ์์ธํ ๋ด์ฉ์ (๋ฌธ์๋ฅผ ์ฐธ๊ณ ํ์ธ์).
serifsans-serifmonospacecursivefantasy์๋ฅผ ๋ค์ด, ๋ค์๊ณผ ๊ฐ์ CSS ๊ท์น์ ์ฌ์ฉํด ๋ก์ปฌ์์ ์ฌ์ฉํ ์ ์๋ serif ํฐํธ๋ฅผ ๋ก๋ํ ์ ์์ต๋๋ค.
body {
font-family: serif;
}์ผ๋ฐ ํฐํธ ์ด๋ฆ์ ๋ธ๋ผ์ฐ์ ์ข
๋ฅ ๋ฐ ๋ฒ์ , ์ด์ ์ฒด์ , ๋ก์ปฌ์ ์ค์น๋ ํฐํธ, ์ฌ์ฉ์ ๊ธฐ๋ณธ ์ค์ , ์น์ฌ์ดํธ์์ ์ฌ์ฉ๋ ์ ๋์ฝ๋ ๋ฒ์ ๋ฑ ๋ค์ํ ์์์ ๋ฐ๋ผ ์๋ก ๋ค๋ฅธ ํฐํธ๋ก ๋งคํ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด, Windows 10์ Firefox ๋ธ๋ผ์ฐ์ ์์๋ sans-serif์ fantasy๊ฐ ๋ชจ๋ Arial๋ก ๋งคํ๋ ์ ์์ต๋๋ค.
๋ค์์ Windows 10์์ ํฌ๋กฌ ๋ธ๋ผ์ฐ์ ๊ฐ ๋์ผํ ํ ์คํธ๋ฅผ 5๊ฐ์ง ์ผ๋ฐ ๊ธ๊ผด๋ก ๋ ๋๋ง ํ๋ ๋ฐฉ๋ฒ์ ์์์ ๋๋ค. (์ฌ์ฉ ์ค์ธ ํ๋ซํผ์์ ์ฌ์ฉ๋๋ ์ผ๋ฐ ๊ธ๊ผด์ ํ์ธํ๋ ค๋ฉด ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ์์ ๋ฐ๋ชจ๋ฅผ ์ด๊ฑฐ๋ ์์ค ์ฝ๋๋ฅผ ๋ค์ด๋ก๋ํ์ธ์.)

๊ฒฐ๊ตญ font-family ์ ์ธ์ ์ผ๋ฐ ํฐํธ ์ด๋ฆ๋ง ์ฌ์ฉํ๋ฉด, ์น์ฌ์ดํธ๊ฐ ๋ค์ํ ํ๋ซํผ์์ ๋น์ทํ๊ฒ ๋ณด์ด์ง๋ง, ๋ชจ๋ ์ฌ์ฉ์์๊ฒ ๋์ผํ ๋ฏธ์ ๋๋์ ์ ๊ณตํ์ง๋ ์์ ๊ฒ์
๋๋ค.
ํฐํธ ์คํ์ ์ฃผ์ ํฐํธ๊ฐ ์ฌ์ฉ ๋ถ๊ฐ๋ฅํ ๋๋ฅผ ๋๋นํด ํ๋ ๊ฐ ์ด์์ ๋์ฒด ํฐํธ๋ฅผ ์ ์ํ ๋ชฉ๋ก์
๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ๋คํธ์ํฌ ๋๋ ์ฌ์ฉ์์ ๊ธฐ๊ธฐ์์ ์ฌ์ฉ ๊ฐ๋ฅํ ์ฒซ ๋ฒ์งธ ํฐํธ๋ฅผ ๋ก๋ํฉ๋๋ค. CSS๋ font-family ์์ฑ์ ํฐํธ ์คํ์ ํ ๋นํ์ฌ ํ ๊ฐ์ง ํฐํธ ๋์ ์ฌ๋ฌ ํฐํธ๋ฅผ ์ฌ์ฉํ ์ ์๊ฒ ํด ์ค๋๋ค.
div {
font-family: Arial, Verdana, sans-serif;
}ํ์ดํฌ๊ทธ๋ํผ์ ๋ํ ๋ ๋ง์ ์ ์ด๋ฅผ ์ํ๋ฉด์๋ ์ปค์คํ ์น ํฐํธ๋ฅผ ๋ค์ด๋ก๋ํ๊ณ ์ถ์ง ์์ ๊ฒฝ์ฐ, ๊ธฐ๋ณธ ํฐํธ ๋งคํ๋ณด๋ค ๋ ์ฐฝ์ ์ธ ์ธํ์ ์ ๊ณตํ๋ ์น ์ธ์ดํ ํฐํธ ์คํ์ ์ง์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋์ผํ ์ด์ ์ฒด์ ๋ฅผ ์ฌ์ฉํ๋ ์น์ฌ์ดํธ ๋ฐฉ๋ฌธ์๋ค์๊ฒ ๋์ผํ ํฐํธ๋ฅผ ํ์ํ ๊ฐ๋ฅ์ฑ์ด ๋์์ง๋๋ค.
์ง์ํ๊ณ ์ ํ๋ ์ด์ ์ฒด์ ์ ๋ํ ํฐํธ ๊ฐ์ฉ์ฑ์ ์๋์ผ๋ก ํ์ธํ๊ฑฐ๋, Windows์ Mac ์์คํ
์ ์น ์ธ์ดํ ํฐํธ ์คํ์ ์ ๊ณตํ๋ CSSFontStack ์ปฌ๋ ์
์์ ๋ฏธ๋ฆฌ ์ ์๋ font-family ์ ์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์น ์ธ์ดํ ํฐํธ ์คํ์ ์์ฑํ ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉํ๊ณ ์ ํ๋ ์ฃผ์ ํฐํธ๋ฅผ ์ง์ ํ ํ, ์ง์ํ๊ณ ์ ํ๋ ๋ชจ๋ ์ด์ ์ฒด์ ๋ฅผ ์ปค๋ฒํ ์ ์๋๋ก ์ ์ฌํ ๋์ฒด ํฐํธ๋ฅผ ์ถ๊ฐํ ๋ค์, ๊ฐ์ฅ ์ ๋ง๋ ์ผ๋ฐ ํฐํธ ์ด๋ฆ์ผ๋ก ์ ์ธ์ ๋ง๋ฌด๋ฆฌํ์ธ์.
์๋ฅผ ๋ค์ด, CSSFontStack๋ Book Antiqua ํฐํธ์ ๋ํด ๋ค์๊ณผ ๊ฐ์ font-family ๊ท์น์ ๊ถ์ฅํฉ๋๋ค(๋ชจ๋ ๋์ฒด ํฐํธ๋ ์น ์ธ์ดํ ํฐํธ์์ ์ ์ํ์ธ์).
body {
font-family: Book Antiqua, Palatino, Palatino Linotype, Palatino LT STD, Georgia,
serif;
}์์ ์ธ๊ธํ๋ฏ์ด, ์น์ฌ์ดํธ์ ์์คํ ํฐํธ๋ฅผ ๋ก๋ํ๋ฉด ์ฌ์ฉ์์๊ฒ ์น์ํ ๋๋์ ์ค ์ ์์ผ๋ฉฐ, ์ด๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋์๋ณด๋์ ๊ฐ์ ํน์ ํ์ด์ง์์ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ค์ font-family ๊ท์น์ Mac, Windows, Linux ์ด์ ์ฒด์ ์ ์์คํ
ํฐํธ๋ฅผ ํฌํจํ๋ฉฐ, ์ด๋ ๊นํ๋ธ์ ๊ฐ์ ์ธ๊ธฐ ์น ์ ํ๋ฆฌ์ผ์ด์
์์ ์ฌ์ฉ๋ฉ๋๋ค.
body {
font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Noto Sans',
Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
}๋ํ system-ui ๊ฐ์ ์ฌ์ฉํ ์๋ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์์ ์ด์ ์ฒด์ ์์ ์์คํ ํฐํธ๋ฅผ ๋ก๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋ฉ๋๋ค.
body {
font-family: system-ui;
}๋ธ๋๋ ๋์์ธ์ ์ปค์คํ ํ์ดํฌ๊ทธ๋ํผ๊ฐ ์ค์ํ๊ณ ์น์ฌ์ดํธ์ ์น ํฐํธ๋ฅผ ์ฌ์ฉํ๊ธฐ๋ก ๊ฒฐ์ ํ ๊ฒฝ์ฐ, ์ผ๋ฐ์ ์ผ๋ก ํ์ด์ง์ ๋ ๊ฐ ์ด์์ ์น ํฐํธ ํจ๋ฐ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข์ต๋๋ค. ์ด๋ ํ์ด์ง ์ฉ๋ ์ฆ๊ฐ์ ๋๋ฆฐ ํ์ด์ง ๋ก๋ฉ ์๊ฐ๊ณผ ๊ฐ์ ์ฑ๋ฅ ์ ํ๋ฅผ ๋ฐฉ์งํ๊ธฐ ์ํจ์ ๋๋ค.
์๋ฅผ ๋ค์ด, ์๋์ ํ์ด์ง(๋ผ์ด๋ธ ๋ฒ์ ์ฐธ์กฐ)๋ 5๊ฐ์ ์ปค์คํ ํฐํธ ํจ๋ฐ๋ฆฌ๋ฅผ ๋ค์ด๋ก๋ํฉ๋๋ค. ๋๋ฒ๊ทธ๋ฒ ์ด(DebugBear)๊ฐ ์์ฑํ ์์ฒญ ์ํฐํด์ ๋ณด๋ฉด, ํ์ด์ง ๋ ๋๋ง์ด ๋ค์ฏ ๊ฐ์ ํฐํธ ํ์ผ์ด ๋ชจ๋ ๋ค์ด๋ก๋๋ ๋๊น์ง ์ฐจ๋จ๋จ์ ์ ์ ์์ต๋๋ค.

๋ํ, ๋์ฒด ํฐํธ๊ฐ ์ปค์คํ
ํฐํธ๋ก ๊ต์ฒด๋ ๋ ์์์น ๋ชปํ ๋ ์ด์์ ๋ณํ๊ฐ ๋ฐ์ํ ์ ์์ผ๋ฉฐ, ์ด๋ ๋์ ๋ ์ด์์ ์ด๋(Cumulative Layout Shift) ๊ฒฐ๊ณผ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ์๋ ๋ฐ๋ชจ๋ฅผ ํ
์คํธํ๋ ค๋ฉด ๋ฌด๋ฃ ์น์ฌ์ดํธ ์๋ ํ
์คํธ ๋๊ตฌ๋ฅผ ์ด๊ณ https://www.annalytic.com/demos/multiple-web-fonts-test/ URL์ ํ
์คํธํด ๋ณด์ธ์.

์น ํฐํธ๋ฅผ ์์ฒด ๋๋ฉ์ธ์ ํธ์คํ (์์ฒด ํธ์คํ )ํ๋ฉด ํ์ด์ง ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
์น ํฐํธ๋ฅผ ์์ฒด ํธ์คํ ํ๋ ค๋ฉด ๋ค์์ ์ํํด์ผ ํฉ๋๋ค.
@font-face ์ ์ธ์ ์ถ๊ฐํฉ๋๋ค(์๋์์ ์ต์ ํ ๋ฐฉ๋ฒ์ ์ค๋ช
ํ๊ฒ ์ต๋๋ค).์น ํฐํธ๋ฅผ ์์ฒด ํธ์คํ ํจ์ผ๋ก์จ ์ป์ ์ ์๋ ์ฑ๋ฅ ํฅ์์ ๋ค์๊ณผ ๊ฐ์ ์์ธ์์ ๋น๋กฏ๋ฉ๋๋ค.
@font-face ์ ์ธ์ ์ต์ ํํ ์ ์์ต๋๋ค(๋ฐฉ๋ฒ์ ์๋์์ ํ์ธํ ์ ์์ต๋๋ค).์์ฒด ํธ์คํ ์น ํฐํธ์ ๋ ๋ค๋ฅธ ์ฅ์ ์ ๋ฐฉ๋ฌธ์์ IP ์ฃผ์๊ฐ ์ 3์์๊ฒ ๊ณต์ ๋์ง ์๋๋ค๋ ์ ์์ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ์ ์ ๋ฆฌํ๋ค๋ ๊ฒ์ ๋๋ค.
๊ณผ๊ฑฐ์๋ ์์ฒด ํธ์คํ ์ด ๋น ๋ฅธ ์๋ฒ๋ CDN์ ์ ๊ทผํ ์ ์๋ ์น์ฌ์ดํธ์ ๊ถ์ฅ๋์ง ์์์ผ๋, ์ต๊ทผ์๋ HTTP ์์นด์ด๋ธ์ Web Almanac 2022์ ๋ฐ๋ฅด๋ฉด โ์บ์ ํํฐ์ ๋ ๋์ ์ดํ๋ก ํธ์คํ ์๋น์ค ์ฌ์ฉ์ด ๋ ์ด์ ์ฑ๋ฅ ์ด์ ์ ์ ๊ณตํ์ง ์๋๋คโ๊ณ ์ธ๊ธ๋์ด, ํ์ฌ๋ ์น ํฐํธ์ ์์ฒด ํธ์คํ ์ด ๋ณดํธ์ ์ผ๋ก ๊ถ์ฅ๋ฉ๋๋ค.
์น ์ฑ๋ฅ์์ ์ด์ ์๋ ๋ถ๊ตฌํ๊ณ , ์น ๊ธ๊ผด์ ์ง์ ํธ์คํ ํ๋ ๊ฒ์ด ํญ์ ๊ฐ๋ฅํ์ง๋ ์์ต๋๋ค. ์ด๋ ๋ผ์ด์ ์ค ์ ํ ๋๋ฌธ์ธ๋ฐ, ์๋ฅผ ๋ค์ด Adobe Fonts์ ๊ฒฝ์ฐ๊ฐ ๊ทธ๋ ์ต๋๋ค. ๋ฌผ๋ก ๋น์ฉ์ ์ง๋ถํ ์์ฌ๊ฐ ์๋ค๋ฉด ์ผ๋ถ ํด๊ฒฐ ๋ฐฉ๋ฒ์ด ์กด์ฌํฉ๋๋ค.
Adobe Fonts๋ ๋ค์ด๋ก๋ ๋ฐ ์์ฒด ํธ์คํ ์ด ๊ณต์์ ์ผ๋ก ๋ถ๊ฐ๋ฅํ์ง๋ง, โFont licensingโ ํ์ด์ง์์๋ โ์์ฒด ํธ์คํ ๋ณด๋ค CDN์ด ํจ์ฌ ์ฑ๋ฅ์ด ์ฐ์ํ๊ณ ํ์ฅ ๊ฐ๋ฅํ๋คโ๊ณ ์ฃผ์ฅํ๊ณ ์์ต๋๋ค.
ํ์ง๋ง, Adobe Originals ํ๋ก๊ทธ๋จ(Type Network์ ๊ฐ์ ๋ฆฌ์
๋ฌ๊ฐ ํ๋งค)์ ํตํด ๋ผ์ด์ ์ค๋ฅผ ๊ตฌ์
ํ๋ฉด ์ผ๋ถ Adobe Fonts๋ฅผ ์์ฒด ํธ์คํ
ํ ์ ์์ต๋๋ค. Adobe Fonts์๋ ๊นํ๋ธ์์ ๋ค์ด๋ก๋ํ ์ ์๋ ์คํ ์์ค ํฐํธ๋ ํฌํจ๋์ด ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ค์ด๋ก๋ํ ํ @font-face ๊ท์น์ CSS์ ์ถ๊ฐํ๋ฉด ์์ฒด ํธ์คํ
์ด ๊ฐ๋ฅํฉ๋๋ค.
Adobe Fonts๋ ์๋ํํฐ ์ ๊ณต์ ์ฒด์ ํฐํธ(ํ์ ํ์ด๋๋ฆฌ(Type Foundry)๋ผ๊ณ ํจ)๋ ํฌํจํ๊ณ ์์ต๋๋ค. ์๋ํํฐ ๊ณต๊ธ์ ์ฒด์ ๋ผ์ด์ ์ค์์ ํ์ฉํ๋ ๊ฒฝ์ฐ ์ผ๋ถ ํฐํธ๋ฅผ ์์ฒด ํธ์คํ ํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, Google Fonts๋ Adobe ์ฌ์ฉ์๊ฐ ์ฌ์ฉํ ์ ์๋ 408๊ฐ์ ๊ธ๊ผด ํจ๋ฐ๋ฆฌ๋ฅผ Adobe ๊ธ๊ผด์์ ํ์ด๋๋ฆฌ๋ก ๊ด๋ฆฌํ๊ณ ์์ผ๋ฉฐ, ๋ชจ๋ ์คํ ์์ค ๋ผ์ด์ ์ค๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ๊ธ ๋คํธ์ํฌ์์ ๋ค์ด๋ก๋ํ ๊ฒฝ์ฐ ์์ฒด ํธ์คํ ์ด ๊ฐ๋ฅํฉ๋๋ค. ์๋ฅผ ๋ค์ด, Baloo Bhaina 2 ํฐํธ๋ Adobe Fonts์ Google Fonts ๋ชจ๋์์ ์ ๊ณต๋๋ฉฐ, SIL ์คํ ํฐํธ ๋ผ์ด์ ์ค๋ก ์ถ์๋์ด npm ํจํค์ง ๋ฑ ๋ค๋ฅธ ์์ค์์๋ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
Mario Ranftl์ด ๋ง๋ Google Web Fonts Helper ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์์ฒด ํธ์คํ
๋ Google Fonts๋ฅผ ์น์ฌ์ดํธ์ ์ฝ๊ฒ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ด ๋๊ตฌ๋ ํ์ํ ๋ชจ๋ @font-face ๊ท์น์ ์์ฑํ๋ฉฐ, ํฐํธ ํ์ผ์ WOFF2 ํ์์ผ๋ก ๋ณํํด ์ค๋๋ค(์๋์์ WOFF2์ ๋ํด ์์ธํ ์ดํด๋ณด๊ฒ ์ต๋๋ค).
Google Web Fonts Helper๋ ์น์ฌ์ดํธ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ์คํ์ผ๊ณผ ๋ฌธ์ ์ธํธ๋ฅผ ์ ํํ์ฌ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.

CSS์ ์ถ๊ฐํด์ผ ํ๋ @font-face ๊ท์น์ ๋ณต์ฌํ ์๋ ์์ต๋๋ค.
ํ์ด์ง ํ๋จ์์ ZIP ํ์ผ๋ก ํฐํธ ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ผ๋ฉฐ, ๋ค์ด๋ก๋๊ฐ ์๋ฃ๋๋ฉด ์์ถ์ ํ๊ณ ์๋ฒ์ ์ ๋ก๋ํ์ธ์.

ํ์ฌ WOFF2(Web Open Font Format, ๋ฒ์ 2)๋ ๊ฐ์ฅ ์ฑ๋ฅ์ด ์ฐ์ํ ํฐํธ ์์ถ ํ์์ ๋๋ค. WOFF1๋ณด๋ค ํ๊ท ์์ถ๋ฅ ์ด 26.61% ๋์ผ๋ฉฐ, ๋ ํจ์จ์ ์ธ GZIP ๋์ ๋ธ๋กํ๋ฆฌ(Brotli) ์์ถ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ ๋๋ค(GZIP๊ณผ ๋ธ๋กํ๋ฆฌ์ ์ฐจ์ด์ ์ ์ฐธ๊ณ ํ์ธ์).
WOFF2 ํฌ๋งท์ด ๋๋ฆฌ ์ฌ์ฉ๋๊ณ ์์ง๋ง, ์ฌ์ ํ TTF, EOT, OTF ๋๋ WOFF1๊ณผ ๊ฐ์ ๋ ํจ์จ์ ์ธ ํ์์ผ๋ก๋ง ํฐํธ๋ฅผ ๋ค์ด๋ก๋ํ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ์๋ฅผ ๋ค์ด ๊ณต์ fonts.google.com์์ ํฐํธ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒฝ์ฐ ์ฌ์ ํ TTF(ํธ๋ฃจํ์
ํฐํธ) ํ์์ผ๋ก ์ ๊ณต๋ฉ๋๋ค.
WOFF2๋ ๋ชจ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์ง์๋๋ฏ๋ก WOFF2 ํ์์ ํฐํธ ํ์ผ๋ง ํธ์คํ ํ๋ฉด ๋ฉ๋๋ค. Web Almanac 2022๋ ์ด๋ฅผ โ๋ค๋ฅธ ๋ชจ๋ ๊ฒ์ ์์ด๋ฒ๋ฆฌ์ธ์โ๋ผ๊ณ ํํํ๋๋ฐ, ์ด๋ ๊ณผ๊ฑฐ์๋ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ํด ์ฌ๋ฌ ํฌ๋งท์ผ๋ก ํฐํธ๋ฅผ ์ ๊ณตํด์ผ ํ๋ ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
ํฐํธ๋ฅผ .woff2 ํ์์ผ๋ก ๋ณํํ๋ ค๋ฉด CloudConvert์ WOFF2 ๋ณํ๊ธฐ์ ๊ฐ์ ๋ณํ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ๋๋ ์์ ์ค๋ช
ํ Google Web Fonts Helper๋ฅผ ์ฌ์ฉํ๋ฉด ๊ธฐ๋ณธ์ ์ผ๋ก WOFF2 ํ์ผ์ ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
@font-face ์ ์ธ ์ต์ ํ์ฌ์ดํธ์์ ์น ํฐํธ๋ฅผ ์์ฒด ํธ์คํ
ํ ๋, CSS์ ๊ฐ ํฐํธ ํ์ผ์ ๋ํ @font-face ์ ์ธ์ ์ถ๊ฐํด์ผ ํ๋ฉฐ, ์ด๋ฅผ ํตํด ํฐํธ ์ด๋ฆ, ์์น ๋ฐ ๊ธฐํ ํน์ฑ์ ์ ์ํฉ๋๋ค.
@font-face at-rule์๋ ํ์ ๋ฐ ์ ํ ๋์คํฌ๋ฆฝํฐ๊ฐ ์์ต๋๋ค. ํ์ ๋์คํฌ๋ฆฝํฐ๋ก๋ ํฐํธ ์ด๋ฆ๊ณผ URL์ ์ ์ํ๋ฉฐ, ์ ํ ๋์คํฌ๋ฆฝํฐ๋ก๋ ๋ฌธ์ ์ธํธ, ๋ก๋ฉ ๋ฐฉ์, ํฌ๊ธฐ ๋ฑ์ ์์ฑ์ ์ง์ ํ ์ ์์ต๋๋ค.
@font-face ์ ์ธ์ ํ์ ๋์คํฌ๋ฆฝํฐ์ปค์คํ
ํฐํธ๋ฅผ ์ ์ํ๋ ค๋ฉด font-family์ src ๋์คํฌ๋ฆฝํฐ๋ฅผ ๋ค์๊ณผ ๊ฐ์ด @font-face ์ ์ธ์ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
@font-face {
font-family: 'Anonymous Pro';
src: url('fonts/anonymous-pro-v21-latin-regular.woff2') format('woff2');
}์ฌ๋ฌ ํฐํธ ์คํ์ผ์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ฐ ํ์ผ์ ๋ํด @font-face ์ ์ธ์ ๊ฐ๊ฐ ์ถ๊ฐํด์ผ ํฉ๋๋ค.
Anonymous Pro ํจ๋ฐ๋ฆฌ ์์์
๋๋ค. ์ ๊ท ์คํ์ผ๊ณผ ์ดํค๋ฆญ ์คํ์ผ์ ๋ชจ๋ ๋ค์ด๋ก๋ํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ด font-style๊ณผ font-weight ๋์คํฌ๋ฆฝํฐ๋ ์ถ๊ฐํด ์ง์๋๋ ๊ตต๊ธฐ์ ์คํ์ผ ๊ฐ์ ์ง์ ํฉ๋๋ค.
@font-face {
font-family: 'Anonymous Pro';
font-style: normal;
font-weight: 400;
src: url('/fonts/anonymous-pro-v21-latin-regular.woff2') format('woff2');
}
@font-face {
font-family: 'Anonymous Pro';
font-style: italic;
font-weight: 400;
src: url('../fonts/anonymous-pro-v21-latin-italic.woff2') format('woff2');
}@font-face ์ ์ธ์ ์ฑ๋ฅ ์ํฅ ์ค ์ค์ํ ์ ์ ์๋ฒ์ ๋ค์ด๋ก๋ ์์ฒญ์ ๋ณด๋ด์ง ์๋๋ค๋ ๊ฒ์
๋๋ค.
์น ํฐํธ๋ ํ์ด์ง์์ ์ฌ์ฉ๋ ๋์๋ง ๋ค์ด๋ก๋๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด Anonymous Pro ํฐํธ๋ฅผ font-family ์์ฑ์ ์ฌ์ฉํด <body> ํ๊ทธ์ ํ ๋นํ๋ฉด ๋ธ๋ผ์ฐ์ ๋ <body> ์์๋ฅผ ๋ ๋๋งํ๊ธฐ ์ ์ ํด๋น HTTP ์์ฒญ๋ง ์๋ฒ๋ก ์ ์กํฉ๋๋ค(ํ์ฑ ๋จ๊ณ์์๋ @font-face ์ ์ธ์ด ์ ์ฉ๋์ง ์์).
body {
font-family: 'Anonymous Pro', monospace;
}์์ font-family ๊ท์น์ ์ผ๋ฐ ํฐํธ ํ์ผ(anonymous-pro-v21-latin-regular.woff2)๋ง ๋ค์ด๋ก๋ํ๋ฉฐ ์ดํค๋ฆญ์ฒด ํฐํธ๋ ๋ค์ด๋ก๋ํ์ง ์์ต๋๋ค.
๋ฐ๋ฉด, ๋ค์ ์ฝ๋๋ ์ดํค๋ฆญ์ฒด ํฐํธ ํ์ผ(anonymous-pro-v21-latin-italic.woff2)๋ง ๋ค์ด๋ก๋ํ๊ณ ์ผ๋ฐ ํฐํธ๋ ๋ค์ด๋ก๋ํ์ง ์์ต๋๋ค.
body {
font-family: 'Anonymous Pro', monospace;
font-style: italic;
}์๋ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋คํธ์ํฌ ํญ์์ ํ์ธํ ์ ์๋ ์ฆ๊ฑฐ์ ๋๋ค(ํ์์ ์์์์ ๋ณผ ์ ์๋ฏ์ด ์ผ๋ฐ ๊ธ๊ผด ํ์ผ์ ๋ค์ด๋ก๋๋์ง ์์์ต๋๋ค).

๋ ํฐํธ ํ์ผ ๋ชจ๋๋ฅผ ๋ค์ด๋ก๋ํ๋ ค๋ฉด, ์๋์ ๊ฐ์ด CSS์์ ๊ฐ๊ฐ ์ฐธ์กฐํด์ผ ํฉ๋๋ค.
body {
font-family: 'Anonymous Pro', monospace;
}
h1 {
font-style: italic;
}@font-face ์ ์ธ์ ๋ค์ ์ ํ ๋์คํฌ๋ฆฝํฐ๋ค์ ํฐํธ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋์์ ๊ฐ ๋์คํฌ๋ฆฝํฐ์ ๋ํด ์์ธํ ์ค๋ช
ํ๊ฒ ์ต๋๋ค.
| ๋์คํฌ๋ฆฝํฐ | ์น ์ฑ๋ฅ ์ด์ | ํฅ์๋๋ ์ฑ๋ฅ ์งํ |
|---|---|---|
unicode-range |
์ง์ ๋ ๋ฌธ์๊ฐ ํ์ด์ง์ ์ฌ์ฉ๋ ๋๋ง ํฐํธ ํ์ผ ๋ค์ด๋ก๋ | FCP, LCP |
local() |
์ฌ์ฉ์๊ฐ ํฐํธ๋ฅผ ๋ก์ปฌ์ ์ค์นํ๋์ง ํ์ธ ํ ์ค์น๋ ํฐํธ๋ฅผ ์ฌ์ฉ | TTFB, FCP, LCP |
font-display |
๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ฉํ ๋์ฒด(fallback) ์ ๋ต ์ ์ | CLS |
size-adjust |
์ฃผ์ ํฐํธ์ ๋์ฒด ํฐํธ์ ํฌ๊ธฐ ์กฐ์ | CLS |
unicode-range ๋์คํฌ๋ฆฝํฐunicode-range ๋์คํฌ๋ฆฝํฐ๋ ํน์ ํฐํธ ํ์ผ์์ ์ฌ์ฉํ๊ณ ์ ํ๋ ๋ฌธ์๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค. HTML์ unicode-range๋ก ์ ์๋ ๋ฌธ์๊ฐ ํฌํจ๋์ง ์์ ๊ฒฝ์ฐ ํฐํธ ํ์ผ์ ๋ค์ด๋ก๋๋์ง ์์ต๋๋ค.
์๋์ CSS ์ฝ๋๋ก ์ด ๋์์ ํ
์คํธํ ์ ์์ต๋๋ค. ์๋ unicode-range ์ค๋ช
์๋ ๋จ์ผ ์ ๋์ฝ๋ ๋ฌธ์(์ค๋ง์ผ ์ด๋ชจ์ง)๋ฅผ ์ ์ํ์ต๋๋ค. <body> ํ๊ทธ ๋ด์ ์ค๋ง์ผ ์ด๋ชจ์ง๊ฐ ์์ผ๋ฉด ์ปค์คํ
ํฐํธ๋ ๋ค์ด๋ก๋๋์ง ์๊ณ , ์ผ๋ฐ monospace๊ฐ ๋์ฒด ํฐํธ๋ก ์ฌ์ฉ๋ฉ๋๋ค.
@font-face {
font-family: 'Anonymous Pro';
font-style: italic;
font-weight: 400;
unicode-range: U+1F642; /* ์ค๋ง์ผ ์ด๋ชจ์ง */
src: url('/fonts/anonymous-pro-v21-latin-italic.woff2') format('woff2');
}
body {
font-family: 'Anonymous Pro', monospace;
font-style: italic;
}unicode-range ๋์คํฌ๋ฆฝํฐ๋ ์ฌ๋ฌ ์ ๋์ฝ๋ ๊ฐ, ์์ผ๋์นด๋ ๋ฒ์ ๋ฑ์ผ๋ก ์ ์ํ ์ ์์ต๋๋ค(๋ฌธ์์์ ๋ฌธ๋ฒ ์ฐธ์กฐ).
์์ ์ฝ๋ ์์ ์์ ๋ณด์ฌ์ค unicode-range ๋์คํฌ๋ฆฝํฐ๋ฅผ ์ฌ์ฉํ๋ ๋ฐฉ์์ด ํ๋์ ์๋ธ์ธํ
๋ฐฉ๋ฒ์
๋๋ค. ์ฆ, WOFF2 ํฐํธ ํ์ผ์ ์์ฑํด ์๋ฒ์ ์
๋ก๋ํ ํ ๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง์์ ์ง์ ๋ ์ ๋์ฝ๋ ๋ฌธ์๊ฐ ์ฌ์ฉ๋๋ ๊ฒฝ์ฐ์๋ง ํด๋น ํ์ผ์ ๋ค์ด๋ก๋ํฉ๋๋ค.
๋ํ ํฐํธ ํ์ผ ์์ฒด๋ฅผ ์๋ธ์ธํ ํ ์๋ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Google Web Fonts Helper์์ ํน์ ๋ฌธ์ ์ธํธ๋ฅผ ์ ํํ๋ฉด ์ ํํ ๋ฌธ์ ์ธํธ๋ง ํฌํจ๋ ์๋ธ์ธํ ๋ ํฐํธ ํ์ผ์ด ์์ฑ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, Anonymous Pro ํฐํธ์ ๊ทธ๋ฆฌ์ค ๋ฌธ์์ ๋ผํด ๋ฌธ์ ์ธํธ๋ฅผ ์ ํํ๋ฉด, anonymous-pro-v21-greek_latin-regular.woff2 ํ์ผ์ด ๋ค์ด๋ก๋๋๋ฉฐ ๊ทธ๋ฆฌ์ค ๋ฐ ๊ธฐ๋ณธ ๋ผํด ๋ฌธ์๋ง ํฌํจํ๊ณ , ํค๋ฆด ๋ฐ ํ์ฅ ๋ผํด ๋ฌธ์๋ ํฌํจ๋์ง ์์ต๋๋ค.

์น์ฌ์ดํธ์์ ์ฌ์ฉํ๋ ๋ฌธ์๋ง ํฌํจ๋ ์๋ธ์ธํ ํฐํธ ํ์ผ์ ์์ฑํ๋ฉด ์ฑ๋ฅ์ ๋์ฑ ๊ฐ์ ํ ์ ์์ต๋๋ค(์: ๋ก๊ณ ์๋ง ์ฌ์ฉํ๋ ๋์คํ๋ ์ด ๊ธ๊ผด์ ์ข์ ์๋ฃจ์ ์ด ๋ ์ ์์ต๋๋ค). ์ด๋ฅผ ์ํด Peter Mรผller๊ฐ ๋ง๋ subfont์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์ผ๋ถ ํฐํธ ๋ผ์ด์ ์ค๋ ์๋ธ์ธํ ์ ํ์ฉํ์ง ์์ ์ ์์ง๋ง, ๋๋ถ๋ถ์ Google Fonts๊ฐ ์ฌ์ฉํ๋ SIL ์คํ ํฐํธ ๋ผ์ด์ ์ค๋ ์ด๋ฅผ ์ง์ํฉ๋๋ค. Jeff Frankl๊ฐ ์ ์ํ subsetting.xyz ์ฌ์ดํธ์์ ๋ค๋ฅธ ํฐํธ ๋ผ์ด์ ์ค ์ ๋ณด๋ฅผ ํ์ธํ ์ ์์ต๋๋ค.
local() ํจ์local() ํจ์๋ @font-face ์ ์ธ์ ํ์ src ๋์คํฌ๋ฆฝํฐ์ ์ ํ์ ๊ฐ์ผ๋ก, ์ฌ์ฉ์์ ๊ธฐ๊ธฐ์ ํฐํธ๊ฐ ์ค์น๋์ด ์๋์ง ํ์ธํด ์น ๋์ ๋ก์ปฌ ํฐํธ ํ์ผ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
src ๋์คํฌ๋ฆฝํฐ๋ ์ฌ๋ฌ ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฏ๋ก local()๊ณผ url() ํจ์๋ฅผ ์กฐํฉํ์ฌ ์ฌ์ฉํ ์ ์์ต๋๋ค.
@font-face {
font-family: 'Anonymous Pro';
font-style: normal;
font-weight: 400;
src: local('Anonymous Pro Regular'),
/* Full name */ local('AnonymousPro-Regular'), /* PostScript name */
url('/fonts/anonymous-pro-v21-latin-regular.woff2') format('woff2');
}local() ์ ์ธ์ ๋ฐ๋์ url() ํจ์ ์ ์ ์์ผ ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๋ก์ปฌ ํ์ผ์ ์ฐพ์ผ๋ฉด ์จ๋ผ์ธ ํ์ผ์ ๋ํ HTTP ์์ฒญ์ ๋ณด๋ด์ง ์๊ธฐ ๋๋ฌธ์
๋๋ค. ํฐํธ ํ์ผ์ ์ ์ฒด ์ด๋ฆ๊ณผ PostScript ์ด๋ฆ์ ๋ชจ๋ ์ถ๊ฐํ๋ ๊ฒ์ด ๊ถ์ฅ๋ฉ๋๋ค(PostScript๋ Adobe ํ๋ก๊ทธ๋จ์์ ์ฌ์ฉํ๋ ํ์ด์ง ์ค๋ช
์ธ์ด๋ก ์ฌ์ฉ์์ ๊ธฐ๊ธฐ์ ํฐํธ๋ฅผ ์ค์นํ ์ ์์ต๋๋ค).
ํฐํธ์ ๋ก์ปฌ ์ด๋ฆ์ ์ ์ ์๋ ๊ฒฝ์ฐ, Viktor Nรผbel์ด ์ ์ํ FontDrop! ์ฑ๊ณผ ๊ฐ์ ํฐํธ ๋ทฐ์ด ๋๊ตฌ๋ฅผ ์ฌ์ฉํด ๋ค์ด๋ฐ ํ
์ด๋ธ์์ fullName๊ณผ postScriptName ๊ฐ์ ํ์ธํ ์ ์์ต๋๋ค.

font-display ๋์คํฌ๋ฆฝํฐfont-display ๋์คํฌ๋ฆฝํฐ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์น ํฐํธ๋ฅผ ๋ค์ด๋ก๋ํ ๋๊น์ง ์ฌ์ฉ์๊ฐ ๋ณด๊ฒ ๋ ํ
์คํธ ์คํ์ผ์ ๊ฒฐ์ ํ๋ ๋ค ๊ฐ์ง ๊ธฐ๋ณธ ํฐํธ ํ์ ์ ๋ต์ ์ค ํ๋๋ฅผ ์ ํํ ์ ์๋๋ก ํฉ๋๋ค.
์ํ๊น๊ฒ๋, ํ์ฌ ์กด์ฌํ๋ ํฐํธ ํ์ ์ ๋ต ์ค ์ด๋ ๊ฒ๋ ์๋ฒฝํ ์ ๋ต์ ์์ด์ ์ด๋ ์ ๋๋ ์ฑ๋ฅ์ด๋ ๋ฏธ์ ๊ฐ๊ฐ(๋๋ ๋ ๋ค)์ ํฌ์ํด์ผ ํฉ๋๋ค.
์น ํฐํธ๋ฅผ ์ฌ์ฉํ ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋ค์ ์ธ ๊ฐ์ง ํ์ ๋ฌธ์ ์ค ํ๋๋ฅผ ์ ํํด์ผ ํฉ๋๋ค.
FOIT์ FOUT๋ ๋ชจ๋ ์์์น ๋ชปํ ๋ ์ด์์ ์ด๋์ ์ด๋ํ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ๋ฐฉ์งํ๋ ค๋ฉด ์น ํฐํธ์ ๋์ฒด ํฐํธ์ ํฌ๊ธฐ๋ฅผ ์ผ์น์ํค๋ ๊ฒ์ด ์ค์ํฉ๋๋ค(๋์ค์ ๋ฐฉ๋ฒ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค).
font-display ๋์คํฌ๋ฆฝํฐ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฐ์ ๊ฐ์ง ์ ์์ผ๋ฉฐ, ๊ฐ ๊ฐ์ ๊ณ ์ ํ ํฐํธ ํ์ ์ ๋ต์ ๋ํ๋ ๋๋ค(๊ฐ ์ ๋ต์๋ ๋ธ๋ก ๊ธฐ๊ฐ(block period)๊ณผ ๊ต์ฒด ๊ธฐ๊ฐ(swap period)์ด ์์ผ๋ฉฐ, ๋ธ๋ก ๊ธฐ๊ฐ์๋ ํฐํธ ๋ ๋๋ง์ด ์ค๋จ๋๊ณ , ๊ต์ฒด ๊ธฐ๊ฐ์๋ ๋์ฒด ํฐํธ๊ฐ ์น ํฐํธ๋ก ์ ํ๋ฉ๋๋ค).
block:
swap:
optional:
<body> ํ
์คํธ)์์ ์ฑ๋ฅ์ด ์ฐ์ ์ด๊ณ ์ปค์คํ
ํ์ดํฌ๊ทธ๋ํผ๊ฐ ์ค์ํ์ง ์์ ๊ฒฝ์ฐ ๊ถ์ฅ๋ฉ๋๋ค.fallback:
<body> ํ
์คํธ)์์ ์ปค์คํ
ํ์ดํฌ๊ทธ๋ํผ๊ฐ ์ค์ํ ๋ ์ฑ๋ฅ๊ณผ ๋ฏธ๊ฐ์ ์กฐํ์ํฌ ์ ์์ต๋๋ค.auto:
์ข์ CLS(๋์ ๋ ์ด์์ ์ด๋) ๊ฒฐ๊ณผ๋ฅผ ์ป์ผ๋ ค๋ฉด, ๊ธด ํ
์คํธ ๋ธ๋ก์๋ optional์ด๋ fallback ์ ๋ต์ ์ฌ์ฉํ์ธ์.
@font-face {
font-display: optional;
font-family: 'Anonymous Pro';
font-style: normal;
font-weight: 400;
src: local('Anonymous Pro Regular'), local('AnonymousPro-Regular'),
url('/fonts/anonymous-pro-v21-latin-regular.woff2') format('woff2');
}๋ค์ํ ํฐํธ ํ์ ์ ๋ต์ ์๋ ๋ฐฉ์์ ๋ํด ์์ธํ ์์๋ณด๋ ค๋ฉด, ์น ํฐํธ๋ก ์ธํ ๋ ์ด์์ ์ด๋์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋ํ ๊ธ์ ์ฐธ๊ณ ํ์ธ์.
size-adjust ๋์คํฌ๋ฆฝํฐsize-adjust ๋์คํฌ๋ฆฝํฐ๋ @font-face ์ ์ธ์ ์๋ก ์ถ๊ฐ๋ ํญ๋ชฉ์ด๋ฉฐ, ์ต์ ๋ฒ์ ์ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ์ด๋ฏธ ์ง์๋ฉ๋๋ค. ์ด ๋์คํฌ๋ฆฝํฐ๋ฅผ ์ฌ์ฉํ๋ฉด ์น ํฐํธ์ ๋์ฒด ํฐํธ์ ํฌ๊ธฐ๋ฅผ ๋ง์ถฐ ๊ต์ฒด ๊ธฐ๊ฐ ๋์ ๋ฐ์ํ ์ ์๋ ๋ ์ด์์ ์ด๋์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
ํฌ๊ธฐ ์กฐ์ ์ ์ค์ํฉ๋๋ค. ์๋ก ๋ค๋ฅธ font face์ ๊ธ๋ฆฌํ(glyph)๋ ์ข ์ข ์ฝ๊ฐ ๋ค๋ฅธ ๋๋น์ ๋์ด๋ฅผ ๊ฐ์ง๋ฏ๋ก, ํฐ ํ ์คํธ ๋ธ๋ก์ ํ๋ฉด์์ ์ฐจ์งํ๋ ์์ญ์ด ๋ฌ๋ผ์ ธ ํฐํธ๊ฐ ์ ํ๋ ๋ ์์์น ๋ชปํ ๋ ์ด์์ ์ด๋์ ์ด๋ํ ์ ์์ต๋๋ค.
size-adjust ๋์คํฌ๋ฆฝํฐ๋ ๊ธ๋ฆฌํ์ ์ค๊ณฝ์ ๋๋ฆฌ๊ฑฐ๋ ์ค์ด๋ ๋ฐฐ์จ์ ํผ์ผํธ ๊ฐ์ผ๋ก ์ง์ ํฉ๋๋ค. ์น ํฐํธ์ ๋์ฒด ํฐํธ์ ์ ํํ ํฌ๊ธฐ๋ฅผ ๋น๊ตํ์ฌ ๋ฐฐ์จ์ ์๋์ผ๋ก ๊ณ์ฐํ๊ฑฐ๋, Brian Louis Ramirez์ Fallback Font Generator์ ๊ฐ์ ๋๊ตฌ๋ฅผ ํตํด ๊ณ์ฐํ ์ ์์ต๋๋ค.
์๋๋ Anonymous Pro ์น ํฐํธ์ Courier New ๋์ฒด ํฐํธ์ ํฌ๊ธฐ๋ฅผ ์กฐ์ ํ๋ ๋ฐฉ๋ฒ์ ๋ณด์ฌ์ค๋๋ค.
๋จผ์ size-adjust๋ฅผ 100%(๊ธฐ๋ณธ๊ฐ)๋ก ์ค์ ํ๊ณ ๋ ํฐํธ๊ฐ ๋์ผํ ๊ณต๊ฐ์ ์ฐจ์งํ๋์ง ํ์ธํฉ๋๋ค(ํ
์คํธ ๋ธ๋ก ์ฃผ์์ ์ฌ๊ฐํ์ ๋น๊ตํด์ผ ํ๋ฉฐ, ์ด๋ ์์์น ๋ชปํ ๋ ์ด์์ ์ด๋์ ๋ฐฉ์งํ๊ธฐ ์ํด ์กฐ์ ๋์ด์ผ ํฉ๋๋ค).

์์์ ๋ณผ ์ ์๋ฏ์ด ์ปค์คํ
ํฐํธ(๋
น์)๊ฐ ๋์ฒด ํฐํธ(๋
ธ๋์)๋ณด๋ค ์ฝ๊ฐ ์์ผ๋ฏ๋ก size-adjust ๊ฐ์ ์ฆ๊ฐ์์ผ ๋ ์ฌ๊ฐํ์ด ๋์ผํ ๊ณต๊ฐ์ ์ฐจ์งํ๋๋ก ์ค์ ํ์ต๋๋ค.
113%์์ ํฌ๊ธฐ๊ฐ ์ผ์นํ์ต๋๋ค(size-adjust ๊ฐ์ ์งง๊ณ ๊ธด ํ
์คํธ ๋ฌธ์์ด ๋ชจ๋๋ก ํ
์คํธํ๋ ๊ฒ์ด ์ข์ต๋๋ค).

size-adjust ๋์คํฌ๋ฆฝํฐ๊ฐ ํฌํจ๋ @font-face ์ ์ธ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค(<body> ํ๊ทธ์์๋ size-adjust๊ฐ ์ ๋๋ก ์๋ํ๋๋ก ๋์ฒด ํฐํธ์ ์์๋ฅผ ์ง์ ํด์ผ ํฉ๋๋ค).
@font-face {
font-display: fallback;
font-family: 'Anonymous Pro';
font-style: normal;
font-weight: 400;
size-adjust: 113%;
src: local('Anonymous Pro Regular'), local('AnonymousPro-Regular'),
url('/fonts/anonymous-pro-v21-latin-regular.woff2') format('woff2');
}
body {
font-family: 'Anonymous Pro', 'Courier New', monospace;
}@font-face ์ ์ธ์๋ ์น ํฐํธ์ ๋์ฒด ํฐํธ์ ํฌ๊ธฐ๋ฅผ ๋์ฑ ์ธ๋ฐํ๊ฒ ์กฐ์ ํ ์ ์๋ ์ธ ๊ฐ์ง ์ ํ์ ๋์คํฌ๋ฆฝํฐ๋ ์์ต๋๋ค.
์ด๋ฌํ ๋์คํฌ๋ฆฝํฐ ์์ด๋ CLS(๋์ ๋ ์ด์์ ์ด๋)๋ฅผ ์ํด ์น ํฐํธ๋ฅผ ์ต์ ํํ ์ ์์ง๋ง, ๋ ๋งค๋๋ฌ์ด ์ ํ ๊ตฌ๊ฐ์ ์ ๊ณตํ๊ณ ์ถ๋ค๋ฉด ์ด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค(์ด ๋์คํฌ๋ฆฝํฐ๋ ์์ ์ธ๊ธํ ๋์ฒด ํฐํธ ์์ฑ๊ธฐ ๋๊ตฌ์์๋ ์ ๊ณต๋์ง๋ง, ์ฌํ๋ฆฌ ๋ธ๋ผ์ฐ์ ์์๋ ์์ง ์ง์๋์ง ์์์ ์ ์ํด์ผ ํฉ๋๋ค).
ascent-override โ ๊ธ๋ฆฌํ์ ๋ฒ ์ด์ค๋ผ์ธ ์์ ๋์ด๋ฅผ ์ฆ๊ฐ ๋๋ ๊ฐ์์ํฌ ๋ฐฑ๋ถ์จ ๊ฐ์ ์ง์ ํฉ๋๋ค.descent-override โ ๊ธ๋ฆฌํ์ ๋ฒ ์ด์ค๋ผ์ธ ์๋ ๋์ด๋ฅผ ์ฆ๊ฐ ๋๋ ๊ฐ์์ํฌ ๋ฐฑ๋ถ์จ ๊ฐ์ ์ง์ ํฉ๋๋ค.line-gap-override โ ์ค ๊ฐ๊ฒฉ์ ์ฆ๊ฐ ๋๋ ๊ฐ์์ํฌ ๋ฐฑ๋ถ์จ ๊ฐ์ ์ง์ ํฉ๋๋ค.@font-face ๊ท์น์ ํ์ด์ง <head> ์น์
์ ์ธ๋ผ์ธํ์ธ์ํฐํธ๋ฅผ ๊ฐ๋ฅํ ๋นจ๋ฆฌ ๋ค์ด๋ก๋ํ๋ ค๋ฉด HTML ํ์ด์ง์ <head> ์น์
์ @font-face ๊ท์น์ ์ค์ํ CSS์ ์ผ๋ถ๋ก ์ธ๋ผ์ธํ์ธ์.
์ค์ํ ๋ ๊ฐ์ง ์ฌํญ์ ์๋์ ๊ฐ์ต๋๋ค.
@font-face ์ ์ธ์ด ์๋ ๊ฒฝ์ฐ, ๊ฐ์ฅ ์ค์ํ ํฐํธ๋ถํฐ ์์ํด ์์ฒญ ์ฐ์ ์์๋ฅผ ๋์ด์ธ์(์: <body> ํ๊ทธ์ ์ฌ์ฉ๋ ์ปค์คํ
ํฐํธ).@font-face ์ ์ธ์ ์๋ฒ์ ์์ฒญ์ ๋ณด๋ด์ง ์์ต๋๋ค. ๋ค์ด๋ก๋ ํ๋ก์ธ์ค๋ฅผ ์์ํ๋ ค๋ฉด ํ์ด์ง์ font-family ๊ท์น์ ์ ์ํด ์ฐธ์กฐํด์ผ ํฉ๋๋ค.์๋๋ ์ธ๋ผ์ธ๋ ์ต์ํ๋ @font-face ์ ์ธ์ ์ฝ๋ ์์
๋๋ค. <body> ํ๊ทธ์ ํฐํธ ํจ๋ฐ๋ฆฌ ๊ท์น์ด ์ถ๊ฐ๋์ด HTTP ์์ฒญ์ด ์์๋ฉ๋๋ค(์ฝ๋๋ Minifier.org์์ ์ต์ํ๋์์ต๋๋ค).
<style>
@font-face {
font-display: optional;
font-family: 'Anonymous Pro';
font-style: normal;
font-weight: 400;
size-adjust: 113%;
src: local('Anonymous Pro Regular'), local('AnonymousPro-Regular'),
url(/fonts/anonymous-pro-v21-latin-regular.woff2) format('woff2');
}
body {
font-family: 'Anonymous Pro', 'Courier New', monospace;
}
</style>์ปค์คํ ํฐํธ๋ฅผ ์ ๊ณตํ๋ ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ์์ฒด ํธ์คํ ์ด์ง๋ง, ์ผ๋ถ ์ํฉ์์๋ ์์ฒด ํธ์คํ ์ด ์ด๋ ค์ธ ์ ์์ต๋๋ค.
์ฌ๊ธฐ์๋ ๊ตฌ๊ธ์ด๋ Adobe์ CDN์์ ์น ํฐํธ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒฝ์ฐ ์น ์ฑ๋ฅ์ ๊ฐ์ ํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
๊ตฌ๊ธ์ ์์ฒด ํธ์คํ ์ด ์๋ CDN์ ํตํด ์น ํฐํธ๋ฅผ ๋ค์ด๋ก๋ํ ๊ฒฝ์ฐ ์ฑ๋ฅ ๋ฐ ์ฝ์ด ์น ๋ฐ์ดํ์ ์ต์ ํํ ์ ์๋ ์ฌ๋ฌ ์ต์ ์ ์ ๊ณตํฉ๋๋ค.
์ดํด๋ณด๊ธฐ ์ ์ ๊ธฐ๋ณธ ์ค์ ์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์๋ ์ฝ๋๋ Anonymous Pro ํฐํธ์ ์ผ๋ฐ ๋ฐ ์ดํค๋ฆญ ์คํ์ผ์ ๊ตฌ๊ธ์ CDN์์ ๋ค์ด๋ก๋ํ๋ ค๋ฉด Google Fonts์์ ์ ๊ณตํ๋ ๊ธฐ๋ณธ ์ฝ๋์
๋๋ค(HTML ํ์ด์ง์ <head> ์น์
์ ์ถ๊ฐํด์ผ ํฉ๋๋ค).
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link
href="https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital@0;1&display=swap"
rel="stylesheet"
/>์ ์ฝ๋๋ ๋ ๊ฐ์ WOFF2 ํ์ผ(์ผ๋ฐ ๋ฐ ์ดํค๋ฆญ ์คํ์ผ)๊ณผ Anonymous Pro ํฐํธ๊ฐ ์ง์ํ๋ ๋ค ๊ฐ์ง ๋ฌธ์ ์ธํธ(ํค๋ฆด, ๊ทธ๋ฆฌ์ค, ๋ผํด ํ์ฅ, ๋ผํด) ๊ฐ๊ฐ์ ๋ํ CSS ํ์ผ(@font-face ๊ท์น ์ฌ๋ ๊ฐ)์ ๋ค์ด๋ก๋ํฉ๋๋ค. ๊ตต์ ๊ธ์จ์ฒด์ ๊ตต์ ์ดํค๋ฆญ ์คํ์ผ๋ ๋ค์ด๋ก๋ํ๋ ค๋ฉด CSS์ ์ด 16๊ฐ์ @font-face ๊ท์น์ด ์ถ๊ฐ๋ฉ๋๋ค.

ํนํ ๋ผํด ๋ฌธ์ ์งํฉ๋ง ์ฌ์ฉํ๋ ค๋ ๊ฒฝ์ฐ ์ฝ๋์ ์์ด ๊ณผ๋ํ๊ฒ ๋ง์ต๋๋ค.
ํ์ฌ ๋ถํ์ํ ๋ฌธ์ ์ธํธ์ @font-face ๊ท์น์ ์ ๊ฑฐํ ๋ฐฉ๋ฒ์ ์์ง๋ง(์ด๋ text URL ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๊ฐ๋ฅํฉ๋๋ค), โ์ต์์โ ํด๊ฒฐ์ฑ
์ ํ์ํ ์คํ์ผ๋ง ์์ฒญํ๋ ๊ฒ์
๋๋ค(์: ๊ตต์ ์ดํค๋ฆญ์ฒด๊ฐ ํ์ ์์ผ๋ฉด URL์์ ์ด๋ฅผ ์ ์ธํ์ธ์).
๊ตฌ๊ธ์ CDN์์ ๋ค์ด๋ก๋ํ WOFF2 ํฐํธ ํ์ผ์ unicode-range ๋์คํฌ๋ฆฝํฐ๋ฅผ ์ง์ํ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์์ ์๋์ผ๋ก ์ต์ ํ๋ฉ๋๋ค. ์ด ๋ธ๋ผ์ฐ์ ๋ ํ์ด์ง์์ ํ์ํ ๋ฌธ์ ์ธํธ๋ฅผ ๊ฐ์งํด ํด๋น ๋ถ๋ถ๋ง ์์ฒญํฉ๋๋ค(์: ๊ทธ๋ฆฌ์ค์ด ๋๋ ํค๋ฆด ๋ฌธ์ ์ธํธ๊ฐ ํ์ด์ง์ ์์ผ๋ฉด WOFF2 ํ์ผ์์ ํด๋น ๊ธ๋ฆฌํ๋ ์ ์ธ๋ฉ๋๋ค). ๊ณผ๊ฑฐ์๋ subset ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํด ์ด๋ฅผ ์ฒ๋ฆฌํ์ผ๋, ์ด์ ๋ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์ง์์ด ์๋ ๊ฒฝ์ฐ ํ์ํ์ง ์์ต๋๋ค.
์ต์ ๋ธ๋ผ์ฐ์ ์์๋ subset์ด ๋ฌด์๋๋ฏ๋ก, ํ์ฌ ์น ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ๋ ๊ฐ์ง ์ ํ์ URL ๋งค๊ฐ๋ณ์๋ง ์ฌ์ฉํ ์ ์์ต๋๋ค:
display โ ์ด๋ @font-face ์ ์ธ์ font-display ๋์คํฌ๋ฆฝํฐ์ ๋์ผํฉ๋๋ค. ๊ธฐ๋ณธ๊ฐ์ display=swap์ด์ง๋ง, display=fallback์ด๋ display=optional๋ก ๋ณ๊ฒฝํด ๋์ ๋ ์ด์์ ์ด๋ ๊ฒฐ๊ณผ๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.text โ ์ง์ ๋ ํ
์คํธ์ ์ฌ์ฉ๋ ๋ฌธ์๋ง ํฌํจํ๋๋ก ํฐํธ๋ฅผ ์ธ๋ถํํฉ๋๋ค(์: text=YourBrand).์๋ฅผ ๋ค์ด, ์๋์ <link> ์์๋ fallback ํ์ ์ ๋ต์ ์ฌ์ฉํ๋ฉฐ โYourBrandโ ํ
์คํธ์ ํฌํจ๋ ๋ฌธ์๋ง ๋ค์ด๋ก๋ํฉ๋๋ค.
<link
href="https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital@0;1&text=YourBrand&display=fallback"
rel="stylesheet"
/>๋ค์์ ์๋ธ์ ๋ WOFF2 ํ์ผ์ ๋ชจ์ต์ ๋๋ค(์์ ์ธ๊ธํ FontDrop! ์ฑ์์ ๊ฐ์ ธ์์ต๋๋ค.) ๋ณด์๋ค์ํผ, ์์ฒญํ ๊ธ๋ฆฌํ๋ง ํฌํจ๋์ด ์์ต๋๋ค(๋๋ฌธ์์ ์๋ฌธ์๋ ๊ตฌ๋ถํฉ๋๋ค).

ํฅ๋ฏธ๋กญ๊ฒ๋ text ๋งค๊ฐ๋ณ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ค์ด๋ก๋ํ CSS ํ์ผ์๋ ์์ฒญ๋ ๊ธ๋ฆฌํ์ ์ํ๋ ๋ฌธ์ ์งํฉ(์ผ๋ฐ ๋ฐ ์ดํค๋ฆญ ์คํ์ผ) ๋ ๊ฐ์ง @font-face ์ ์ธ๋ง ํฌํจ๋ฉ๋๋ค.

์ด์ ๊ตฌ๊ธ API๊ฐ ๋ถํ์ํ @font-face ์ ์ธ์ ๋ฐฉ์งํ๊ธฐ ์ํด ๋ชจ๋ ๋ผํด ๋ฌธ์๋ฅผ text ๋งค๊ฐ๋ณ์์ ํ ๋นํ๋ ๊ฒ์ด ์ข์์ง ๊ถ๊ธํ ์ ์์ต๋๋ค.
๊ธฐ์ ์ ์ผ๋ก ๊ฐ๋ฅํ์ง๋ง, ์ด ๊ฒฝ์ฐ CSS ํ์ผ์๋ @font-face ์ ์ธ์ด ๋ ๊ฐ๋ง ํฌํจ๋ฉ๋๋ค.
URL ๋งค๊ฐ๋ณ์๋ ์ํ๋ฒณ๊ณผ ์ซ์๋ง ํ์ฉํ๋ฏ๋ก ๋ฐ์ดํ๋ ๋๋ํ์ ๊ฐ์ ํน์ ๋ฌธ์๋ ์ถ๊ฐํ ์ ์์ต๋๋ค(์ถ๊ฐํ๋ฉด ๋ธ๋ผ์ฐ์ ์์ ๋ฌด์๋ฉ๋๋ค). ๋ฐ๋ผ์ ์ด๋ฐ ๋ฌธ์๊ฐ ํ์ด์ง์ ์๋ ๊ฒฝ์ฐ(๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค), ๋ธ๋ผ์ฐ์ ๋ ๋์ฒด ํฐํธ๋ก ํด๋น ๋ฌธ์๋ฅผ ๋ก๋ํฉ๋๋ค. ๊ฒฐ๊ณผ์ ์ผ๋ก ํ ์คํธ ๋ธ๋ก์ด โ์ฝ๊ฐโ ์ด์ํด ๋ณด์ด๋ฉฐ ๋ธ๋ผ์ฐ์ ๋ ์น ํฐํธ์ ๋์ฒด ํฐํธ ๋ชจ๋๋ฅผ ๋ก๋ํ๊ฒ ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ๋ฐ์ ์ผ๋ก ๊ถ์ฅํ์ง ์์ต๋๋ค(์ฑ๋ฅ ํฅ์ ํจ๊ณผ๋ ํฌ์ง ์์ ๊ฒ์ ๋๋ค). ๊ทธ๋๋ ์ด ์์ ์ ์ํํ๋ ค๋ ๊ฒฝ์ฐ ์ฌ์ฉํด์ผ ํ๋ ์ฝ๋๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
<link
href="https://fonts.googleapis.com/css2?family=Anonymous+Pro:ital@0;1&text=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789&display=fallback"
rel="stylesheet"
/>๊ตฌ๊ธ์ CDN์์ Google Fonts๋ฅผ ๋ค์ด๋ก๋ํ ๋ ์ถ๊ฐํด์ผ ํ ๋ ๊ฐ์ง <link> ์์๋ CSS ํ์ผ์ฉ fonts.googleapis.com ๋ฐ WOFF2 ํ์ผ์ฉ fonts.gstatic.com์ ๋ํ ์ฌ์ ์ฐ๊ฒฐ(preconnect) ๋งํฌ์
๋๋ค.
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />์ฌ์ ์ฐ๊ฒฐ(preconnect)์ ํ์ด์ง ๋ ๋๋ง ๊ณผ์ ์์ ์ธ๋ถ ๋๋ฉ์ธ๊ณผ์ HTTP ์ฐ๊ฒฐ์ ๋ฏธ๋ฆฌ ์ค์ ํด ํ์ํ ๋ ์ฆ์ ์ฌ์ฉํ ์ ์๋๋ก ํ๋ ๋ฆฌ์์ค ํํธ์ ๋๋ค. ๊ตฌ๊ธ์ CDN์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํ๋ฉด ํฐํธ ๋ก๋ฉ ์๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
๋ ๋ฒ์งธ <link> ํ๊ทธ์๋ CORS ์ฐ๊ฒฐ์ ํตํด ํฐํธ ํ์ผ์ ์์ฒญํ ์ ์๋๋ก crossorigin ์์ฑ๋ ํฌํจ๋ฉ๋๋ค.
ํฐํธ ๋ ๋๋ง ์๋๋ฅผ ๋ ๋์ด๊ธฐ ์ํด ์๋ฒ์์ ์ฌ์ ์ฐ๊ฒฐ ํ ๊ฐ์ฅ ์ค์ํ ํฐํธ ํ์ผ์ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ๊ฒ๋ ๊ณ ๋ คํ ์ ์์ต๋๋ค. Preload๋ ๋ฆฌ์์ค ํ์ผ์ ์ฌ์ ์ ๋ค์ด๋ก๋ํ ์ ์๊ฒ ํ๋ ๋ฆฌ์์ค ํํธ์ ๋๋ค.
์น ํฐํธ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ๊ฒ์ ์ฝ๊ฐ ๋ ผ๋์ ์ฌ์ง๊ฐ ์๋๋ฐ, ์ผ๋ถ ๊ฐ๋ฐ์๋ ํ์ด์ง์์ 10๊ฐ์ ํฐํธ ํ์ผ์ ๋ฏธ๋ฆฌ ๋ก๋ํ๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์ ๋๋ค. ๊ตฌ๊ธ์ web.dev ๋ฌธ์์์๋ ๋๋ฌด ๋ง์ ์น ํฐํธ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ๊ฒ์ ๊ถ์ฅํ์ง ์์ต๋๋ค. ์ด๋ โ๋ค๋ฅธ ๋ฆฌ์์ค๋ฅผ ๋ก๋ํ๋ ๋ฐ ์ฌ์ฉํ ๋ธ๋ผ์ฐ์ ๋ฆฌ์์ค๋ฅผ ์ฐจ์งํ๊ธฐ ๋๋ฌธโ์ ๋๋ค.
ํ์ง๋ง ํ์ด์ง์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉํ๋ ํฐํธ ํ์ผ ํ๋ ๊ฐ๋ฅผ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ๊ฒ์ ํ์ด์ง ๋ก๋ ์๊ฐ์ ๋จ์ถํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์๋ฅผ ๋ค์ด, <body> ํ
์คํธ์ ์ ๋ชฉ์ ์ฌ์ฉํ๋ ํฐํธ ํ์ผ์ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค. ์๋์ ์ฝ๋ ์ค๋ํซ์ Anonymous Pro ํฐํธ์ ์ผ๋ฐ ๋ฐ ๊ตต์ ์คํ์ผ์ ๋ฏธ๋ฆฌ ๋ก๋ํฉ๋๋ค(<head> ์น์
์ preconnect ํํธ ์๋์ ์ถ๊ฐํ์ธ์).
<!-- Anonymous Pro Regular -->
<link
rel="preload"
href="https://fonts.gstatic.com/s/anonymouspro/v21/rP2Bp2a15UIB7Un-bOeISG3pHls29Q.woff2"
as="font"
type="font/woff2"
crossorigin
/>
<!-- Anonymous Pro Bold -->
<link
rel="preload"
href="https://fonts.gstatic.com/s/anonymouspro/v21/rP2cp2a15UIB7Un-bOeISG3pFuAT4C7c7Q.woff2"
as="font"
type="font/woff2"
crossorigin
/>WOFF2 ํ์ผ์ URL์ ๊ฐ์ ธ์ค๋ ค๋ฉด, ๊ฐ๋ฐ์ ๋๊ตฌ์ ๋คํธ์ํฌ ํญ์ ์ด๊ณ ์ฌ์ดํธ๋ฅผ ๋ก๋ํ ํ ๋ชฉ๋ก์์ ํฐํธ๋ฅผ ์ฐพ์ ํค๋ ํญ์์ URL์ ๋ณต์ฌํฉ๋๋ค.

์น์ฌ์ดํธ์ Adobe Fonts๋ฅผ ์ถ๊ฐํ๋ ค๋ฉด Adobe Fonts ์น์ฌ์ดํธ์์ ์น ํ๋ก์ ํธ๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค.
๋ค์์ Adobe ์น ํ๋ก์ ํธ์์ ํต์ฌ ์น ๋ฐ์ดํ ๋ฐ ๊ธฐํ ์ฑ๋ฅ ์งํ๋ฅผ ์ํด Adobe ํฐํธ๋ฅผ ์ต์ ํํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ Adobe์ ๊ฐ์ด๋์ ๋๋ค.
๋ํ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ์ผ๋ก Adobe ์๋ฒ์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํ๋ ๊ฒ๋ ์ข์ต๋๋ค.
<link rel="preconnect" href="https://use.typekit.net" crossorigin />
<link rel="preconnect" href="https://p.typekit.net" crossorigin />Adobe Fonts๊ฐ ํ๋์ ์๋ฒ์์๋ง ๋ค์ด๋ก๋๋๋ฉด(๋ ๊ฑฐ์ ์๋น์ค์ ํ์ ๋๋ฉ์ธ์ use.typekit.net, ์ ์น ํฐํธ ์๋น์ค์ ํ์ ๋๋ฉ์ธ์ p.typekit.net), ํด๋น preconnect ํํธ๋ง ์ถ๊ฐํ์ธ์(๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ ๋๋ DebugBear ์ฑ์์ ํ์ธ ๊ฐ๋ฅํฉ๋๋ค).
Google Fonts์ ๋ง์ฐฌ๊ฐ์ง๋ก ํฐํธ ์๋ฒ์ ๋ฏธ๋ฆฌ ์ฐ๊ฒฐํ ํ ๊ฐ์ฅ ์ค์ํ ํฐํธ ํ์ผ์ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ ๊ฒ์ด ์ข์ต๋๋ค(์์ ์ธ๊ธํ ์ฝ๋ ์ค๋ํซ์ ์ฌ์ฉํ ์ ์์ผ๋ฉฐ URL๋ง ๋ณ๊ฒฝํ๋ฉด ๋ฉ๋๋ค).
์น์ฌ์ดํธ์์ ํฐํธ๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ์ฑ๋ฅ๊ณผ ๋ฏธ์ ์์ ์ฌ์ด์ ์ ์ ํ ๊ท ํ์ ์ฐพ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ด๋ ์ข์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ํ์์ ์ด์ง๋ง, ์ถฉ๋ถํ์ง ์์ต๋๋ค.
๋น ๋ฅด๊ฒ ๋ก๋๋๋ ํฐํธ๋ฅผ ์ ๊ณตํ๋ ค๋ฉด ๋ค์๊ณผ ๊ฐ์ ์น ์ฑ๋ฅ ๋ชจ๋ฒ ์ฌ๋ก ์ค ํ๋ ์ด์์ ๊ตฌํํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
์ต์์ ๊ฒฐ๊ณผ๋ฅผ ์ป๊ธฐ ์ํด์๋ ์น ์ฑ๋ฅ ๋ถ์ ๋๊ตฌ(์: DebugBear)๋ฅผ ์ฌ์ฉํด ๊ฐ์ฅ ์ค์ํ ํ์ด์ง๋ฅผ ๋ชจ๋ํฐ๋งํ๋ฉด ๊ณ ์ ํ ์ฑ๋ฅ ๋ฌธ์ ์ ๋ณ๋ชฉ ํ์์ ๊ฐ์งํ๊ณ ์์ ํ ์ ์์ต๋๋ค.
DebugBear๋ก ์ฑ๋ฅ ๋ถ์์ ์์ํ๋ ๋ฐฉ๋ฒ์๋ ์ธ ๊ฐ์ง๊ฐ ์์ผ๋ฉฐ ๋ชจ๋ ๋ฌด๋ฃ์ ๋๋ค.
๋ฌด๋ฃ ์ฒดํ์ ํตํด ์ ์ธ๊ณ ์ฌ๋ฌ ์์น์์ ์๋ฎฌ๋ ์ด์ (๋๋ ์คํ์ค) ํ ์คํธ๋ฅผ ์ค์ ํ๊ณ HTML์ ๊ฒฝ๋ ์ค์ฌ์ฉ์ ๋ชจ๋ํฐ๋ง(RUM) ์คํฌ๋ฆฝํธ๋ฅผ ์ถ๊ฐํด ์ค์ ์ฌ์ฉ์๊ฐ ๋งค์ผ ์น์ฌ์ดํธ์์ ๊ฒช๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ํ์ ํ ์ ์์ต๋๋ค.
๐ ํ๊ตญ์ด๋ก ๋ ํ๋ฐํธ์๋ ์ํฐํด์ ๋น ๋ฅด๊ฒ ๋ฐ์๋ณด๊ณ ์ถ๋ค๋ฉด Korean FE Article(https://kofearticle.substack.com/)์ ๊ตฌ๋ ํด์ฃผ์ธ์!