์ค์ ๋ ๋๋ง ๊ฒฝ๋ก๋ฅผ ์ดํดํ๊ณ ๊ฐ์ ํ์ฌ ์น์ฌ์ดํธ ๋ก๋ฉ ์๋๋ฅผ ์ต์ ํํ์ธ์. ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ๋น ๋ฅด๊ณ ๋งค๋ ฅ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ํ ์ ๋ต๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์์๋ณด์ธ์.
ํ๋ก ํธ์๋ ์ฑ๋ฅ ์์ง๋์ด๋ง: ์ค์ ๋ ๋๋ง ๊ฒฝ๋ก ๋ง์คํฐํ๊ธฐ
๋น ๋ฅด๊ฒ ๋ณํํ๋ ๋์งํธ ์ธ์์์ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋ฌด์๋ณด๋ค ์ค์ํฉ๋๋ค. ์ฌ์ฉ์๋ค์ ์น์ฌ์ดํธ๊ฐ ๋น ๋ฅด๊ฒ ๋ก๋๋๊ณ ์ํํ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ๋ฅผ ๊ธฐ๋ํฉ๋๋ค. ๋ก๋ฉ ์๋๊ฐ ๋๋ฆฐ ์น์ฌ์ดํธ๋ ๋์ ์ดํ๋ฅ , ๋ฎ์ ์ฐธ์ฌ๋, ๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก ๋น์ฆ๋์ค์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ด๋ํ ์ ์์ต๋๋ค. ํ๋ก ํธ์๋ ์ฑ๋ฅ์ ๊ฐ์ฅ ์ค์ํ ์ธก๋ฉด ์ค ํ๋๋ ์ค์ ๋ ๋๋ง ๊ฒฝ๋ก(Critical Rendering Path, CRP)๋ฅผ ์ดํดํ๊ณ ์ต์ ํํ๋ ๊ฒ์ ๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์์๋ CRP์ ๋ณต์ก์ฑ์ ๊น์ด ํ๊ณ ๋ค์ด, ์น์ฌ์ดํธ์ ๋ก๋ฉ ์๋๋ฅผ ๊ฐ์ ํ๊ณ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ํ์ํ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๊ธฐ ์ํ ์ค์ง์ ์ธ ์ ๋ต๊ณผ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ์ ์ํ ๊ฒ์ ๋๋ค.
์ค์ ๋ ๋๋ง ๊ฒฝ๋ก๋ ๋ฌด์์ธ๊ฐ์?
์ค์ ๋ ๋๋ง ๊ฒฝ๋ก๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์นํ์ด์ง์ ์ด๊ธฐ ๋ทฐ๋ฅผ ๋ ๋๋งํ๊ธฐ ์ํด ๊ฑฐ์น๋ ๋จ๊ณ์ ์์์ ๋๋ค. ์ด๋ HTML, CSS, JavaScript ํ์ผ์ ๋ค์ด๋ก๋ํ๊ณ , ํ์ฑํ๊ณ , ๋ฌธ์ ๊ฐ์ฒด ๋ชจ๋ธ(DOM) ๋ฐ CSS ๊ฐ์ฒด ๋ชจ๋ธ(CSSOM)์ ๊ตฌ์ถํ๊ณ , ์ด๋ฅผ ๊ฒฐํฉํ์ฌ ๋ ๋ ํธ๋ฆฌ๋ฅผ ์์ฑํ๊ณ , ๋ ์ด์์์ ์ํํ๊ณ , ๋ง์ง๋ง์ผ๋ก ํ๋ฉด์ ์ฝํ ์ธ ๋ฅผ ๊ทธ๋ฆฌ๋ ๊ณผ์ ์ ํฌํจํฉ๋๋ค.
๋ณธ์ง์ ์ผ๋ก, ์ฌ์ฉ์๊ฐ ํ์ด์ง์์ ์๋ฏธ ์๋ ๋ด์ฉ์ ๋ณด๊ธฐ ์ ์ ๋ธ๋ผ์ฐ์ ๊ฐ ํต๊ณผํด์ผ ํ๋ ๊ฒฝ๋ก์ ๋๋ค. ์ด ๊ฒฝ๋ก๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ์ต์ด ํ์ธํธ ์๊ฐ(TTFP), ์ต์ด ์ฝํ ์ธ ํ ํ์ธํธ(FCP), ์ต๋ ์ฝํ ์ธ ํ ํ์ธํธ(LCP)๋ฅผ ์ต์ํํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ์ด๋ฌํ ์งํ๋ค์ ์ธ์ง๋ ์ฑ๋ฅ๊ณผ ์ฌ์ฉ์ ๋ง์กฑ๋์ ์ง์ ์ ์ธ ์ํฅ์ ๋ฏธ์นฉ๋๋ค.
์ฃผ์ ๊ตฌ์ฑ ์์ ์ดํดํ๊ธฐ
์ต์ ํ ๊ธฐ๋ฒ์ ์ดํด๋ณด๊ธฐ ์ ์ ์ค์ ๋ ๋๋ง ๊ฒฝ๋ก์ ๊ด๋ จ๋ ํ์ ๊ตฌ์ฑ ์์๋ฅผ ๋ถํดํด ๋ณด๊ฒ ์ต๋๋ค.
- DOM (Document Object Model): DOM์ HTML ๋ฌธ์๋ฅผ ํธ๋ฆฌ์ ์ ์ฌํ ๋ฐ์ดํฐ ๊ตฌ์กฐ๋ก ํํํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ HTML ๋งํฌ์ ์ ํ์ฑํ์ฌ DOM ํธ๋ฆฌ๋ก ๋ณํํฉ๋๋ค.
- CSSOM (CSS Object Model): CSSOM์ HTML ์์์ ์ ์ฉ๋ ์คํ์ผ์ ๋ํ๋ ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ CSS ํ์ผ๊ณผ ์ธ๋ผ์ธ ์คํ์ผ์ ํ์ฑํ์ฌ CSSOM ํธ๋ฆฌ๋ฅผ ์์ฑํฉ๋๋ค.
- ๋ ๋ ํธ๋ฆฌ: ๋ ๋ ํธ๋ฆฌ๋ DOM๊ณผ CSSOM์ ๊ฒฐํฉํ์ฌ ๊ตฌ์ฑ๋ฉ๋๋ค. ํ๋ฉด์ ๋ณด์ด๋ ์์๋ง ํฌํจํฉ๋๋ค.
- ๋ ์ด์์: ๋ ์ด์์ ๊ณผ์ ์ ๋ ๋ ํธ๋ฆฌ์ ์๋ ๊ฐ ์์์ ์์น์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ ํฉ๋๋ค.
- ํ์ธํธ: ๋ง์ง๋ง ๋จ๊ณ๋ ๋ ๋๋ง๋ ์์๋ฅผ ํ๋ฉด์ ๊ทธ๋ฆฌ๋ ๊ฒ์ ๋๋ค.
CRP ์ต์ ํ๋ ์ ์ค์ํ๊ฐ์?
์ค์ ๋ ๋๋ง ๊ฒฝ๋ก๋ฅผ ์ต์ ํํ๋ฉด ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ์ค์ํ ์ด์ ์ ์ป์ ์ ์์ต๋๋ค.
- ๋ก๋ฉ ์๋ ํฅ์: ์นํ์ด์ง ์ด๊ธฐ ๋ทฐ ๋ ๋๋ง์ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ค์ด๋ฉด ๋ก๋ฉ ์๋๊ฐ ๋นจ๋ผ์ ธ ์ฌ์ฉ์ ๊ฒฝํ์ด ํฅ์๋ฉ๋๋ค.
- ์ดํ๋ฅ ๊ฐ์: ์ฌ์ฉ์๋ ๋น ๋ฅด๊ฒ ๋ก๋๋๋ ์น์ฌ์ดํธ์ ๋ ์ค๋ ๋จธ๋ฌด๋ฅผ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค. CRP๋ฅผ ์ต์ ํํ๋ฉด ์ดํ๋ฅ ์ ์ค์ด๊ณ ์ฌ์ฉ์ ์ฐธ์ฌ๋๋ฅผ ๋์ผ ์ ์์ต๋๋ค.
- SEO ํฅ์: Google๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ ์น์ฌ์ดํธ ์๋๋ฅผ ์์ ๊ฒฐ์ ์์๋ก ๊ณ ๋ คํฉ๋๋ค. CRP๋ฅผ ์ต์ ํํ๋ฉด ๊ฒ์ ์์ง ์์๋ฅผ ๊ฐ์ ํ ์ ์์ต๋๋ค.
- ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ: ๋ ๋น ๋ฅด๊ณ ๋ฐ์์ฑ์ด ์ข์ ์น์ฌ์ดํธ๋ ๋ ์ฆ๊ฑฐ์ด ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ์ฌ ์ฌ์ฉ์ ๋ง์กฑ๋์ ๋ธ๋๋ ์ถฉ์ฑ๋๋ฅผ ๋์ ๋๋ค.
- ์ ํ์จ ์ฆ๊ฐ: ๋ก๋ฉ ์๋๊ฐ ๋นจ๋ผ์ง๋ฉด ์ ํ์จ์ ๊ธ์ ์ ์ธ ์ํฅ์ ๋ฏธ์ณ ๋ ๋ง์ ํ๋งค์ ์์ต์ ์ฐฝ์ถํ ์ ์์ต๋๋ค.
์ค์ ๋ ๋๋ง ๊ฒฝ๋ก ์ต์ ํ ์ ๋ต
CRP ์ต์ ํ์ ์ค์์ฑ์ ์ดํดํ์ผ๋, ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ธฐ ์ํด ๊ตฌํํ ์ ์๋ ์ค์ง์ ์ธ ์ ๋ต์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
1. ์ค์ ๋ฆฌ์์ค ์ ์ต์ํ
์ค์ ๋ฆฌ์์ค๋ ํ์ด์ง์ ์ด๊ธฐ ๋ ๋๋ง์ ์ฐจ๋จํ๋ ๋ฆฌ์์ค์ ๋๋ค. ์น์ฌ์ดํธ์ ์ค์ ๋ฆฌ์์ค๊ฐ ์ ์์๋ก ๋ ๋นจ๋ฆฌ ๋ก๋๋ฉ๋๋ค. ์ค์ ๋ฆฌ์์ค๋ฅผ ์ต์ํํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ถํ์ํ CSS ๋ฐ JavaScript ์ ๊ฑฐ: ํ์ด์ง์ ์ด๊ธฐ ๋ ๋๋ง์ ํ์์ ์ด์ง ์์ CSS ๋๋ JavaScript ์ฝ๋๋ฅผ ์ ๊ฑฐํ์ญ์์ค. ์ฝ๋ ์ปค๋ฒ๋ฆฌ์ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ์ฉํ์ง ์๋ ์ฝ๋๋ฅผ ์๋ณํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์.
- ์ค์ํ์ง ์์ CSS ์ง์ฐ ๋ก๋ฉ: `` ํ๊ทธ์ `media` ์์ฑ์ ์ฌ์ฉํ์ฌ CSS ํ์ผ์ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ํ์ญ์์ค. ์๋ฅผ ๋ค์ด:
<link rel="stylesheet" href="style.css" media="print" onload="this.media='all'"> <noscript><link rel="stylesheet" href="style.css"></noscript>์ด ๊ธฐ๋ฒ์ ์คํ์ผ์ํธ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋ํ๊ณ ์ด๊ธฐ ๋ ๋๋ง์ด ์๋ฃ๋ ํ ์ ์ฉํฉ๋๋ค. `
- JavaScript ์คํ ์ง์ฐ: `