Google Fonts ๋ทฐ์ด
Google Fonts๋ฅผ ๊ฒ์ํ๊ณ ๋ฏธ๋ฆฌ๋ณด๊ธฐํ ์ ์๋ ๋๊ตฌ์ ๋๋ค. ์ํ๋ ํฐํธ๋ฅผ ์ฐพ์ ์น ํ๋ก์ ํธ์ ์ ์ฉํด๋ณด์ธ์.
ํฐํธ ๊ฒ์
์ํ๋ ํฐํธ๋ฅผ ๊ฒ์ํ๊ฑฐ๋ ํํฐ๋งํ์ธ์.
ํฐํธ๋ฅผ ์ ํํ์ฌ ๋ฏธ๋ฆฌ๋ณด๊ธฐ๋ฅผ ์์ํ์ธ์
๐ Google Fonts ์๋ฒฝ ๊ฐ์ด๋
Google Fonts๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์
๐จ๐จ Google Fonts๋?
Google Fonts๋ ๊ตฌ๊ธ์์ ์ ๊ณตํ๋ ๋ฌด๋ฃ ์นํฐํธ ์๋น์ค์ ๋๋ค.
- 1,400๊ฐ ์ด์์ ์คํ์์ค ํฐํธ ํจ๋ฐ๋ฆฌ
- ์์ ์ ์ฌ์ฉ ๊ฐ๋ฅํ ๋ฌด๋ฃ ๋ผ์ด์ ์ค
- ๋น ๋ฅธ CDN์ ํตํ ์ ์ธ๊ณ ๋ฐฐํฌ
- ๋ค์ํ ์ธ์ด์ ๋ฌธ์ ์ฒด๊ณ ์ง์
- ๋ฐ์ํ ์น ๋์์ธ์ ์ต์ ํ
โกโก ์นํฐํธ ์ฌ์ฉ๋ฒ
1. HTML์์ ์ฌ์ฉ
<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=Noto+Sans+KR:wght@400;700&display=swap" rel="stylesheet">
2. CSS์์ ์ ์ฉ
body {
font-family: 'Noto Sans KR', sans-serif;
}๐๐ ์ฑ๋ฅ ์ต์ ํ ํ
- font-display: swap ์ฌ์ฉ์ผ๋ก FOIT ๋ฐฉ์ง
- preconnect๋ก DNS ์กฐํ ์๊ฐ ๋จ์ถ
- ํ์ํ font-weight๋ง ์ ํ์ ๋ก๋
- subset ํ๋ผ๋ฏธํฐ๋ก ๋ฌธ์ ์งํฉ ์ ํ
- ๋ก์ปฌ ํฐํธ fallback ์ค์
์ต์ ํ๋ ๋ก๋ ์์:
<link href="https://fonts.googleapis.com/css2?family=Noto+Sans+KR:wght@400;700&display=swap&subset=korean" rel="stylesheet">
๐ฑ๐ฑ ๋ฐ์ํ ํ์ดํฌ๊ทธ๋ํผ
๋ค์ํ ๋๋ฐ์ด์ค์์ ์ต์ ์ ๊ฐ๋ ์ฑ์ ์ํ ์ค์ :
/* ๋ฐ์ํ ํฐํธ ํฌ๊ธฐ */
.responsive-text {
font-size: clamp(1rem, 2.5vw, 2rem);
line-height: 1.6;
}
/* ๋๋ฐ์ด์ค๋ณ ํฐํธ ์คํ */
.font-stack {
font-family:
'Noto Sans KR',
-apple-system,
BlinkMacSystemFont,
'Segoe UI',
sans-serif;
}- ๋ชจ๋ฐ์ผ: 16px ์ด์ ๊ถ์ฅ
- ํ๋ธ๋ฆฟ: 18px ์ด์ ๊ถ์ฅ
- ๋ฐ์คํฌํฑ: 20px ์ด์ ๊ถ์ฅ
๐ฏ๐ฏ ํฐํธ ์ ํ ๊ฐ์ด๋
์ฉ๋๋ณ ์ถ์ฒ ํฐํธ:
- ๋ณธ๋ฌธ์ฉ: Noto Sans KR, Spoqa Han Sans
- ์ ๋ชฉ์ฉ: Noto Serif KR, Gowun Dodum
- ์ฝ๋์ฉ: Fira Code, JetBrains Mono
- ์ฅ์์ฉ: Jua, Gamja Flower
์ ํ ๊ธฐ์ค:
- ๋ธ๋๋ ์์ด๋ดํฐํฐ์์ ์ผ์น์ฑ
- ๊ฐ๋ ์ฑ๊ณผ ์ ๊ทผ์ฑ
- ๋ค๊ตญ์ด ์ง์ ๋ฒ์
- ๋ก๋ฉ ์ฑ๋ฅ
๐ง๐ง ๊ณ ๊ธ ํ์ฉ๋ฒ
Variable Fonts ์ฌ์ฉ:
/* Variable Font ๋ก๋ */
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap');
/* ๋์ weight ์กฐ์ */
.dynamic-weight {
font-family: 'Inter', sans-serif;
font-weight: var(--font-weight, 400);
font-variation-settings: 'wght' var(--font-weight, 400);
}CSS Custom Properties ํ์ฉ:
:root {
--font-primary: 'Noto Sans KR', sans-serif;
--font-heading: 'Noto Serif KR', serif;
--font-mono: 'Fira Code', monospace;
}
h1, h2, h3 { font-family: var(--font-heading); }
body { font-family: var(--font-primary); }
code { font-family: var(--font-mono); }๐ก๏ธ๐ก๏ธ ์ ๊ทผ์ฑ ๊ณ ๋ ค์ฌํญ
- ์ถฉ๋ถํ ๋๋น์จ: WCAG ๊ธฐ์ค 4.5:1 ์ด์
- ์ ์ ํ ์ค ๊ฐ๊ฒฉ: 1.4~1.6 ๊ถ์ฅ
- ์ฝ๊ธฐ ์ฌ์ด ํฐํธ ํฌ๊ธฐ: ์ต์ 16px
- dyslexia ์นํ์ : OpenDyslexic ๋ฑ ๊ณ ๋ ค
์ ๊ทผ์ฑ CSS ์์:
.accessible-text {
font-size: max(16px, 1rem);
line-height: 1.5;
letter-spacing: 0.02em;
word-spacing: 0.1em;
}๐๐ ๋๋ฒ๊น ๋ฐ ํ ์คํธ
ํฐํธ ๋ก๋ฉ ํ์ธ:
- ๊ฐ๋ฐ์ ๋๊ตฌ Network ํญ์์ ํฐํธ ํ์ผ ํ์ธ
- Computed ์คํ์ผ์์ ์ค์ ์ ์ฉ๋ ํฐํธ ํ์ธ
- font-display ๋์ ํ ์คํธ
์ฑ๋ฅ ์ธก์ ๋๊ตฌ:
- Google PageSpeed Insights
- WebPageTest
- Lighthouse ํฐํธ ์ต์ ํ ์ ๊ฒ
ํฐํธ fallback ํ ์คํธ:
/* ๋คํธ์ํฌ ์ฐจ๋จ ์ fallback ํ์ธ */
font-family: 'Custom Font',
'Apple SD Gothic Neo',
'Malgun Gothic',
sans-serif;๐ก๐ก ์ค๋ฌด ํ์ฉ ํ
ํ๋ก์ ํธ ์ค์ :
- ๋์์ธ ์์คํ ์ ํฐํธ ๊ท์น ์ ์
- ํฐํธ ๋ก๋ฉ ์ ๋ต ์๋ฆฝ
- fallback ํฐํธ ์คํ ๊ตฌ์ฑ
- ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ์ค์
์ ์ง๋ณด์:
- ํฐํธ ๋ฒ์ ๊ด๋ฆฌ
- ์ฌ์ฉํ์ง ์๋ weight ์ ๋ฆฌ
- ์ ๊ธฐ์ ์ธ ์ฑ๋ฅ ์ ๊ฒ
- ์๋ก์ด ํฐํธ ์ ๋ฐ์ดํธ ํ์ธ