์น์ฌ์ดํธ์ ์ด๋ฏธ์ง ๋ฐ ๊ธ๊ผด ๋ก๋ฉ์ ์ต์ ํํ์ฌ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋น ๋ฅด๊ณ ๋งค๋ ฅ์ ์ธ ๊ฒฝํ์ ์ ๊ณตํ์ธ์. ๋ฐ์ํ ์ด๋ฏธ์ง, ์น ๊ธ๊ผด ์ต์ ํ, ์ง์ฐ ๋ก๋ฉ ๋ฑ์ ๊ธฐ์ ์ ์์๋ณด์ธ์.
ํ๋ก ํธ์๋ ์์ฐ ์ต์ ํ: ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์ด๋ฏธ์ง ๋ฐ ๊ธ๊ผด ๋ก๋ฉ ๋ง์คํฐํ๊ธฐ
์ค๋๋ ๊ธ๋ก๋ฒ ์ฐ๊ฒฐ ์๋์์ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ค์ํ ์ง๋ฆฌ์ ์์น, ๋ค์ํ ๋คํธ์ํฌ ์๋ ๋ฐ ์ฅ์น๋ฅผ ๊ฐ์ง ์ฌ์ฉ์๋ ์ํํ๊ณ ๋น ๋ฅธ ๋ธ๋ผ์ฐ์ง ๊ฒฝํ์ ๊ธฐ๋ํฉ๋๋ค. ์ด๋ฅผ ๋ฌ์ฑํ๋ ๊ฐ์ฅ ์ค์ํ ์ธก๋ฉด ์ค ํ๋๋ ํ๋ก ํธ์๋ ์์ฐ(์ฃผ๋ก ์ด๋ฏธ์ง ๋ฐ ๊ธ๊ผด)์ ์ต์ ํํ๋ ๊ฒ์ ๋๋ค. ์ด ์ข ํฉ ๊ฐ์ด๋์์๋ ์ฌ์ฉ์์ ์์น์ ๊ด๊ณ์์ด ์น์ฌ์ดํธ๊ฐ ๋น ๋ฅด๊ณ ํจ์จ์ ์ผ๋ก ๋ก๋๋๋๋ก ํ๊ธฐ ์ํด ์ฌ์ฉํ ์ ์๋ ๊ธฐ์ ๊ณผ ์ ๋ต์ ์์ธํ ์ดํด๋ด ๋๋ค.
ํ๋ก ํธ์๋ ์์ฐ ์ต์ ํ์ ์ค์์ฑ
ํ๋ก ํธ์๋ ์์ฐ ์ต์ ํ๊ฐ ์ ๊ทธ๋ ๊ฒ ์ค์ํ ๊น์? ๊ทธ ๋ต์ ์ฌ์ฉ์ ๊ฒฝํ์ ์์ต๋๋ค. ๋ก๋ฉ ์๋๊ฐ ๋๋ฆฐ ์น์ฌ์ดํธ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํฉ๋๋ค.
- ๋์ ์ดํ๋ฅ : ์ฌ์ฉ์๋ ์ฐธ์์ฑ์ด ์์ต๋๋ค. ์น์ฌ์ดํธ๊ฐ ๋นจ๋ฆฌ ๋ก๋๋์ง ์์ผ๋ฉด ๋ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- ๋ฎ์ ์ฐธ์ฌ๋: ๋๋ฆฐ ์น์ฌ์ดํธ๋ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ๋จ์ด๋จ๋ฆฌ๊ณ ์ฌ์ฉ์๊ฐ ์ฝํ ์ธ ์ ์ํธ ์์ฉํ ๊ฐ๋ฅ์ฑ์ ์ค์ ๋๋ค.
- ๋ฎ์ ๊ฒ์ ์์ง ์์: Google๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ ๋ก๋ฉ ์๋๊ฐ ๋น ๋ฅธ ์น์ฌ์ดํธ๋ฅผ ์ฐ์ ์ํ์ฌ ๋ ๋์ ์์๋ก ๋ณด์ํฉ๋๋ค.
- ๋ถ์ ์ ์ธ ๋ธ๋๋ ์ธ์: ๋๋ฆฐ ์น์ฌ์ดํธ๋ ํนํ ๋น ๋ฅด๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์น ๊ฒฝํ์ ์ต์ํ ์ฌ์ฉ์์๊ฒ ๋ธ๋๋์ ๋ํ ๋ถ์ ์ ์ธ ์ธ์์ ์ค ์ ์์ต๋๋ค.
์ด๋ฏธ์ง์ ๊ธ๊ผด์ ์ข ์ข ํ์ด์ง ๋ฌด๊ฒ์ ๊ฐ์ฅ ํฐ ์ํฅ์ ๋ฏธ์นฉ๋๋ค. ์ด๋ฅผ ์ต์ ํํ๋ฉด ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ์ค์ฌ ์ ๋ฐ์ ์ธ ์น์ฌ์ดํธ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๋ง์กฑ๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
์ด๋ฏธ์ง ์ต์ ํ: ์ฌ์ธต ๋ถ์
์ด๋ฏธ์ง๋ ์๊ฐ์ ์ผ๋ก ๋งค๋ ฅ์ ์ธ ์น์ฌ์ดํธ์ ํ์์ ์ด์ง๋ง ์ ๋๋ก ์ต์ ํ๋์ง ์์ผ๋ฉด ์๋นํ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ด ๋ ์๋ ์์ต๋๋ค. ์ฃผ์ ์ด๋ฏธ์ง ์ต์ ํ ๊ธฐ์ ์ ๋ํ ๋ถ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ฌ๋ฐ๋ฅธ ์ด๋ฏธ์ง ํ์ ์ ํ
์ ์ ํ ์ด๋ฏธ์ง ํ์์ ์ ํํ๋ ๊ฒ์ ํจ๊ณผ์ ์ธ ์ต์ ํ๋ฅผ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋๋ค. ์ผ๋ฐ์ ์ธ ํ์์ ๋น๊ต๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- JPEG: ์ฌ์ง ๋ฐ ์์์ด ๋ง์ ๋ณต์กํ ์ด๋ฏธ์ง์ ์ ํฉํฉ๋๋ค. JPEG๋ ์์ค ์์ถ์ ์ฌ์ฉํ๋ฏ๋ก ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ผ๋ถ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๊ฐ ์ญ์ ๋ฉ๋๋ค. ํ์ผ ํฌ๊ธฐ์ ์ด๋ฏธ์ง ํ์ง ๊ฐ์ ์ต์์ ๊ท ํ์ ์ฐพ๊ธฐ ์ํด ๋ค์ํ ์์ถ ์์ค์ ์คํํด ๋ณด์ธ์.
- PNG: ์ ๋ช ํ ์ , ํ ์คํธ, ๋ก๊ณ ๋ฐ ํฌ๋ช ๋๊ฐ ํ์ํ ๊ทธ๋ํฝ์ด ์๋ ์ด๋ฏธ์ง์ ์ด์์ ์ ๋๋ค. PNG๋ ๋ฌด์์ค ์์ถ์ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง ํ์ง์ ์ ์งํ์ง๋ง JPEG๋ณด๋ค ํ์ผ ํฌ๊ธฐ๊ฐ ๋ ์ปค์ง๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
- WebP: Google์์ ๊ฐ๋ฐํ ์ต์ ์ด๋ฏธ์ง ํ์์ผ๋ก JPEG ๋ฐ PNG์ ๋นํด ์ฐ์ํ ์์ถ ๋ฐ ์ด๋ฏธ์ง ํ์ง์ ์ ๊ณตํฉ๋๋ค. WebP๋ ์์ค ๋ฐ ๋ฌด์์ค ์์ถ์ ๋ฌผ๋ก ์ ๋๋ฉ์ด์ ๋ฐ ํฌ๋ช ๋๋ ์ง์ํฉ๋๋ค. WebP๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์ ๋ํ ๋์ฒด ์ต์ (JPEG ๋๋ PNG)์ ์ ๊ณตํ์ฌ ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ํ์ธํ์ธ์.
- AVIF: WebP๋ณด๋ค ํจ์ฌ ๋ ๋์ ์์ถ์ ์ ๊ณตํ๋ ์ฐจ์ธ๋ ์ด๋ฏธ์ง ํ์์ผ๋ก, ๋น์ทํ ์ด๋ฏธ์ง ํ์ง๋ก ํ์ผ ํฌ๊ธฐ๊ฐ ๋ ์์ต๋๋ค. AVIF๋ ๋น๊ต์ ์๋ก์ด ํ์์ด๋ฏ๋ก ๋ธ๋ผ์ฐ์ ์ง์์ด ์ ํ๋ ์ ์์ต๋๋ค. ์ด์ ๋ธ๋ผ์ฐ์ ์ ๋ํ ๋์ฒด ์ต์ ์ ์ ๊ณตํ์ธ์.
- SVG: ํ์ง ์ ํ ์์ด ํฌ๊ธฐ๋ฅผ ์กฐ์ ํด์ผ ํ๋ ๋ก๊ณ , ์์ด์ฝ ๋ฐ ์ผ๋ฌ์คํธ๋ ์ด์ ์ ์ด์์ ์ธ ๋ฒกํฐ ๊ธฐ๋ฐ ํ์์ ๋๋ค. SVG๋ ์ผ๋ฐ์ ์ผ๋ก ๋์คํฐ ์ด๋ฏธ์ง(JPEG, PNG, WebP)๋ณด๋ค ํ์ผ ํฌ๊ธฐ๊ฐ ํจ์ฌ ์๊ณ ํ์ฅ์ฑ์ด ๋ฐ์ด๋ฉ๋๋ค.
์: ์ํ ํ ์ฌ์ง์ JPEG๋ก ์ ์ฅํ๋ ๊ฒ์ด ๊ฐ์ฅ ์ข๊ณ ํ์ฌ ๋ก๊ณ ๋ SVG ๋๋ PNG๋ก ์ ์ฅํด์ผ ํฉ๋๋ค.
2. ์ด๋ฏธ์ง ์์ถ
์ด๋ฏธ์ง ์์ถ์ ์๊ฐ์ ํ์ง์ ํฐ ์ํฅ์ ์ฃผ์ง ์์ผ๋ฉด์ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ์์ถ์๋ ๋ ๊ฐ์ง ์ฃผ์ ์ ํ์ด ์์ต๋๋ค.
- ์์ค ์์ถ: ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ผ๋ถ ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ์ญ์ ํฉ๋๋ค. JPEG๋ ์์ค ์์ถ์ ์ฌ์ฉํฉ๋๋ค.
- ๋ฌด์์ค ์์ถ: ์ด๋ฏธ์ง ๋ฐ์ดํฐ๋ฅผ ์์ง ์๊ณ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. PNG๋ ๋ฌด์์ค ์์ถ์ ์ฌ์ฉํฉ๋๋ค.
์ด๋ฏธ์ง ์์ถ์ ์ฌ์ฉํ ์ ์๋ ๋ค์ํ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
- ์จ๋ผ์ธ ๋๊ตฌ: TinyPNG, ImageOptim, Squoosh.
- ๋ฐ์คํฌํฑ ์ ํ๋ฆฌ์ผ์ด์ : Adobe Photoshop, GIMP.
- ๋น๋ ๋๊ตฌ ๋ฐ ์์ ์คํ๊ธฐ: Webpack, Gulp ๋๋ Grunt์ ํจ๊ป ์ฌ์ฉํ๊ธฐ ์ํ ๋ค์ํ ์ด๋ฏธ์ง ํ์์ฉ ํ๋ฌ๊ทธ์ธ์ด ํฌํจ๋ imagemin.
์: TinyPNG๋ฅผ ์ฌ์ฉํ์ฌ PNG ์ด๋ฏธ์ง๋ฅผ ์์ถํ๋ฉด ๋์ ๋๋ ํ์ง ์ ํ ์์ด ํ์ผ ํฌ๊ธฐ๋ฅผ 50-70% ์ค์ผ ์ ์์ต๋๋ค.
3. ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์
์ด๋ฏธ์ง๋ฅผ ์๋ํ ํฌ๊ธฐ๋ก ํ์ํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ๋ถํ์ํ๊ฒ ํฐ ์ด๋ฏธ์ง๋ฅผ ์ ๋ก๋ํ๋ฉด ๋์ญํญ์ด ๋ญ๋น๋๊ณ ํ์ด์ง ๋ก๋ ์๋๊ฐ ๋๋ ค์ง๋๋ค. ์ด๋ฏธ์ง๋ฅผ ์น์ฌ์ดํธ์ ํ์๋ ์ ํํ ํฌ๊ธฐ๋ก ์กฐ์ ํ์ธ์. CSS๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐ์์ฑ์ ์ํด ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ ์ดํ๋ ์์ค ์ด๋ฏธ์ง๊ฐ ํ์ํ ํฌ๊ธฐ๋ณด๋ค ํจ์ฌ ํฌ์ง ์๋๋ก ํ์ธ์.
์: ์ด๋ฏธ์ง๊ฐ 500x300ํฝ์ ๋ก ํ์๋๋ ๊ฒฝ์ฐ ์๋ฒ์ ์ ๋ก๋ํ๊ธฐ ์ ์ ํด๋น ํฌ๊ธฐ๋ก ์กฐ์ ํ์ธ์.
4. ๋ฐ์ํ ์ด๋ฏธ์ง
๋ฐ์ํ ์ด๋ฏธ์ง๋ ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ํด์๋์ ๋ง๊ฒ ์กฐ์ ๋์ด ๋ค์ํ ์ฅ์น์์ ์ต์ ์ ๋ณด๊ธฐ ํ๊ฒฝ์ ๋ณด์ฅํฉ๋๋ค. <picture>
์์์ <img>
์์์ srcset
์์ฑ์ ์ฌ์ฉํ๋ฉด ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ๋ํด ๋ค์ํ ์ด๋ฏธ์ง ์์ค๋ฅผ ์ง์ ํ ์ ์์ต๋๋ค.
์:
<picture>
<source media="(max-width: 600px)" srcset="image-small.jpg">
<source media="(max-width: 1200px)" srcset="image-medium.jpg">
<img src="image-large.jpg" alt="๋ด ์ด๋ฏธ์ง">
</picture>
์ด ์์์ ๋ธ๋ผ์ฐ์ ๋ ํ๋ฉด ๋๋น์ ๋ฐ๋ผ ์ ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ ํํฉ๋๋ค. <img>
์์๋ <picture>
์์๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์ ๋ํ ๋์ฒด ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
srcset์ ์ฌ์ฉํ๋ ์:
<img srcset="image-small.jpg 480w, image-medium.jpg 800w, image-large.jpg 1200w" sizes="(max-width: 600px) 480px, (max-width: 1200px) 800px, 1200px" src="image-large.jpg" alt="๋ด ์ด๋ฏธ์ง">
srcset
์์ฑ์ ํด๋น ๋๋น๊ฐ ์๋ ๋ค์ํ ์ด๋ฏธ์ง ์์ค(์: image-small.jpg 480w
)๋ฅผ ๋์ดํฉ๋๋ค. sizes
์์ฑ์ ๋ค์ํ ํ๋ฉด ๋๋น์์ ์ด๋ฏธ์ง ํฌ๊ธฐ๋ฅผ ์ง์ ํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด ์ ๋ณด๋ฅผ ์ฌ์ฉํ์ฌ ๊ฐ์ฅ ์ ์ ํ ์ด๋ฏธ์ง๋ฅผ ์ ํํฉ๋๋ค.
5. ์ง์ฐ ๋ก๋ฉ
์ง์ฐ ๋ก๋ฉ์ ์ด๋ฏธ์ง๊ฐ ๋ทฐํฌํธ์ ํ์๋ ๋๊น์ง ์ด๋ฏธ์ง ๋ก๋ฉ์ ์ง์ฐ์์ผ ์ด๊ธฐ ํ์ด์ง ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค. ์ด๋ ํด๋ ์๋์ ๋ง์ ์ด๋ฏธ์ง(์ฆ, ํ์ด์ง๊ฐ ๋ก๋๋ ๋ ์ฆ์ ํ์๋์ง ์๋ ์ด๋ฏธ์ง)๊ฐ ์๋ ์น์ฌ์ดํธ์ ํนํ ์ ์ฉํฉ๋๋ค.
JavaScript ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋๋ ๊ธฐ๋ณธ loading="lazy"
์์ฑ์ ์ฌ์ฉํ์ฌ ์ง์ฐ ๋ก๋ฉ์ ๊ตฌํํ ์ ์์ต๋๋ค.
loading ์์ฑ์ ์ฌ์ฉํ๋ ์:
<img src="image.jpg" alt="๋ด ์ด๋ฏธ์ง" loading="lazy">
JavaScript(Intersection Observer API)๋ฅผ ์ฌ์ฉํ๋ ์:
const images = document.querySelectorAll('img[data-src]');
const observer = new IntersectionObserver((entries, observer) => {
entries.forEach(entry => {
if (entry.isIntersecting) {
const img = entry.target;
img.src = img.dataset.src;
img.removeAttribute('data-src');
observer.unobserve(img);
}
});
});
images.forEach(img => {
observer.observe(img);
});
์ด JavaScript ์ฝ๋๋ Intersection Observer API๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๊ฐ ๋ทฐํฌํธ์ ๋ค์ด์ฌ ๋๋ฅผ ๊ฐ์งํ ๋ค์ ์ด๋ฏธ์ง๋ฅผ ๋ก๋ํฉ๋๋ค.
6. CDN์ ์ฌ์ฉํ ์ด๋ฏธ์ง ์ ์ก ์ต์ ํ
CDN(์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ)์ ์น์ฌ์ดํธ ์์ฐ์ ๋ณต์ฌ๋ณธ์ ์ ์ธ๊ณ์ ์๋ ์๋ฒ์ ์ ์ฅํฉ๋๋ค. ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง๋ฅผ ์์ฒญํ๋ฉด CDN์ ํด๋น ์์น์์ ๊ฐ์ฅ ๊ฐ๊น์ด ์๋ฒ์์ ์ด๋ฏธ์ง๋ฅผ ์ ์กํ์ฌ ๋๊ธฐ ์๊ฐ์ ์ค์ด๊ณ ๋ก๋ฉ ์๋๋ฅผ ํฅ์์ํต๋๋ค.
์ธ๊ธฐ ์๋ CDN ์ ๊ณต์ ์ฒด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Cloudflare
- Amazon CloudFront
- Akamai
- Fastly
๋ง์ CDN์ ์๋ ์ด๋ฏธ์ง ํฌ๊ธฐ ์กฐ์ ๋ฐ ์์ถ๊ณผ ๊ฐ์ ์ด๋ฏธ์ง ์ต์ ํ ๊ธฐ๋ฅ๋ ์ ๊ณตํฉ๋๋ค.
7. ๋ค์ํ ์ง์ญ์ ๋ํ ์ด๋ฏธ์ง ์ต์ ํ
์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ ๋ ๋ค์ํ ์ง์ญ์ ๋คํธ์ํฌ ์ธํ๋ผ์ ์ฅ์น ์ฌ์ฉ๋์ ๊ณ ๋ คํ์ธ์. ์๋ฅผ ๋ค์ด ์ธํฐ๋ท ์๋๊ฐ ๋๋ฆฐ ์ง์ญ์ ์ฌ์ฉ์๋ ๋ ์ ๊ทน์ ์ธ ์ด๋ฏธ์ง ์์ถ์ ์ด์ ์ ๋๋ฆด ์ ์์ต๋๋ค.
์: 2G/3G ๋คํธ์ํฌ๊ฐ ์ฃผ๋ก ์ฌ์ฉ๋๋ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ๋ ์ ํด์๋ ์ด๋ฏธ์ง๋ฅผ ์ ๊ณตํ์ธ์.
๊ธ๊ผด ์ต์ ํ: ํ์ดํฌ๊ทธ๋ํผ ๋ฐ ์ฑ๋ฅ ํฅ์
๊ธ๊ผด์ ์น์ฌ์ดํธ ๋์์ธ๊ณผ ๊ฐ๋ ์ฑ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉ์ ์ง์ ๊ธ๊ผด์ ์ ๋๋ก ์ต์ ํํ์ง ์์ผ๋ฉด ํ์ด์ง ๋ก๋ ์๊ฐ์ ์๋นํ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํด ๊ธ๊ผด์ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ์ฌ๋ฐ๋ฅธ ๊ธ๊ผด ํ์ ์ ํ
๋ค์ํ ๊ธ๊ผด ํ์์ ๋ค์ํ ์์ค์ ์์ถ ๋ฐ ๋ธ๋ผ์ฐ์ ์ง์์ ์ ๊ณตํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ๊ธ๊ผด ํ์์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- WOFF(์น ์ด๋ฆฐ ๊ธ๊ผด ํ์): ์ต์ ๋ธ๋ผ์ฐ์ ์์ ๋๋ฆฌ ์ง์๋๋ฉฐ ์ฐ์ํ ์์ถ์ ์ ๊ณตํฉ๋๋ค.
- WOFF2: WOFF์ ๋นํด ์ฐ์ํ ์์ถ์ ์ ๊ณตํ๋ ์ต์ ๋ธ๋ผ์ฐ์ ์ ๊ถ์ฅ๋๋ ๊ธ๊ผด ํ์์ ๋๋ค.
- TTF(TrueType ๊ธ๊ผด): ์ผ๋ถ ๋ธ๋ผ์ฐ์ ์์ ์ฌ์ ํ ์ง์๋๋ ์ด์ ํ์์ ๋๋ค. ์ผ๋ฐ์ ์ผ๋ก WOFF ๋ฐ WOFF2๋ณด๋ค ํ์ผ ํฌ๊ธฐ๊ฐ ๋ ํฝ๋๋ค.
- OTF(OpenType ๊ธ๊ผด): TTF์ ์ ์ฌํ์ง๋ง ๋ ๊ณ ๊ธ ํ์ดํฌ๊ทธ๋ํผ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ๋ํ ์ผ๋ฐ์ ์ผ๋ก WOFF ๋ฐ WOFF2๋ณด๋ค ํ์ผ ํฌ๊ธฐ๊ฐ ๋ ํฝ๋๋ค.
- EOT(Embedded Open Type): ์ฃผ๋ก Internet Explorer์์ ์ฌ์ฉ๋ ์ด์ ํ์์ ๋๋ค. ๋ ์ด์ ๊ถ์ฅ๋์ง ์์ต๋๋ค.
๊ถ์ฅ ์ฌํญ: ์ต์ ๋ธ๋ผ์ฐ์ ์๋ WOFF2๋ฅผ ์ฌ์ฉํ๊ณ ์ด์ ๋ธ๋ผ์ฐ์ ์๋ WOFF๋ฅผ ๋์ฒด ๊ธ๊ผด๋ก ์ ๊ณตํ์ธ์.
2. ๊ธ๊ผด ์๋ธ์ธํ
๊ธ๊ผด ์๋ธ์ธํ ์ ์น์ฌ์ดํธ์์ ์ฌ์ฉ๋๋ ๋ฌธ์๋ง ํฌํจํ์ฌ ๊ธ๊ผด์ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค. ์ด๋ ์ค๊ตญ์ด, ์ผ๋ณธ์ด ๋ฐ ํ๊ตญ์ด์ ๊ฐ์ด ๋ฌธ์ ์งํฉ์ด ํฐ ์ธ์ด์ ํนํ ์ ์ฉํฉ๋๋ค.
Font Squirrel์ Webfont Generator ๋ฐ Transfonter์ ๊ฐ์ ๋๊ตฌ๋ฅผ ๊ธ๊ผด ์๋ธ์ธํ ์ ์ฌ์ฉํ ์ ์์ต๋๋ค.
์: ์น์ฌ์ดํธ์์ ๋ผํด ๋ฌธ์๋ง ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํด๋น ๋ฌธ์๋ง ํฌํจํ๋๋ก ๊ธ๊ผด์ ์๋ธ์ธํ ํ๋ฉด ํ์ผ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
3. ์น ๊ธ๊ผด ๋ก๋ฉ ์ ๋ต
์น ๊ธ๊ผด์ ๋ก๋ํ๋ ๋ฐฉ๋ฒ์ ์น์ฌ์ดํธ์ ์ธ์๋ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๊ณ ๋ คํด์ผ ํ ๋ช ๊ฐ์ง ์ ๋ต์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ธ๊ผด ๋ก๋ฉ API: ๊ธ๊ผด ๋ก๋ฉ API๋ฅผ ์ฌ์ฉํ๋ฉด ์น ๊ธ๊ผด์ ๋ก๋ฉ ๋ฐ ๋ ๋๋ง์ ์ ์ดํ ์ ์์ต๋๋ค. ๊ธ๊ผด์ด ๋ก๋๋ ์์ ์ ๊ฐ์งํ ๋ค์ ํ ์คํธ๋ฅผ ํ์ํ๋ ๋ฐ ์ฌ์ฉํ ์ ์์ต๋๋ค.
font-display
์์ฑ:font-display
์์ฑ์ ์ฌ์ฉํ๋ฉด ์น ๊ธ๊ผด์ด ๋ก๋๋๋ ๋์ ๋ธ๋ผ์ฐ์ ๊ฐ ํ ์คํธ๋ฅผ ๋ ๋๋งํ๋ ๋ฐฉ์์ ์ ์ดํ ์ ์์ต๋๋ค. ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ์ต์ ์ด ์์ต๋๋ค.auto
: ๋ธ๋ผ์ฐ์ ๋ ๊ธฐ๋ณธ ๊ธ๊ผด ๋ก๋ฉ ๋์์ ์ฌ์ฉํฉ๋๋ค.block
: ๋ธ๋ผ์ฐ์ ๋ ๊ธ๊ผด์ด ๋ก๋๋ ๋๊น์ง ํ ์คํธ๋ฅผ ์จ๊น๋๋ค(FOIT - ๋ณด์ด์ง ์๋ ํ ์คํธ ๊น๋ฐ์).swap
: ๋ธ๋ผ์ฐ์ ๋ ๋์ฒด ๊ธ๊ผด๋ก ํ ์คํธ๋ฅผ ํ์ํ ๋ค์ ์น ๊ธ๊ผด์ด ๋ก๋๋๋ฉด ์น ๊ธ๊ผด๋ก ๋ฐ๊ฟ๋๋ค(FOUT - ์คํ์ผ์ด ์ง์ ๋์ง ์์ ํ ์คํธ ๊น๋ฐ์).fallback
: ๋ธ๋ผ์ฐ์ ๋ ์งง์ ์๊ฐ ๋์ ๋์ฒด ๊ธ๊ผด๋ก ํ ์คํธ๋ฅผ ํ์ํ ๋ค์ ์น ๊ธ๊ผด์ด ๋ก๋๋๋ฉด ์น ๊ธ๊ผด๋ก ๋ฐ๊ฟ๋๋ค. ํน์ ์๊ฐ์ด ์ง๋๋ ๊ธ๊ผด์ด ๋ก๋๋์ง ์์ผ๋ฉด ๋์ฒด ๊ธ๊ผด์ด ์ฌ์ฉ๋ฉ๋๋ค.optional
: 'fallback'๊ณผ ์ ์ฌํ์ง๋ง ๋ธ๋ผ์ฐ์ ๊ฐ ์ฌ์ฉ์์ ์ฐ๊ฒฐ ์๋์ ๋ฐ๋ผ ๊ธ๊ผด์ ๋ค์ด๋ก๋ํ ์ง ์ฌ๋ถ๋ฅผ ๊ฒฐ์ ํ ์ ์๋๋ก ํฉ๋๋ค.
- ๊ธ๊ผด ๋ฏธ๋ฆฌ ๋ก๋: ๊ธ๊ผด์ ๋ฏธ๋ฆฌ ๋ก๋ํ๋ฉด ๋ธ๋ผ์ฐ์ ์ ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ค์ด๋ก๋ํ๋๋ก ์ง์ํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ๊ธ๊ผด์ ๋ก๋ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ฌ ์ธ์๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
<link rel="preload">
ํ๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ๊ธ๊ผด์ ๋ฏธ๋ฆฌ ๋ก๋ํ์ธ์.
๊ธ๊ผด ๋ฏธ๋ฆฌ ๋ก๋์ ์:
<link rel="preload" href="myfont.woff2" as="font" type="font/woff2" crossorigin>
CSS์์ font-display๋ฅผ ์ฌ์ฉํ๋ ์:
@font-face {
font-family: 'MyFont';
src: url('myfont.woff2') format('woff2'),
url('myfont.woff') format('woff');
font-weight: normal;
font-style: normal;
font-display: swap;
}
์ด ์์์๋ font-display
์์ฑ์ swap
๊ฐ์ ์ฌ์ฉํฉ๋๋ค. ์ฆ, ๋ธ๋ผ์ฐ์ ๋ ์น ๊ธ๊ผด์ด ๋ก๋๋ ๋๊น์ง ๋์ฒด ๊ธ๊ผด๋ก ํ
์คํธ๋ฅผ ํ์ํฉ๋๋ค.
4. ์์ฒด ํธ์คํ ๊ธ๊ผด
Google Fonts์ ๊ฐ์ ๊ธ๊ผด ์๋น์ค๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ์ง๋ง ์์ฒด ํธ์คํ ๊ธ๊ผด์ ์ฌ์ฉํ๋ฉด ์ฑ๋ฅ ๋ฐ ๊ฐ์ธ ์ ๋ณด ๋ณดํธ๋ฅผ ๋ ์ ์ ์ดํ ์ ์์ต๋๋ค. ๊ธ๊ผด์ ์์ฒด ํธ์คํ ํ๋ ๊ฒฝ์ฐ ์น์ฌ์ดํธ์ ๋ง๊ฒ ํน๋ณํ ์ต์ ํํ๊ณ ํ์ฌ ์๋ฒ์ ์์กดํ์ง ์์๋ ๋ฉ๋๋ค.
5. ์์คํ ๊ธ๊ผด ์ฌ์ฉ
๋ณธ๋ฌธ ํ ์คํธ์ ์์คํ ๊ธ๊ผด(์ฌ์ฉ์์ ์ด์ ์ฒด์ ์ ๋ฏธ๋ฆฌ ์ค์น๋ ๊ธ๊ผด)์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์. ์ด๋ ๊ฒ ํ๋ฉด ๊ธ๊ผด์ ๋ค์ด๋ก๋ํ ํ์๊ฐ ์์ด ํ์ด์ง ๋ก๋ ์๊ฐ์ด ๋นจ๋ผ์ง๋๋ค. ๊ทธ๋ฌ๋ ์์คํ ๊ธ๊ผด์ ์ด์ ์ฒด์ ์ ๋ฐ๋ผ ๋ค๋ฅผ ์ ์์ผ๋ฏ๋ก ๋๋ฆฌ ์ฌ์ฉ ๊ฐ๋ฅํ ๊ธ๊ผด์ ์ ํํ์ธ์.
6. ๋ค์ํ ์ธ์ด์ ๋ํ ๊ธ๊ผด ์ต์ ํ
๋ค์ํ ์ธ์ด์๋ ๋ค์ํ ๋ฌธ์ ์งํฉ์ด ํ์ํฉ๋๋ค. ์น์ฌ์ดํธ์์ ์ฌ์ฉ๋๋ ์ธ์ด๋ฅผ ์ง์ํ๋ ๊ธ๊ผด์ ์ ํํ์ธ์. ๋ณต์กํ ์คํฌ๋ฆฝํธ(์: ์ค๊ตญ์ด, ์ผ๋ณธ์ด, ํ๊ตญ์ด, ์๋์ด)์ ๊ฒฝ์ฐ ํด๋น ์ธ์ด์ ์ต์ ํ๋ ํน์ ๊ธ๊ผด์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์.
ํ๋ก ํธ์๋ ์์ฐ ์ต์ ํ๋ฅผ ์ํ ๋๊ตฌ ๋ฐ ๋ฆฌ์์ค
ํ๋ก ํธ์๋ ์์ฐ์ ์ต์ ํํ๋ ๋ฐ ๋์์ด ๋๋ ๋ค์ํ ๋๊ตฌ์ ๋ฆฌ์์ค๊ฐ ์์ต๋๋ค.
- Google PageSpeed Insights: ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋ถ์ํ๊ณ ๊ฐ์ ์ ์ํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค.
- WebPageTest: ๋ค์ํ ์์น์ ์ฅ์น์์ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ํ ์คํธํ ์ ์๋ ๊ฐ๋ ฅํ ๋๊ตฌ์ ๋๋ค.
- Lighthouse: ์น ํ์ด์ง์ ํ์ง์ ๊ฐ์ ํ๊ธฐ ์ํ ์คํ ์์ค ์๋ํ ๋๊ตฌ์ ๋๋ค. ์ฑ๋ฅ, ์ ๊ทผ์ฑ, ํ๋ก๊ทธ๋ ์๋ธ ์น ์ฑ, SEO ๋ฑ์ ๋ํ ๊ฐ์ฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
- GTmetrix: ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ์น์ฌ์ดํธ ์ฑ๋ฅ ํ ์คํธ ๋๊ตฌ์ ๋๋ค.
- Webpack, Parcel ๋ฐ ๊ธฐํ ๋ฒ๋ค๋ฌ: ์ด๋ฌํ ๋๊ตฌ๋ ์ข ์ข ๋น๋ ํ๋ก์ธ์ค ์ค์ ์ด๋ฏธ์ง์ ๊ธ๊ผด์ ์ต์ ํํ ์ ์๋ ํ๋ฌ๊ทธ์ธ ๋๋ ๊ตฌ์ฑ์ ์ ๊ณตํฉ๋๋ค.
๊ฒฐ๋ก : ๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํ ์ง์์ ์ธ ์ต์ ํ
ํ๋ก ํธ์๋ ์์ฐ ์ต์ ํ๋ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง๊ณผ ๊ฐ์ ์ด ํ์ํ ์ง์์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ์ด ๊ฐ์ด๋์ ์ค๋ช ๋ ๊ธฐ์ ๊ณผ ์ ๋ต์ ๊ตฌํํ๋ฉด ์น์ฌ์ดํธ ์ฑ๋ฅ์ ํฌ๊ฒ ๊ฐ์ ํ๊ณ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํค๋ฉฐ ๊ธ๋ก๋ฒ ์ฌ์ฉ์์๊ฒ ํจ๊ณผ์ ์ผ๋ก ๋๋ฌํ ์ ์์ต๋๋ค.
๋ค์ ์ฌํญ์ ๊ธฐ์ตํ์ธ์.
- ์น์ฌ์ดํธ ์ฑ๋ฅ์ ์ ๊ธฐ์ ์ผ๋ก ๊ฐ์ฌํ์ธ์.
- ์ต์ ์ต์ ํ ๊ธฐ์ ์ ์ต์ ์ํ๋ก ์ ์งํ์ธ์.
- ๋ค์ํ ์ฅ์น์ ๋ธ๋ผ์ฐ์ ์์ ์น์ฌ์ดํธ๋ฅผ ํ ์คํธํ์ธ์.
- ๋ฌด์๋ณด๋ค ์ฌ์ฉ์ ๊ฒฝํ์ ์ฐ์ ์ํ์ธ์.
์ด๋ฌํ ์์น์ ๋ฐ์๋ค์์ผ๋ก์จ ์ ์ธ๊ณ ์ฌ์ฉ์๊ฐ ๋น ๋ฅด๊ณ ์ ๊ทผ ๊ฐ๋ฅํ๋ฉฐ ๋งค๋ ฅ์ ์ธ ์น์ฌ์ดํธ๋ฅผ ์ ์งํ ์ ์์ต๋๋ค.