(๋ฒˆ์—ญ) ํฐํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋ฅผ ์œ„ํ•œ ๊ถ๊ทน์ ์ธ ๊ฐ€์ด๋“œ

์›๋ฌธ : The Ultimate Guide to Font Performance Optimization

ํฐํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™”๋Š” ์›น์‚ฌ์ดํŠธ์˜ ํฐํŠธ ๋กœ๋”ฉ ์†๋„๋ฅผ ๋†’์ด๊ณ  ๋” ๋ถ€๋“œ๋Ÿฝ๊ฒŒ ๋ Œ๋”๋ง ๋˜๋„๋ก ํ•˜๋Š” ๋‹ค์–‘ํ•œ ์›น ๊ฐœ๋ฐœ ๊ธฐ๋ฒ•์„ ๋งํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ตœ์ ํ™”์—๋Š” ์‹ ์ค‘ํ•œ ํฐํŠธ ์„ ํƒ, ์„ฑ๋Šฅ์ด ์šฐ์ˆ˜ํ•œ ํฐํŠธ ํฌ๋งท ์‚ฌ์šฉ, ์ž์ฒด ํ˜ธ์ŠคํŒ…, ์ตœ์ ํ™”๋œ @font-face ์„ ์–ธ, ํฐํŠธ ๋””์Šคํ”Œ๋ ˆ์ด ์ „๋žต ๋“ฑ์ด ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์›น์‚ฌ์ดํŠธ์— ํ‘œ์‹œ๋˜๋Š” ํฐํŠธ๋ฅผ ์ตœ์ ํ™”ํ•˜๋ฉด ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋นจ๋ผ์ง€๊ณ  ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์ด ํ–ฅ์ƒ๋˜๋ฉฐ, ์ฝ”์–ด ์›น ๋ฐ”์ดํƒˆ(Core Web Vitals) ๊ฐ™์€ ์„ฑ๋Šฅ ์ง€ํ‘œ์—์„œ๋„ ๊ธ์ •์ ์ธ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ํฐํŠธ ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๋ฏธ์ ์ธ ๋ถ€๋ถ„์ด๋‚˜ ์ฐฝ์˜์„ฑ์„ ํฌ์ƒํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๊ณ ์œ ํ•œ ๋ธŒ๋žœ๋“œ ์ •์ฒด์„ฑ์„ ๋งŒ๋“ค์–ด ๋‚ด๋Š”๋ฐ ์–ด๋ ค์›€์„ ์ค„ ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ปค์Šคํ…€ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํŠนํžˆ ์‹ ์ค‘ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์›น ์„ธ์ดํ”„ ํฐํŠธ์™€ ์›น ํฐํŠธ์˜ ์ฐจ์ด์ 

ํฐํŠธ ์„ฑ๋Šฅ ์ตœ์ ํ™”์˜ ๊ธฐ์ˆ ์  ์„ธ๋ถ€์‚ฌํ•ญ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „์—, ์šฐ์„  ํฐํŠธ ์šฉ์–ด์—์„œ ์ค‘์š”ํ•œ ์‚ฌํ•ญ์ธ ์›น ์„ธ์ดํ”„ ํฐํŠธ์™€ ์›น ํฐํŠธ์˜ ์ฐจ์ด์ ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์ด ๋‘ ํฐํŠธ๋Š” ๋ชจ๋‘ ๋””์ง€ํ„ธ ํฐํŠธ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒโ€ฆ

์›น ์„ธ์ดํ”„ ํฐํŠธ๋Š” ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์— ์„ค์น˜๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค

์›น ์„ธ์ดํ”„ ํฐํŠธ๋Š” ์‹œ์Šคํ…œ ํฐํŠธ์™€ ๋™์˜์–ด๋กœ ์ž˜๋ชป ์‚ฌ์šฉ๋˜๊ธฐ๋„ ํ•˜์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ์šด์˜ ์ฒด์ œ์— ๋ฏธ๋ฆฌ ์„ค์น˜๋œ ํฐํŠธ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค. ๋•๋ถ„์— ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น์—์„œ ํฐํŠธ ํŒŒ์ผ์ด๋‚˜ ๊ด€๋ จ CSS๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ํ•„์š”๊ฐ€ ์—†์–ด ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„๊ณผ LCP, INP ๋“ฑ์˜ ์„ฑ๋Šฅ ์ง€ํ‘œ๊ฐ€ ํ–ฅ์ƒ๋ฉ๋‹ˆ๋‹ค.

์‹œ์Šคํ…œ ํฐํŠธ๋Š” ์›น ์„ธ์ดํ”„ ํฐํŠธ์˜ ์ผ๋ถ€๋กœ, ์šด์˜ ์ฒด์ œ์—์„œ UI ์š”์†Œ๋ฅผ ํ‘œ์‹œํ•  ๋•Œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ๋งŒ์•ฝ ์›น์‚ฌ์ดํŠธ์—์„œ ์‹œ์Šคํ…œ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋ฉด(๋ฐฉ๋ฒ•์€ ์•„๋ž˜์—์„œ ์ฐธ์กฐ) ์‚ฌ์šฉ์ž์—๊ฒŒ ์ต์ˆ™ํ•œ ๋А๋‚Œ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น ์„ธ์ดํ”„ ํฐํŠธ์˜ ๊ฐ€์žฅ ํฐ ๋‹จ์ ์€ ๋งŽ์€ ๊ฒฝ์šฐ ๋””์ž์ธ์ด ํ‰๋ฒ”ํ•ด ๋ณด์ด๊ณ  ์ง€๋‚˜์น˜๊ฒŒ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค๋Š” ์ ์ž…๋‹ˆ๋‹ค. ์›น์‚ฌ์ดํŠธ์— ๋” ๋…์ฐฝ์ ์ด๊ณ  ๊ธฐ์–ต์— ๋‚จ๋Š” ๋А๋‚Œ์„ ์ œ๊ณตํ•˜๋ ค๋ฉด ์ปค์Šคํ…€ ์›น ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

์›น ํฐํŠธ๋Š” ์ธํ„ฐ๋„ท์—์„œ ๋‹ค์šด๋กœ๋“œ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค

์›น ํฐํŠธ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์‚ฌ์šฉ์ž์˜ ์šด์˜ ์ฒด์ œ์— ๊ธฐ๋ณธ ์„ค์น˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ์ปค์Šคํ…€ ํฐํŠธ์ž…๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ํฐํŠธ ํŒŒ์ผ๊ณผ ๊ด€๋ จ๋œ CSS ํŒŒ์ผ์„ ์ธํ„ฐ๋„ท์—์„œ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์›น ํฐํŠธ๋Š” Google์˜ CDN ๊ฐ™์€ ์„œ๋“œํŒŒํ‹ฐ ๋„๋ฉ”์ธ์— ํ˜ธ์ŠคํŒ…ํ•˜๊ฑฐ๋‚˜ ์ž์ฒด ๋„๋ฉ”์ธ์— ํ˜ธ์ŠคํŒ…ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น ํฐํŠธ์€ ์ธํ„ฐ๋„ท์—์„œ ๋‹ค์šด๋กœ๋“œํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์›น ์„ธ์ดํ”„ ๊ธ€๊ผด๋ณด๋‹ค ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋กœ๋“œํ•˜๋Š” ๋ฐ ์‹œ๊ฐ„์ด ์˜ค๋ž˜ ๊ฑธ๋ฆฝ๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹ค์–‘ํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™” ๊ธฐ์ˆ ์„ ์ ์šฉํ•ด ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ถฉ๋ถ„ํžˆ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด์— ๋Œ€ํ•œ ๋ฐฉ๋ฒ•์€ ์•„๋ž˜์—์„œ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

์›น ํฐํŠธ๋Š” ์›น์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ๊ณผ ๋ถ„์œ„๊ธฐ๋ฅผ ๋”์šฑ ํ–ฅ์ƒํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์ด๋ฅผ ์œ„ํ•ด์„œ๋Š” ์ƒ๋‹นํ•œ ๋””์ž์ธ ๊ฐ๊ฐ์ด ์š”๊ตฌ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด, ํฐํŠธ๊ฐ€ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„ ์ •๋˜์ง€ ๋ชปํ•ด ์›น ์„ธ์ดํ”„ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ–ˆ์„ ๋•Œ๋ณด๋‹ค ์›น์‚ฌ์ดํŠธ์˜ ๋””์ž์ธ์ด ์˜คํžˆ๋ ค ์ €ํ•˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ปค์Šคํ…€ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š๋‹ค๋ฉด ์›น ์„ธ์ดํ”„ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”

์„ฑ๋Šฅ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์›น ์„ธ์ดํ”„ ํฐํŠธ๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ตœ์ ์˜ ์„ ํƒ์ž…๋‹ˆ๋‹ค. ์•„๋ž˜์—์„œ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋กœ์ปฌ ํฐํŠธ๋ฅผ ๋กœ๋“œํ•˜๋Š” ์—ฌ๋Ÿฌ ์ƒํ™ฉ๊ณผ ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด์„œ ๋””์ž์ธ ์ž์œ ๋„๋ฅผ ์œ ์ง€ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

ํฐํŠธ ํŒจ๋ฐ€๋ฆฌ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

CSS์—์„œ ํฐํŠธ ํŒจ๋ฐ€๋ฆฌ๋ฅผ ์ง€์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž์˜ ๊ธฐ๋ณธ ์„ค์ •์—์„œ ์ง€์ •ํ•œ ๊ธฐ๋ณธ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ๊ตฌ๊ธ€ ํฌ๋กฌ์—์„œ๋Š” ๊ธฐ๋ณธ ๋ธŒ๋ผ์šฐ์ € ํฐํŠธ(ํ‘œ์ค€ ํฐํŠธ)๋ฅผ ํฐํŠธ ์„ค์ • ํŽ˜์ด์ง€(chrome://settings/fonts)์—์„œ ์ฐพ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๊ธ€ ํฌ๋กฌ ์‚ฌ์šฉ์ž ์„ค์ •์˜ ๊ธฐ๋ณธ ๊ธ€๊ผด

์ผ๋ฐ˜ ํฐํŠธ(Generic Font) ์ด๋ฆ„๋งŒ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

CSS Font Module Level 4 ์›น ํ‘œ์ค€์— ๋”ฐ๋ฅด๋ฉด, font-family ์†์„ฑ์˜ ๊ฐ’์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์„ฏ ๊ฐ€์ง€์˜ ์ผ๋ฐ˜ ํฐํŠธ ์ด๋ฆ„์ด ์žˆ์œผ๋ฉฐ, ๊ฐ๊ฐ์˜ ์ •ํ™•ํ•œ ์ •์˜๋ฅผ ์œ„ํ•œ ๋ฏธ๋ฆฌ ์ •์˜๋œ ํŠน์„ฑ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ž์„ธํ•œ ๋‚ด์šฉ์€ (๋ฌธ์„œ๋ฅผ ์ฐธ๊ณ ํ•˜์„ธ์š”).

  • serif
  • sans-serif
  • monospace
  • cursive
  • fantasy

์˜ˆ๋ฅผ ๋“ค์–ด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ CSS ๊ทœ์น™์„ ์‚ฌ์šฉํ•ด ๋กœ์ปฌ์—์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” serif ํฐํŠธ๋ฅผ ๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

body {
  font-family: serif;
}

์ผ๋ฐ˜ ํฐํŠธ ์ด๋ฆ„์€ ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฅ˜ ๋ฐ ๋ฒ„์ „, ์šด์˜ ์ฒด์ œ, ๋กœ์ปฌ์— ์„ค์น˜๋œ ํฐํŠธ, ์‚ฌ์šฉ์ž ๊ธฐ๋ณธ ์„ค์ •, ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉ๋œ ์œ ๋‹ˆ์ฝ”๋“œ ๋ฒ”์œ„ ๋“ฑ ๋‹ค์–‘ํ•œ ์š”์†Œ์— ๋”ฐ๋ผ ์„œ๋กœ ๋‹ค๋ฅธ ํฐํŠธ๋กœ ๋งคํ•‘๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, Windows 10์˜ Firefox ๋ธŒ๋ผ์šฐ์ €์—์„œ๋Š” sans-serif์™€ fantasy๊ฐ€ ๋ชจ๋‘ Arial๋กœ ๋งคํ•‘๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์Œ์€ Windows 10์—์„œ ํฌ๋กฌ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋™์ผํ•œ ํ…์ŠคํŠธ๋ฅผ 5๊ฐ€์ง€ ์ผ๋ฐ˜ ๊ธ€๊ผด๋กœ ๋ Œ๋”๋ง ํ•˜๋Š” ๋ฐฉ๋ฒ•์˜ ์˜ˆ์‹œ์ž…๋‹ˆ๋‹ค. (์‚ฌ์šฉ ์ค‘์ธ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ์ผ๋ฐ˜ ๊ธ€๊ผด์„ ํ™•์ธํ•˜๋ ค๋ฉด ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฐ๋ชจ๋ฅผ ์—ด๊ฑฐ๋‚˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜์„ธ์š”.)

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)๊ฐ€ ์ƒ์„ฑํ•œ ์š”์ฒญ ์›Œํ„ฐํด์„ ๋ณด๋ฉด, ํŽ˜์ด์ง€ ๋ Œ๋”๋ง์ด ๋‹ค์„ฏ ๊ฐœ์˜ ํฐํŠธ ํŒŒ์ผ์ด ๋ชจ๋‘ ๋‹ค์šด๋กœ๋“œ๋  ๋•Œ๊นŒ์ง€ ์ฐจ๋‹จ๋จ์„ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

5๊ฐœ์˜ ์ปค์Šคํ…€ ๊ธ€๊ผด์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ๋ชจ ์›Œํ„ฐํด ์š”์ฒญํ•˜๊ธฐ

๋˜ํ•œ, ๋Œ€์ฒด ํฐํŠธ๊ฐ€ ์ปค์Šคํ…€ ํฐํŠธ๋กœ ๊ต์ฒด๋  ๋•Œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ๋ณ€ํ™”๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋Š” ๋ˆ„์  ๋ ˆ์ด์•„์›ƒ ์ด๋™(Cumulative Layout Shift) ๊ฒฐ๊ณผ์— ์˜ํ–ฅ์„ ์ค„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์•„๋ž˜ ๋ฐ๋ชจ๋ฅผ ํ…Œ์ŠคํŠธํ•˜๋ ค๋ฉด ๋ฌด๋ฃŒ ์›น์‚ฌ์ดํŠธ ์†๋„ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋ฅผ ์—ด๊ณ  https://www.annalytic.com/demos/multiple-web-fonts-test/ URL์„ ํ…Œ์ŠคํŠธํ•ด ๋ณด์„ธ์š”.

5๊ฐœ์˜ ์ปค์Šคํ…€ ๊ธ€๊ผด์„ ๋‹ค์šด๋กœ๋“œํ•˜๋Š” ๋ฐ๋ชจ์— ๋Œ€ํ•œ CLS ๋ถ„์„

์›น ํฐํŠธ๋ฅผ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•˜์„ธ์š”

์›น ํฐํŠธ๋ฅผ ์ž์ฒด ๋„๋ฉ”์ธ์— ํ˜ธ์ŠคํŒ…(์ž์ฒด ํ˜ธ์ŠคํŒ…)ํ•˜๋ฉด ํŽ˜์ด์ง€ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์›น ํฐํŠธ๋ฅผ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•˜๋ ค๋ฉด ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • ์„œ๋ฒ„์— ํฐํŠธ ํŒŒ์ผ์„ ์—…๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • CSS์— ๊ด€๋ จ๋œ @font-face ์„ ์–ธ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค(์•„๋ž˜์—์„œ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค).

์›น ํฐํŠธ๋ฅผ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•จ์œผ๋กœ์จ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์„ฑ๋Šฅ ํ–ฅ์ƒ์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์š”์ธ์—์„œ ๋น„๋กฏ๋ฉ๋‹ˆ๋‹ค.

  • ์™ธ๋ถ€ ์„œ๋ฒ„์— ์—ฐ๊ฒฐํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.(์˜ˆ: Google Font๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด ํฐํŠธ ํŒŒ์ผ์šฉ๊ณผ CSS์šฉ์œผ๋กœ ๋‘ ๋ฒˆ์˜ ์™ธ๋ถ€ ์—ฐ๊ฒฐ์ด ํ•„์š”) ์ด๋Š” Time To First Byte(TTFB)๋ฅผ ๋‹จ์ถ•์‹œํ‚ต๋‹ˆ๋‹ค.
  • @font-face ์„ ์–ธ์„ ์ตœ์ ํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋ฐฉ๋ฒ•์€ ์•„๋ž˜์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค).
  • ํฐํŠธ๋Š” ์ •์  ์ž์‚ฐ์ด๋ฏ€๋กœ, ์ด๋ฅผ ๊ธ€๋กœ๋ฒŒ ์ฝ˜ํ…์ธ  ์ „์†ก ๋„คํŠธ์›Œํฌ(CDN)์—์„œ ๋‹ค์šด๋กœ๋“œํ•˜์—ฌ ๋Œ€๊ธฐ ์‹œ๊ฐ„์„ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ค๋Š˜๋‚  ๋Œ€๋ถ€๋ถ„์˜ CDN์€ ์ž์ฒด ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•˜๋„๋ก ํ—ˆ์šฉํ•ฉ๋‹ˆ๋‹ค).

์ž์ฒด ํ˜ธ์ŠคํŒ… ์›น ํฐํŠธ์˜ ๋˜ ๋‹ค๋ฅธ ์žฅ์ ์€ ๋ฐฉ๋ฌธ์ž์˜ IP ์ฃผ์†Œ๊ฐ€ ์ œ3์ž์—๊ฒŒ ๊ณต์œ ๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ์ ์—์„œ ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ์— ์œ ๋ฆฌํ•˜๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ณผ๊ฑฐ์—๋Š” ์ž์ฒด ํ˜ธ์ŠคํŒ…์ด ๋น ๋ฅธ ์„œ๋ฒ„๋‚˜ CDN์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†๋Š” ์›น์‚ฌ์ดํŠธ์— ๊ถŒ์žฅ๋˜์ง€ ์•Š์•˜์œผ๋‚˜, ์ตœ๊ทผ์—๋Š” HTTP ์•„์นด์ด๋ธŒ์˜ Web Almanac 2022์— ๋”ฐ๋ฅด๋ฉด โ€์บ์‹œ ํŒŒํ‹ฐ์…”๋‹ ๋„์ž… ์ดํ›„๋กœ ํ˜ธ์ŠคํŒ… ์„œ๋น„์Šค ์‚ฌ์šฉ์ด ๋” ์ด์ƒ ์„ฑ๋Šฅ ์ด์ ์„ ์ œ๊ณตํ•˜์ง€ ์•Š๋Š”๋‹คโ€๊ณ  ์–ธ๊ธ‰๋˜์–ด, ํ˜„์žฌ๋Š” ์›น ํฐํŠธ์˜ ์ž์ฒด ํ˜ธ์ŠคํŒ…์ด ๋ณดํŽธ์ ์œผ๋กœ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.

์›น ์„ฑ๋Šฅ์ƒ์˜ ์ด์ ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ์›น ๊ธ€๊ผด์„ ์ง์ ‘ ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ๊ฐ€๋Šฅํ•˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ผ์ด์„ ์Šค ์ œํ•œ ๋•Œ๋ฌธ์ธ๋ฐ, ์˜ˆ๋ฅผ ๋“ค์–ด Adobe Fonts์˜ ๊ฒฝ์šฐ๊ฐ€ ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋น„์šฉ์„ ์ง€๋ถˆํ•  ์˜์‚ฌ๊ฐ€ ์žˆ๋‹ค๋ฉด ์ผ๋ถ€ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

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 ํŒจํ‚ค์ง€ ๋“ฑ ๋‹ค๋ฅธ ์†Œ์Šค์—์„œ๋„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Fonts๋ฅผ ์ž์ฒด ํ˜ธ์ŠคํŒ…ํ•˜๋Š” ๋ฐฉ๋ฒ•

Mario Ranftl์ด ๋งŒ๋“  Google Web Fonts Helper ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ž์ฒด ํ˜ธ์ŠคํŒ…๋œ Google Fonts๋ฅผ ์›น์‚ฌ์ดํŠธ์— ์‰ฝ๊ฒŒ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  @font-face ๊ทœ์น™์„ ์ƒ์„ฑํ•˜๋ฉฐ, ํฐํŠธ ํŒŒ์ผ์„ WOFF2 ํ˜•์‹์œผ๋กœ ๋ณ€ํ™˜ํ•ด ์ค๋‹ˆ๋‹ค(์•„๋ž˜์—์„œ WOFF2์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค).

Google Web Fonts Helper๋Š” ์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•˜๊ณ ์ž ํ•˜๋Š” ์Šคํƒ€์ผ๊ณผ ๋ฌธ์ž ์„ธํŠธ๋ฅผ ์„ ํƒํ•˜์—ฌ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Google Web Fonts Helper, Roboto, ๊ธ€๊ผด ์Šคํƒ€์ผ ๋ฐ ๋ฌธ์ž ์„ธํŠธ ํฌํ•จ

CSS์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•˜๋Š” @font-face ๊ทœ์น™์„ ๋ณต์‚ฌํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

ํŽ˜์ด์ง€ ํ•˜๋‹จ์—์„œ ZIP ํŒŒ์ผ๋กœ ํฐํŠธ ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋‹ค์šด๋กœ๋“œ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์••์ถ•์„ ํ’€๊ณ  ์„œ๋ฒ„์— ์—…๋กœ๋“œํ•˜์„ธ์š”.

Google Web Fonts Helper, ZIP ๋‹ค์šด๋กœ๋“œ

์ž์ฒด ํ˜ธ์ŠคํŒ… ์›น ํฐํŠธ๋ฅผ WOFF2 ํฌ๋งท์œผ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ

ํ˜„์žฌ 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;
}

์•„๋ž˜ ํฌ๋กฌ ๊ฐœ๋ฐœ์ž ๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋Š” ์ฆ๊ฑฐ์ž…๋‹ˆ๋‹ค(ํ›„์ž์˜ ์˜ˆ์‹œ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์ผ๋ฐ˜ ๊ธ€๊ผด ํŒŒ์ผ์€ ๋‹ค์šด๋กœ๋“œ๋˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค).

Anonymous Pro ์ดํƒค๋ฆญ์ฒด ๋‹ค์šด๋กœ๋“œ

๋‘ ํฐํŠธ ํŒŒ์ผ ๋ชจ๋‘๋ฅผ ๋‹ค์šด๋กœ๋“œํ•˜๋ ค๋ฉด, ์•„๋ž˜์™€ ๊ฐ™์ด 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

1. 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 ํŒŒ์ผ์ด ๋‹ค์šด๋กœ๋“œ๋˜๋ฉฐ ๊ทธ๋ฆฌ์Šค ๋ฐ ๊ธฐ๋ณธ ๋ผํ‹ด ๋ฌธ์ž๋งŒ ํฌํ•จํ•˜๊ณ , ํ‚ค๋ฆด ๋ฐ ํ™•์žฅ ๋ผํ‹ด ๋ฌธ์ž๋Š” ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

Anonymous Pro ๊ทธ๋ฆฌ์Šค ๋ฌธ์ž์™€ ๋ผํ‹ด ๋ฌธ์ž ์„ธํŠธ

์›น์‚ฌ์ดํŠธ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฌธ์ž๋งŒ ํฌํ•จ๋œ ์„œ๋ธŒ์„ธํŒ… ํฐํŠธ ํŒŒ์ผ์„ ์ƒ์„ฑํ•˜๋ฉด ์„ฑ๋Šฅ์„ ๋”์šฑ ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ๋กœ๊ณ ์—๋งŒ ์‚ฌ์šฉํ•˜๋Š” ๋””์Šคํ”Œ๋ ˆ์ด ๊ธ€๊ผด์— ์ข‹์€ ์†”๋ฃจ์…˜์ด ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค). ์ด๋ฅผ ์œ„ํ•ด Peter Mรผller๊ฐ€ ๋งŒ๋“  subfont์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ผ๋ถ€ ํฐํŠธ ๋ผ์ด์„ ์Šค๋Š” ์„œ๋ธŒ์„ธํŒ…์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ Google Fonts๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” SIL ์˜คํ”ˆ ํฐํŠธ ๋ผ์ด์„ ์Šค๋Š” ์ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. Jeff Frankl๊ฐ€ ์ œ์ž‘ํ•œ subsetting.xyz ์‚ฌ์ดํŠธ์—์„œ ๋‹ค๋ฅธ ํฐํŠธ ๋ผ์ด์„ ์Šค ์ •๋ณด๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. 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 ๊ฐ’์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

fullName๊ณผ postScriptName

3. font-display ๋””์Šคํฌ๋ฆฝํ„ฐ

font-display ๋””์Šคํฌ๋ฆฝํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ํฐํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ๋•Œ๊นŒ์ง€ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณด๊ฒŒ ๋  ํ…์ŠคํŠธ ์Šคํƒ€์ผ์„ ๊ฒฐ์ •ํ•˜๋Š” ๋„ค ๊ฐ€์ง€ ๊ธฐ๋ณธ ํฐํŠธ ํ‘œ์‹œ ์ „๋žต์„ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

์•ˆํƒ€๊น๊ฒŒ๋„, ํ˜„์žฌ ์กด์žฌํ•˜๋Š” ํฐํŠธ ํ‘œ์‹œ ์ „๋žต ์ค‘ ์–ด๋А ๊ฒƒ๋„ ์™„๋ฒฝํ•œ ์ „๋žต์€ ์—†์–ด์„œ ์–ด๋А ์ •๋„๋Š” ์„ฑ๋Šฅ์ด๋‚˜ ๋ฏธ์  ๊ฐ๊ฐ(๋˜๋Š” ๋‘˜ ๋‹ค)์„ ํฌ์ƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์›น ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ ๊ธฐ๋ณธ์ ์œผ๋กœ ๋‹ค์Œ ์„ธ ๊ฐ€์ง€ ํ‘œ์‹œ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

  • FOIT(Flash Of Invisible Text) โ€“ ์›น ํฐํŠธ๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋  ๋•Œ๊นŒ์ง€ ํ…์ŠคํŠธ๊ฐ€ ๋ณด์ด์ง€ ์•Š๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • FOUT(Flash Of Unstyled Text) โ€“ ์›น ํฐํŠธ๊ฐ€ ๋‹ค์šด๋กœ๋“œ๋  ๋•Œ๊นŒ์ง€ ๋Œ€์ฒด ํฐํŠธ๋กœ ํ…์ŠคํŠธ๊ฐ€ ํ‘œ์‹œ๋ฉ๋‹ˆ๋‹ค.
  • ์›น ๊ธ€๊ผด์ด ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. - ์›น ํฐํŠธ๊ฐ€ ์ œ ๋•Œ ๋„์ฐฉํ•˜์ง€ ์•Š์œผ๋ฉด, ๋ธŒ๋ผ์šฐ์ €๋Š” ๋Œ€์ฒด ํฐํŠธ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ํ‘œ์‹œํ•ฉ๋‹ˆ๋‹ค(์ด ์ „๋žต์„ ์‚ฌ์šฉํ•  ๋•Œ ๋ธŒ๋ผ์šฐ์ €๋Š” ์‚ฌ์šฉ์ž์˜ ๋„คํŠธ์›Œํฌ ์—ฐ๊ฒฐ์—์„œ ๋‹ค์šด๋กœ๋“œ ์‹œ๊ฐ„์„ ๋ฏธ๋ฆฌ ๊ณ„์‚ฐํ•˜๋ฏ€๋กœ ์›น ํฐํŠธ๋ฅผ ์š”์ฒญํ•˜์ง€ ์•Š๋Š” ๊ฒฝ์šฐ๊ฐ€ ์ข…์ข… ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค).

FOIT์™€ FOUT๋Š” ๋ชจ๋‘ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๋ ค๋ฉด ์›น ํฐํŠธ์™€ ๋Œ€์ฒด ํฐํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์ผ์น˜์‹œํ‚ค๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค(๋‚˜์ค‘์— ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค).

font-display ๋””์Šคํฌ๋ฆฝํ„ฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๊ฐ’์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๊ฐ ๊ฐ’์€ ๊ณ ์œ ํ•œ ํฐํŠธ ํ‘œ์‹œ ์ „๋žต์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค(๊ฐ ์ „๋žต์—๋Š” ๋ธ”๋ก ๊ธฐ๊ฐ„(block period)๊ณผ ๊ต์ฒด ๊ธฐ๊ฐ„(swap period)์ด ์žˆ์œผ๋ฉฐ, ๋ธ”๋ก ๊ธฐ๊ฐ„์—๋Š” ํฐํŠธ ๋ Œ๋”๋ง์ด ์ค‘๋‹จ๋˜๊ณ , ๊ต์ฒด ๊ธฐ๊ฐ„์—๋Š” ๋Œ€์ฒด ํฐํŠธ๊ฐ€ ์›น ํฐํŠธ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค).

  • block:

    • ๋ธ”๋ก ๊ธฐ๊ฐ„: ์งง์Œ(๋ธŒ๋ผ์šฐ์ € ๊ณต๊ธ‰์—…์ฒด๋Š” CSS ํฐํŠธ ๋ชจ๋“ˆ ํ‘œ์ค€์— ๋”ฐ๋ผ 3์ดˆ๋ฅผ ๊ถŒ์žฅํ•ฉ๋‹ˆ๋‹ค)
    • ๊ต์ฒด ๊ธฐ๊ฐ„: ๋ฌดํ•œ
    • ์žฅ์ : ์ปค์Šคํ…€ ํฐํŠธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(3์ดˆ๋Š” ์ƒ๋‹นํžˆ ๊ธด ๋ธ”๋ก ๊ธฐ๊ฐ„์ด๋ฏ€๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ๋Œ€์ฒด ํฐํŠธ๋ฅผ ๋ณผ ๊ฐ€๋Šฅ์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค).
    • ๋‹จ์ : FOIT ๋ฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(๋Œ€์ฒด ๊ธ€๊ผด์€ ๋ณด์ด์ง€ ์•Š๋Š” ํ…์ŠคํŠธ์˜ ํฌ๊ธฐ๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค).
    • ๊ถŒ์žฅ ๋Œ€์ƒ: ๋งž์ถคํ˜• ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๊ฐ€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ, ๋˜๋Š” ๋กœ๊ณ ์šฉ ํ‘œ์‹œ ํฐํŠธ์™€ ๊ฐ™์ด ์งง์€ ํ…์ŠคํŠธ ๋ฌธ์ž์—ด์ด๋‚˜ ํŽ˜์ด์ง€ ํ•˜๋‹จ์˜ ํ…์ŠคํŠธ ๋ธ”๋ก์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • swap:

    • ๋ธ”๋ก ๊ธฐ๊ฐ„: ๋งค์šฐ ์งง์Œ(100ms ์ดํ•˜ ๊ถŒ์žฅ)
    • ๊ต์ฒด ๊ธฐ๊ฐ„: ๋ฌดํ•œ
    • ์žฅ์ : ํ…์ŠคํŠธ๊ฐ€ ๋Œ€์ฒด ํฐํŠธ๋กœ ์กฐ๊ธฐ์— ๋ Œ๋”๋ง๋˜๋ฉฐ ์ดํ›„์— ์ปค์Šคํ…€ ํฐํŠธ๋กœ ์ „ํ™˜๋ฉ๋‹ˆ๋‹ค.
    • ๋‹จ์ : FOUT ๋ฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ๊ถŒ์žฅ ๋Œ€์ƒ: ์ปค์Šคํ…€ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๊ฐ€ ์ค‘์š”ํ•˜๊ณ  ๊ธด ํ…์ŠคํŠธ ๋ธ”๋ก์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
  • optional:

    • ๋ธ”๋ก ๊ธฐ๊ฐ„: ๋งค์šฐ ์งง์Œ(100ms ์ดํ•˜ ๊ถŒ์žฅ)
    • ๊ต์ฒด ๊ธฐ๊ฐ„: 0
    • ์žฅ์ : ํ…์ŠคํŠธ๊ฐ€ ์›น ํฐํŠธ ๋˜๋Š” ๋Œ€์ฒด ํฐํŠธ๋กœ ์กฐ๊ธฐ์— ๋ Œ๋”๋ง๋˜๋ฉฐ, FOUT๋‚˜ FOIT ํ˜„์ƒ์ด ์—†๊ณ  ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๋‹จ์ : 100ms ๋‚ด์— ์›น ํฐํŠธ๊ฐ€ ๋„์ฐฉํ•˜์ง€ ์•Š์œผ๋ฉด ์ปค์Šคํ…€ ํฐํŠธ๊ฐ€ ํ‘œ์‹œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
    • ๊ถŒ์žฅ ๋Œ€์ƒ: ๊ธด ํ…์ŠคํŠธ ๋ธ”๋ก(์˜ˆ: <body> ํ…์ŠคํŠธ)์—์„œ ์„ฑ๋Šฅ์ด ์šฐ์„ ์ด๊ณ  ์ปค์Šคํ…€ ํƒ€์ดํฌ๊ทธ๋ž˜ํ”ผ๊ฐ€ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ ๊ถŒ์žฅ๋ฉ๋‹ˆ๋‹ค.
  • fallback:

    • ๋ธ”๋ก ๊ธฐ๊ฐ„: ๋งค์šฐ ์งง์Œ(100ms ์ดํ•˜ ๊ถŒ์žฅ)
    • ๊ต์ฒด ๊ธฐ๊ฐ„: ์งง์Œ(3์ดˆ ๊ถŒ์žฅ)
    • ์žฅ์ : ์ปค์Šคํ…€ ํฐํŠธ๊ฐ€ 3์ดˆ ์•ˆ์— ๋„์ฐฉ(์„ ํƒ ์‚ฌํ•ญ์—์„œ ์ œ๊ณตํ•˜๋Š” 100ms์™€ ๋‹ฌ๋ฆฌ)ํ•  ๊ฐ€๋Šฅ์„ฑ์ด ๋†’์•„ ํ‘œ์‹œ๋  ํ™•๋ฅ ์ด ๋†’์Šต๋‹ˆ๋‹ค.
    • ๋‹จ์ : FOUT ๋ฐ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํ•˜์ง€๋งŒ swap ์ „๋žต๋ณด๋‹ค๋Š” ๊ฐ€๋Šฅ์„ฑ์ด ์ ์Šต๋‹ˆ๋‹ค).
    • ๊ถŒ์žฅ ๋Œ€์ƒ: ๊ธด ํ…์ŠคํŠธ ๋ธ”๋ก(์˜ˆ: <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');
}

๋‹ค์–‘ํ•œ ํฐํŠธ ํ‘œ์‹œ ์ „๋žต์˜ ์ž‘๋™ ๋ฐฉ์‹์— ๋Œ€ํ•ด ์ž์„ธํžˆ ์•Œ์•„๋ณด๋ ค๋ฉด, ์›น ํฐํŠธ๋กœ ์ธํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ๊ธ€์„ ์ฐธ๊ณ ํ•˜์„ธ์š”.

4. size-adjust ๋””์Šคํฌ๋ฆฝํ„ฐ

size-adjust ๋””์Šคํฌ๋ฆฝํ„ฐ๋Š” @font-face ์„ ์–ธ์— ์ƒˆ๋กœ ์ถ”๊ฐ€๋œ ํ•ญ๋ชฉ์ด๋ฉฐ, ์ตœ์‹  ๋ฒ„์ „์˜ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ด๋ฏธ ์ง€์›๋ฉ๋‹ˆ๋‹ค. ์ด ๋””์Šคํฌ๋ฆฝํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์›น ํฐํŠธ์™€ ๋Œ€์ฒด ํฐํŠธ์˜ ํฌ๊ธฐ๋ฅผ ๋งž์ถฐ ๊ต์ฒด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํฌ๊ธฐ ์กฐ์ •์€ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋กœ ๋‹ค๋ฅธ font face์˜ ๊ธ€๋ฆฌํ”„(glyph)๋Š” ์ข…์ข… ์•ฝ๊ฐ„ ๋‹ค๋ฅธ ๋„ˆ๋น„์™€ ๋†’์ด๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ, ํฐ ํ…์ŠคํŠธ ๋ธ”๋ก์€ ํ™”๋ฉด์—์„œ ์ฐจ์ง€ํ•˜๋Š” ์˜์—ญ์ด ๋‹ฌ๋ผ์ ธ ํฐํŠธ๊ฐ€ ์ „ํ™˜๋  ๋•Œ ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ์ดˆ๋ž˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

size-adjust ๋””์Šคํฌ๋ฆฝํ„ฐ๋Š” ๊ธ€๋ฆฌํ”„์˜ ์œค๊ณฝ์„ ๋Š˜๋ฆฌ๊ฑฐ๋‚˜ ์ค„์ด๋Š” ๋ฐฐ์œจ์„ ํผ์„ผํŠธ ๊ฐ’์œผ๋กœ ์ง€์ •ํ•ฉ๋‹ˆ๋‹ค. ์›น ํฐํŠธ์™€ ๋Œ€์ฒด ํฐํŠธ์˜ ์ •ํ™•ํ•œ ํฌ๊ธฐ๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ฐฐ์œจ์„ ์ˆ˜๋™์œผ๋กœ ๊ณ„์‚ฐํ•˜๊ฑฐ๋‚˜, Brian Louis Ramirez์˜ Fallback Font Generator์™€ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ๊ณ„์‚ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์•„๋ž˜๋Š” Anonymous Pro ์›น ํฐํŠธ์™€ Courier New ๋Œ€์ฒด ํฐํŠธ์˜ ํฌ๊ธฐ๋ฅผ ์กฐ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค.

๋จผ์ € size-adjust๋ฅผ 100%(๊ธฐ๋ณธ๊ฐ’)๋กœ ์„ค์ •ํ•˜๊ณ  ๋‘ ํฐํŠธ๊ฐ€ ๋™์ผํ•œ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(ํ…์ŠคํŠธ ๋ธ”๋ก ์ฃผ์œ„์˜ ์‚ฌ๊ฐํ˜•์„ ๋น„๊ตํ•ด์•ผ ํ•˜๋ฉฐ, ์ด๋Š” ์˜ˆ์ƒ์น˜ ๋ชปํ•œ ๋ ˆ์ด์•„์›ƒ ์ด๋™์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ์กฐ์ •๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).

Fallback Font Generator UI

์œ„์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋“ฏ์ด ์ปค์Šคํ…€ ํฐํŠธ(๋…น์ƒ‰)๊ฐ€ ๋Œ€์ฒด ํฐํŠธ(๋…ธ๋ž€์ƒ‰)๋ณด๋‹ค ์•ฝ๊ฐ„ ์ž‘์œผ๋ฏ€๋กœ size-adjust ๊ฐ’์„ ์ฆ๊ฐ€์‹œ์ผœ ๋‘ ์‚ฌ๊ฐํ˜•์ด ๋™์ผํ•œ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋„๋ก ์„ค์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

113%์—์„œ ํฌ๊ธฐ๊ฐ€ ์ผ์น˜ํ–ˆ์Šต๋‹ˆ๋‹ค(size-adjust ๊ฐ’์„ ์งง๊ณ  ๊ธด ํ…์ŠคํŠธ ๋ฌธ์ž์—ด ๋ชจ๋‘๋กœ ํ…Œ์ŠคํŠธํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค).

Fallback Font Generator๋กœ ํฐํŠธ ์‚ฌ์ด์ฆˆ ์กฐ์ •

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์˜ ์ผ๋ถ€๋กœ ์ธ๋ผ์ธํ•˜์„ธ์š”.

์ค‘์š”ํ•œ ๋‘ ๊ฐ€์ง€ ์‚ฌํ•ญ์€ ์•„๋ž˜์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  1. ํŽ˜์ด์ง€์— ์—ฌ๋Ÿฌ @font-face ์„ ์–ธ์ด ์žˆ๋Š” ๊ฒฝ์šฐ, ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํฐํŠธ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์š”์ฒญ ์šฐ์„ ์ˆœ์œ„๋ฅผ ๋†’์ด์„ธ์š”(์˜ˆ: <body> ํƒœ๊ทธ์— ์‚ฌ์šฉ๋œ ์ปค์Šคํ…€ ํฐํŠธ).
  2. ์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด @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์—์„œ ์›น ํฐํŠธ๋ฅผ ๋‹ค์šด๋กœ๋“œํ•  ๊ฒฝ์šฐ ์›น ์„ฑ๋Šฅ์„ ๊ฐœ์„ ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค.

์ž์ฒด ํ˜ธ์ŠคํŒ…์ด ์–ด๋ ค์šด ๊ฒฝ์šฐ Google Fonts๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

๊ตฌ๊ธ€์€ ์ž์ฒด ํ˜ธ์ŠคํŒ…์ด ์•„๋‹Œ 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 ๊ทœ์น™์ด ์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ์ž ๋„๊ตฌ๋ฅผ ํ†ตํ•ด ์‚ดํŽด๋ณธ CDN์„ ํ†ตํ•ด ๋กœ๋“œํ•œ Anonymous Pro ํฐํŠธ

ํŠนํžˆ ๋ผํ‹ด ๋ฌธ์ž ์ง‘ํ•ฉ๋งŒ ์‚ฌ์šฉํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ์ฝ”๋“œ์˜ ์–‘์ด ๊ณผ๋„ํ•˜๊ฒŒ ๋งŽ์Šต๋‹ˆ๋‹ค.

์›น ํฐํŠธ ๋‹ค์šด๋กœ๋“œ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

ํ˜„์žฌ ๋ถˆํ•„์š”ํ•œ ๋ฌธ์ž ์„ธํŠธ์˜ @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 URL ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ธŒ์…‹๋œ Anonymous Pro ํฐํŠธ

ํฅ๋ฏธ๋กญ๊ฒŒ๋„ text ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค์šด๋กœ๋“œํ•œ CSS ํŒŒ์ผ์—๋Š” ์š”์ฒญ๋œ ๊ธ€๋ฆฌํ”„์— ์†ํ•˜๋Š” ๋ฌธ์ž ์ง‘ํ•ฉ(์ผ๋ฐ˜ ๋ฐ ์ดํƒค๋ฆญ ์Šคํƒ€์ผ) ๋‘ ๊ฐ€์ง€ @font-face ์„ ์–ธ๋งŒ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

์„œ๋ธŒ์…‹๋œ ํฐํŠธ ํŒŒ์ผ์˜ 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"
/>

์‚ฌ์ „ ์—ฐ๊ฒฐ(Preconnect) ๋งํฌ๋กœ ํฐํŠธ ๋ Œ๋”๋ง ์†๋„ ๋†’์ด๊ธฐ

๊ตฌ๊ธ€์˜ 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 ์†์„ฑ๋„ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค.

Google Fonts๋ฅผ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์„๊นŒ์š”?

ํฐํŠธ ๋ Œ๋”๋ง ์†๋„๋ฅผ ๋” ๋†’์ด๊ธฐ ์œ„ํ•ด ์„œ๋ฒ„์™€์˜ ์‚ฌ์ „ ์—ฐ๊ฒฐ ํ›„ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํฐํŠธ ํŒŒ์ผ์„ ๋ฏธ๋ฆฌ ๋กœ๋“œํ•˜๋Š” ๊ฒƒ๋„ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. 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์„ ๋ณต์‚ฌํ•ฉ๋‹ˆ๋‹ค.

ํฌ๋กฌ ๊ฐœ๋ฐœ์ž๋„๊ตฌ์˜ ๋„คํŠธ์›Œํฌ ํƒญ์—์„œ์˜ WOFF2 ํŒŒ์ผ URL

์ž์ฒด ํ˜ธ์ŠคํŒ…์ด ์–ด๋ ค์šธ ๋•Œ Adobe Fonts๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

์›น์‚ฌ์ดํŠธ์— 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๋งŒ ๋ณ€๊ฒฝํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค).

์ผ๋ฐ˜์ ์ธ ์›น ์„ฑ๋Šฅ ์ตœ์ ํ™” ๋ชจ๋ฒ” ์‚ฌ๋ก€ ๊ตฌํ˜„ํ•˜๊ธฐ

์›น์‚ฌ์ดํŠธ์—์„œ ํฐํŠธ๋ฅผ ์ตœ์ ํ™”ํ•˜๋Š” ๊ฒƒ์€ ์„ฑ๋Šฅ๊ณผ ๋ฏธ์  ์š”์†Œ ์‚ฌ์ด์˜ ์ ์ ˆํ•œ ๊ท ํ˜•์„ ์ฐพ๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์ข‹์€ ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋Š” ๋ฐ ํ•„์ˆ˜์ ์ด์ง€๋งŒ, ์ถฉ๋ถ„ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋น ๋ฅด๊ฒŒ ๋กœ๋“œ๋˜๋Š” ํฐํŠธ๋ฅผ ์ œ๊ณตํ•˜๋ ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์›น ์„ฑ๋Šฅ ๋ชจ๋ฒ” ์‚ฌ๋ก€ ์ค‘ ํ•˜๋‚˜ ์ด์ƒ์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค.

  • CSS ํŒŒ์ผ์— ์ฝ”๋“œ ๋ถ„ํ• ์„ ์ ์šฉํ•˜๊ณ  ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” CSS๋ฅผ ์ œ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐฉ๋ฒ•์€ ํŽ˜์ด์ง€์—์„œ ๋‹ค์šด๋กœ๋“œ๋˜๋Š” ํฐํŠธ ์ˆ˜๋ฅผ ์ค„์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(ํฐํŠธ ํŒŒ์ผ์€ HTTP ์š”์ฒญ์„ ์‹œ์ž‘ํ•˜๋ ค๋ฉด CSS ์ฝ”๋“œ์— ์ฐธ์กฐ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค).
  • HTTP/3 ๋„คํŠธ์›Œํฌ ํ”„๋กœํ† ์ฝœ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์šด๋กœ๋“œ ์†๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํฐํŠธ๋ฅผ ํฌํ•จํ•œ ์ •์  ๋ฆฌ์†Œ์Šค๋ฅผ CDN์—์„œ ๋‹ค์šด๋กœ๋“œํ•ฉ๋‹ˆ๋‹ค.
  • ์บ์‹ฑ์„ ๊ตฌํ˜„ํ•˜์„ธ์š”. ์ด๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ ์›น ํ˜ธ์ŠคํŠธ๋‚˜ CDN ์ œ๊ณต์ž๊ฐ€ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•˜์ง€๋งŒ, ์ˆ˜๋™์œผ๋กœ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ํฐํŠธ ํŒŒ์ผ์— ๋Œ€ํ•œ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์ด ๊ธด ์บ์‹ฑ ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.

์ตœ์ƒ์˜ ๊ฒฐ๊ณผ๋ฅผ ์–ป๊ธฐ ์œ„ํ•ด์„œ๋Š” ์›น ์„ฑ๋Šฅ ๋ถ„์„ ๋„๊ตฌ(์˜ˆ: DebugBear)๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ€์žฅ ์ค‘์š”ํ•œ ํŽ˜์ด์ง€๋ฅผ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๋ฉด ๊ณ ์œ ํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ์™€ ๋ณ‘๋ชฉ ํ˜„์ƒ์„ ๊ฐ์ง€ํ•˜๊ณ  ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

DebugBear๋กœ ์„ฑ๋Šฅ ๋ถ„์„์„ ์‹œ์ž‘ํ•˜๋Š” ๋ฐฉ๋ฒ•์—๋Š” ์„ธ ๊ฐ€์ง€๊ฐ€ ์žˆ์œผ๋ฉฐ ๋ชจ๋‘ ๋ฌด๋ฃŒ์ž…๋‹ˆ๋‹ค.

๋ฌด๋ฃŒ ์ฒดํ—˜์„ ํ†ตํ•ด ์ „ ์„ธ๊ณ„ ์—ฌ๋Ÿฌ ์œ„์น˜์—์„œ ์‹œ๋ฎฌ๋ ˆ์ด์…˜(๋˜๋Š” ์‹คํ—˜์‹ค) ํ…Œ์ŠคํŠธ๋ฅผ ์„ค์ •ํ•˜๊ณ  HTML์— ๊ฒฝ๋Ÿ‰ ์‹ค์‚ฌ์šฉ์ž ๋ชจ๋‹ˆํ„ฐ๋ง(RUM) ์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ถ”๊ฐ€ํ•ด ์‹ค์ œ ์‚ฌ์šฉ์ž๊ฐ€ ๋งค์ผ ์›น์‚ฌ์ดํŠธ์—์„œ ๊ฒช๋Š” ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐Ÿš€ ํ•œ๊ตญ์–ด๋กœ ๋œ ํ”„๋ŸฐํŠธ์—”๋“œ ์•„ํ‹ฐํด์„ ๋น ๋ฅด๊ฒŒ ๋ฐ›์•„๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด Korean FE Article(https://kofearticle.substack.com/)์„ ๊ตฌ๋…ํ•ด์ฃผ์„ธ์š”!


[Ykss]
Written by@[Ykss]
๊ณ ์ด๊ฒŒ ๋‘์ง€ ์•Š๊ณ  ํ˜๋ ค๋ณด๋‚ด๋Š” ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์ž.

GitHubInstagramLinkedIn