์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ ์ฑ๋ฅ์ ์ฌ์ธต ๋น๊ตํ๊ณ , ๊ธ๋ก๋ฒ ์น ๊ฐ๋ฐ ํ๋ก์ ํธ์ ์ ์ฉ ๊ฐ๋ฅํ ๋ถ์ ๋ฐ ์ต์ ํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ ์ฑ๋ฅ: ๊ธ๋ก๋ฒ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋น๊ต ๋ถ์ ํ๋ ์์ํฌ
๊ธ๋ณํ๋ ํ๋ ์น ๊ฐ๋ฐ ํ๊ฒฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ ์ํธ์์ฉ์ ์ด๊ณ ๋งค๋ ฅ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ตฌ์ถํ๋ ๋ฐ ์ค์ถ์ ์ธ ์ญํ ์ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ฌ์ฉํ ์ ์๋ ํ๋ ์์ํฌ๊ฐ ๋๋ฌด ๋ง์ ํน์ ํ๋ก์ ํธ์ ์ต์ ์ ํ๋ ์์ํฌ๋ฅผ ์ ํํ๋ ๊ฒ์ ์ด๋ ค์ด ์์ ์ด ๋ ์ ์์ต๋๋ค. ํนํ ์ฑ๋ฅ์ ์ฌ์ฉ์ ๋ง์กฑ๋, ์ ํ์จ ๋ฐ ์ ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ฑ๊ณต์ ์ํฅ์ ๋ฏธ์น๋ ์ค์ํ ์์์ด๋ฉฐ, ์ด๋ ์ฌ์ฉ์๊ฐ ๋ค์ํ ์ฅ์น์ ๋คํธ์ํฌ ์กฐ๊ฑด์์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ๋ ๊ธ๋ก๋ฒ ํ๊ฒฝ์์ ๋์ฑ ์ค์ํฉ๋๋ค.
์ด ์ข ํฉ ๊ฐ์ด๋๋ ๋ฆฌ์กํธ(React), ์ต๊ทค๋ฌ(Angular), ๋ทฐ(Vue.js), ์ค๋ฒจํธ(Svelte) ๋ฑ ์ธ๊ธฐ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ์ฑ๋ฅ ํน์ฑ์ ๋ถ์ํ๊ณ ๋น๊ตํ๊ธฐ ์ํ ํ๋ ์์ํฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ํต์ฌ ์ฑ๋ฅ ์งํ, ๋ฒค์น๋งํน ๋ฐฉ๋ฒ๋ก , ์ต์ ํ ๊ธฐ๋ฒ์ ์ฌ์ธต์ ์ผ๋ก ๋ค๋ฃจ์ด ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ค์ด ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์๋๋ก ์ง์ํฉ๋๋ค.
๊ธ๋ก๋ฒ ์น ๊ฐ๋ฐ์์ ์ฑ๋ฅ์ด ์ค์ํ ์ด์
์ฑ๋ฅ์ ๋จ์ํ ๊ธฐ์ ์ ์ธ ๊ณ ๋ ค์ฌํญ์ด ์๋๋ผ ๋น์ฆ๋์ค์ ํ์ ์์์ ๋๋ค. ๋ก๋ฉ์ด ๋๋ฆฐ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค:
- ์ดํ๋ฅ ์ฆ๊ฐ: ์ฌ์ฉ์๋ ์ฐธ์์ฑ์ด ์์ต๋๋ค. ํ์ด์ง ๋ก๋ฉ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ฉด ๋ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- ์ ํ์จ ๊ฐ์: ๋๋ฆฐ ์ฑ๋ฅ์ ์ ์์๊ฑฐ๋ ๊ฑฐ๋์ ์ ์ฌ ๊ณ ๊ฐ ํ๋ณด ๋ ธ๋ ฅ์ ๋ถ์ ์ ์ธ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค.
- ๊ฒ์ ์์ง ์์ ํ๋ฝ: ๊ตฌ๊ธ๊ณผ ๊ฐ์ ๊ฒ์ ์์ง์ ํ์ด์ง ๋ก๋ ์๊ฐ์ ์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ํฉ๋๋ค.
- ๋ธ๋๋ ํํ ์์: ๋๋ฆฌ๊ณ ๋ฐ์์ด ์๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ธ๋๋์ ๋ํ ๋ถ์ ์ ์ธ ์ธ์์ ์ค ์ ์์ต๋๋ค.
๊ธ๋ก๋ฒ ํ๊ฒฝ์์๋ ์ด๋ฌํ ๋ฌธ์ ๋ค์ด ๋์ฑ ์ฆํญ๋ฉ๋๋ค. ๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ค์ ๋คํธ์ํฌ ์๋์ ์ฅ์น ์ฑ๋ฅ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ์ฑ๋ฅ ์ต์ ํ๋ ์์น๋ ๊ธฐ์ ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์๊ฒ ๊ธ์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ถ๋ฏธ์ ๋๋จ์์์ ์ฌ์ฉ์๋ฅผ ๋ชจ๋ ํ๊ฒ์ผ๋ก ํ๋ ์ ์์๊ฑฐ๋ ์ฌ์ดํธ๋ฅผ ์๊ฐํด ๋ด ์๋ค. ๋ถ๋ฏธ ์ฌ์ฉ์๋ ๋น ๋ฅธ ์ธํฐ๋ท ์ฐ๊ฒฐ๊ณผ ๊ณ ์ฌ์ ์ฅ์น๋ฅผ ์ฌ์ฉํ ์ ์๋ ๋ฐ๋ฉด, ๋๋จ์์์ ์ฌ์ฉ์๋ ๋๋ฆฐ ๋ชจ๋ฐ์ผ ๋คํธ์ํฌ์ ๊ตฌํ ์ฅ์น์ ์์กดํ ์ ์์ต๋๋ค. ์ด ์ ์์๊ฑฐ๋ ์ฌ์ดํธ๋ ๋ ์ฌ์ฉ์ ๊ทธ๋ฃน ๋ชจ๋์๊ฒ ์ํํ ๊ฒฝํ์ ์ ๊ณตํ๋๋ก ์ต์ ํ๋์ด์ผ ํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ํต์ฌ ์ฑ๋ฅ ์งํ
๋ค์ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ์ฑ๋ฅ์ ํจ๊ณผ์ ์ผ๋ก ๋น๊ตํ๋ ค๋ฉด ํจ์จ์ฑ์ ์ธก์ ํ๋ ํต์ฌ ์งํ๋ฅผ ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
1. ์ต์ด ์ฝํ ์ธ ํ ํ์ธํธ (FCP)
FCP๋ ํ๋ฉด์ ์ฒซ ๋ฒ์งธ ์ฝํ ์ธ (์: ํ ์คํธ, ์ด๋ฏธ์ง)๊ฐ ๋ ๋๋ง๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํฉ๋๋ค. FCP๊ฐ ๋ฎ์์๋ก ์ด๊ธฐ ๋ก๋ฉ ๊ฒฝํ์ด ๋ ๋น ๋ฅด๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
2. ์ต๋ ์ฝํ ์ธ ํ ํ์ธํธ (LCP)
LCP๋ ๊ฐ์ฅ ํฐ ์ฝํ ์ธ ์์(์: ์ด๋ฏธ์ง ๋๋ ๋น๋์ค)๊ฐ ํ์๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํฉ๋๋ค. ์ด ์งํ๋ ์ฌ์ฉ์๊ฐ ํ์ด์ง๊ฐ ๋ก๋๋์๋ค๊ณ ์ธ์ํ๋ ์์ ์ ๋ ํ์ค์ ์ผ๋ก ์ธก์ ํฉ๋๋ค.
3. ์ํธ์์ฉ๊น์ง์ ์๊ฐ (TTI)
TTI๋ ํ์ด์ง๊ฐ ์์ ํ ์ํธ์์ฉ ๊ฐ๋ฅํ๊ฒ ๋๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํฉ๋๋ค. ์ฆ, ์ฌ์ฉ์๊ฐ ๋์ ๋๋ ์ง์ฐ ์์ด ๋ชจ๋ ์์์ ์ํธ์์ฉํ ์ ์๊ฒ ๋๋ ์์ ์ ๋๋ค.
4. ์ด ์ฐจ๋จ ์๊ฐ (TBT)
TBT๋ ๋ฉ์ธ ์ค๋ ๋๊ฐ ์ฐจ๋จ๋์ด ์ฌ์ฉ์๊ฐ ํ์ด์ง์ ์ํธ์์ฉํ ์ ์๋ ์ด ์๊ฐ์ ์ธก์ ํฉ๋๋ค. TBT๊ฐ ๋ฎ์์๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฐ์์ฑ์ด ๋ ์ข๋ค๋ ๊ฒ์ ๋ํ๋ ๋๋ค.
5. ๋์ ๋ ์ด์์ ์ด๋ (CLS)
CLS๋ ํ์ด์ง์ ์๊ฐ์ ์์ ์ฑ์ ์ธก์ ํฉ๋๋ค. ๋ก๋ฉ ๊ณผ์ ์์ ๋ฐ์ํ๋ ์๊ธฐ์น ์์ ๋ ์ด์์ ์ด๋์ ์์ ์ ๋ํํฉ๋๋ค. CLS๊ฐ ๋ฎ์์๋ก ๋ ์์ ์ ์ด๊ณ ์์ธก ๊ฐ๋ฅํ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ํ๋ ๋๋ค.
6. ๋ฒ๋ค ํฌ๊ธฐ
๋ฒ๋ค ํฌ๊ธฐ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค์ด๋ก๋ํด์ผ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ๋ํ๋ ๋๋ค. ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์์์๋ก ๋ค์ด๋ก๋ ์๊ฐ์ด ๋นจ๋ผ์ง๊ณ ํนํ ๋ชจ๋ฐ์ผ ์ฅ์น์ ๋๋ฆฐ ๋คํธ์ํฌ์์ ์ฑ๋ฅ์ด ํฅ์๋ฉ๋๋ค.
7. ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋
๊ณผ๋ํ ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ์ ํนํ ๋ฆฌ์์ค๊ฐ ์ ํ๋ ์ฅ์น์์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค. ์ํํ๊ณ ๋ฐ์์ฑ ์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๋ณด์ฅํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ ์ฌ์ฉ๋์ ๋ชจ๋ํฐ๋งํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
8. CPU ์ฌ์ฉ๋ฅ
๋์ CPU ์ฌ์ฉ๋ฅ ์ ๋นํจ์จ์ ์ธ ์ฝ๋๋ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ๋ณต์กํ ๊ณ์ฐ์ ๋ํ๋ผ ์ ์์ต๋๋ค. CPU ์ง์ฝ์ ์ธ ์์ ์ ์ต์ ํํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์๋ต์ฑ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ฒค์น๋งํน ๋ฐฉ๋ฒ๋ก
์ ํํ๊ณ ์ ๋ขฐํ ์ ์๋ ๋ฒค์น๋งํน์ ๋ค์ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ์ฑ๋ฅ์ ๋น๊ตํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๋ค์์ ๊ถ์ฅ๋๋ ๋ช ๊ฐ์ง ๋ฐฉ๋ฒ๋ก ์ ๋๋ค:
1. ๋ผ์ดํธํ์ฐ์ค (Lighthouse)
๋ผ์ดํธํ์ฐ์ค๋ ๊ตฌ๊ธ์ด ๊ฐ๋ฐํ ๋ฌด๋ฃ ์คํ์์ค ๋๊ตฌ๋ก, ์น ํ์ด์ง์ ๋ํ ํฌ๊ด์ ์ธ ์ฑ๋ฅ ๊ฐ์ฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ค์ํ ์ฑ๋ฅ ์งํ๋ฅผ ์ธก์ ํ๊ณ ๊ฐ์ ์ ์ํ ์คํ ๊ฐ๋ฅํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค.
๋ผ์ดํธํ์ฐ์ค๋ ํฌ๋กฌ ๊ฐ๋ฐ์ ๋๊ตฌ, ๋ช ๋ น์ค ๋๋ Node.js ๋ชจ๋๋ก ์คํํ ์ ์์ต๋๋ค. ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ๊ฐ์กฐํ๊ณ ์ต์ ํ ๋ฐฉ์์ ์ ์ํ๋ ์์ธํ ๋ณด๊ณ ์๋ฅผ ์์ฑํฉ๋๋ค.
์๋ฅผ ๋ค์ด, ๋ผ์ดํธํ์ฐ์ค๋ ํ์ผ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ด๋ฏธ์ง๋ฅผ ์์ถํ๊ฑฐ๋ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด ํ๋ฉด ๋ฐ ์ด๋ฏธ์ง๋ฅผ ์ง์ฐ ๋ก๋ฉํ๋ผ๊ณ ์ ์ํ ์ ์์ต๋๋ค.
2. ์นํ์ด์งํ ์คํธ (WebPageTest)
์นํ์ด์งํ ์คํธ๋ ๋ค๋ฅธ ์ธ๊ธฐ ์๋ ์น ์ฑ๋ฅ ํ ์คํธ ๋๊ตฌ๋ก, ๋ค์ํ ์์น์ ์ฅ์น์์ ์น์ฌ์ดํธ๋ฅผ ํ ์คํธํ ์ ์์ต๋๋ค. ์์ธํ ์ฑ๋ฅ ์งํ์ ๋ก๋ฉ ๊ณผ์ ์ ์๊ฐํํ๋ ์ํฐํด ์ฐจํธ๋ฅผ ์ ๊ณตํฉ๋๋ค.
์นํ์ด์งํ ์คํธ๋ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด, ๋ธ๋ผ์ฐ์ ๋ฒ์ ๋ฐ ์ฅ์น ์ ํ์ ์๋ฎฌ๋ ์ด์ ํ ์ ์๋ ๊ด๋ฒ์ํ ๊ตฌ์ฑ ์ต์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ ๋ค์ํ ์ค์ ์๋๋ฆฌ์ค์์ ์น์ฌ์ดํธ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ๋ ๋ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค.
3. ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒค์น๋งํฌ ์ค์ํธ
jsbench.me ๋ฐ PerfTrack๊ณผ ๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒค์น๋งํฌ ์ค์ํธ๋ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋์ ์ฑ๋ฅ์ ํ๊ฐํ๊ธฐ ์ํ ํ์คํ๋ ํ ์คํธ๋ฅผ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ์ค์ํธ์๋ ์ผ๋ฐ์ ์ผ๋ก DOM ์กฐ์, ๋ฌธ์์ด ์ฒ๋ฆฌ ๋ฐ ์ํ ๊ณ์ฐ๊ณผ ๊ฐ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฑ๋ฅ์ ๋ค์ํ ์ธก๋ฉด์ ์ธก์ ํ๋ ๋ค์ํ ํ ์คํธ๊ฐ ํฌํจ๋ฉ๋๋ค.
๋ค์ํ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์์ ์ด๋ฌํ ๋ฒค์น๋งํฌ ์ค์ํธ๋ฅผ ์คํํ์ฌ ์ฑ๋ฅ ํน์ฑ์ ์ ๋์ ์ผ๋ก ๋น๊ตํ ์ ์์ต๋๋ค.
4. ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฒค์น๋งํน
ํฉ์ฑ ๋ฒค์น๋งํฌ๊ฐ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์๋ ์์ง๋ง, ์ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋งฅ๋ฝ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ฅผ ๋ฒค์น๋งํนํ๋ ๊ฒ๋ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ๊ฐ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋ํ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ๋ค์ ์์์ ์ค๋ช ํ ์งํ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ์ ์ธก์ ํ๋ ๊ณผ์ ์ด ํฌํจ๋ฉ๋๋ค.
์ด ์ ๊ทผ ๋ฐฉ์์ ์ผ๋ฐ์ ์ธ ๊ฐ๋ฐ ํ๊ฒฝ์์ ํ๋ ์์ํฌ๊ฐ ์ด๋ป๊ฒ ์๋ํ๋์ง์ ๋ํ ๋ณด๋ค ํ์ค์ ์ธ ํ๊ฐ๋ฅผ ์ ๊ณตํฉ๋๋ค.
๋น๊ต ๋ถ์: ๋ฆฌ์กํธ, ์ต๊ทค๋ฌ, ๋ทฐ, ์ค๋ฒจํธ
์ด์ ๋ค ๊ฐ์ง ์ธ๊ธฐ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ธ ๋ฆฌ์กํธ, ์ต๊ทค๋ฌ, ๋ทฐ, ์ค๋ฒจํธ์ ์ฑ๋ฅ ํน์ฑ์ ๋น๊ตํด ๋ณด๊ฒ ์ต๋๋ค.
๋ฆฌ์กํธ (React)
๋ฆฌ์กํธ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๊ธฐ ์ํ ์ธ๊ธฐ ์๋ ์๋ฐ์คํฌ๋ฆฝํธ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ ๋๋ค. ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์ํคํ ์ฒ์ ๊ฐ์ DOM ์ฌ์ฉ์ผ๋ก ์ ๋ช ํ๋ฉฐ, ์ด๋ฅผ ํตํด ์ค์ DOM์ ํจ์จ์ ์ผ๋ก ์ ๋ฐ์ดํธํ ์ ์์ต๋๋ค.
์ฅ์ :
- ๊ฑฐ๋ํ ์ปค๋ฎค๋ํฐ์ ์ํ๊ณ
- ํจ์จ์ ์ธ ์ ๋ฐ์ดํธ๋ฅผ ์ํ ๊ฐ์ DOM
- ์ ์ฐํ๊ณ ์ ์์ฑ์ด ๋์
๋จ์ :
- ์ฝ๋๊ฐ ์ฅํฉํด์ง ์ ์์
- ๋ผ์ฐํ ๋ฐ ์ํ ๊ด๋ฆฌ๋ฅผ ์ํด ์ถ๊ฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ํ์
- ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ผ๋ก ์ธํด ์ฑ๋ฅ์ด ์ ํ๋ ์ ์์
์ต๊ทค๋ฌ (Angular)
์ต๊ทค๋ฌ๋ ๊ตฌ๊ธ์ด ๊ฐ๋ฐํ ํฌ๊ด์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ๋๋ค. ๋ผ์ฐํ , ์ํ ๊ด๋ฆฌ, ์์กด์ฑ ์ฃผ์ ๋ฑ ๋ณต์กํ ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ตฌ์ถ์ ์ํ ์๋ฒฝํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค.
์ฅ์ :
- ํฌ๊ด์ ์ธ ํ๋ ์์ํฌ
- ๊ฐ๋ ฅํ ํ์ ์์คํ (ํ์ ์คํฌ๋ฆฝํธ ์ฌ์ฉ)
- ์ฐ์ํ ๋๊ตฌ ๋ฐ ๋ฌธ์
๋จ์ :
- ํฐ ๋ฒ๋ค ํฌ๊ธฐ
- ๊ฐํ๋ฅธ ํ์ต ๊ณก์
- ๋ฆฌ์กํธ๋ ๋ทฐ๋ณด๋ค ์ ์ฐ์ฑ์ด ๋จ์ด์ง ์ ์์
๋ทฐ (Vue.js)
๋ทฐ๋ ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๊ธฐ ์ฝ๋๋ก ์ค๊ณ๋ ์ ์ง์ ์ธ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ์ ๋๋ค. ๊ฐ๋จํ๊ณ ์ง๊ด์ ์ธ API์ ์ฑ๋ฅ์ ์ค์ ์ ๋ ๊ฒ์ผ๋ก ์ ๋ช ํฉ๋๋ค.
์ฅ์ :
- ์์ ๋ฒ๋ค ํฌ๊ธฐ
- ๋ฐฐ์ฐ๊ณ ์ฌ์ฉํ๊ธฐ ์ฌ์
- ๋ฐ์ํ ๋ฐ์ดํฐ ๋ฐ์ธ๋ฉ
๋จ์ :
- ๋ฆฌ์กํธ๋ ์ต๊ทค๋ฌ๋ณด๋ค ์์ ์ปค๋ฎค๋ํฐ
- ์ฌ์ฉ ๊ฐ๋ฅํ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๊ฐ ์ ์
- ๋งค์ฐ ๋ณต์กํ ์ ํ๋ฆฌ์ผ์ด์ ์๋ ๋ ์ ํฉํ ์ ์์
์ค๋ฒจํธ (Svelte)
์ค๋ฒจํธ๋ ์ฌ์ฉ์ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌ์ถํ๋ ํ์ ์ ์ธ ์๋ก์ด ์ ๊ทผ ๋ฐฉ์์ ๋๋ค. ๊ฐ์ DOM์ ์ฌ์ฉํ๋ ๋์ , ์ค๋ฒจํธ๋ ๋น๋ ์์ ์ ์ฝ๋๋ฅผ ๊ณ ๋๋ก ์ต์ ํ๋ ์์ ์๋ฐ์คํฌ๋ฆฝํธ๋ก ์ปดํ์ผํฉ๋๋ค.
์ฅ์ :
- ๊ฐ์ฅ ์์ ๋ฒ๋ค ํฌ๊ธฐ
- ํ์ํ ์ฑ๋ฅ
- ๊ฐ์ DOM ์์
๋จ์ :
- ์์ ์ปค๋ฎค๋ํฐ
- ๋ ์ฑ์ํ ์ํ๊ณ
- ๊ธฐ์กด ํ๋ ์์ํฌ์ ์ต์ํ ๊ฐ๋ฐ์์๊ฒ๋ ์์ํ ์ ์์
์ฑ๋ฅ ๋น๊ตํ
๋ค์ ํ๋ ์ด๋ฌํ ํ๋ ์์ํฌ์ ์ฑ๋ฅ ํน์ฑ์ ๊ฐ๋ตํ๊ฒ ๋น๊ตํ ๊ฒ์ ๋๋ค. ์ด๋ ์ผ๋ฐ์ ์ธ ๊ด์ฐฐ์ด๋ฉฐ ์ค์ ์ฑ๋ฅ์ ํน์ ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๊ตฌํ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง ์ ์์ต๋๋ค.
ํ๋ ์์ํฌ | ๋ฒ๋ค ํฌ๊ธฐ | ์ด๊ธฐ ๋ก๋ ์๊ฐ | ๋ฐํ์ ์ฑ๋ฅ | ํ์ต ๊ณก์ |
---|---|---|---|---|
๋ฆฌ์กํธ | ์ค๊ฐ | ์ค๊ฐ | ์ข์ | ์ค๊ฐ |
์ต๊ทค๋ฌ | ํผ | ๋๋ฆผ | ์ข์ | ๊ฐํ๋ฆ |
๋ทฐ | ์์ | ๋น ๋ฆ | ์ข์ | ์ฌ์ |
์ค๋ฒจํธ | ๊ฐ์ฅ ์์ | ๊ฐ์ฅ ๋น ๋ฆ | ํ์ํจ | ์ค๊ฐ |
์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ ์ต์ ํ ๊ธฐ๋ฒ
์ด๋ค ํ๋ ์์ํฌ๋ฅผ ์ ํํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ๋ช ๊ฐ์ง ์ต์ ํ ๊ธฐ๋ฒ์ด ์์ต๋๋ค:
1. ์ฝ๋ ์คํ๋ฆฌํ
์ฝ๋ ์คํ๋ฆฌํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์๋ ๋ ์์ ๋ฒ๋ค๋ก ๋๋๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ด๊ธฐ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค.
๋๋ถ๋ถ์ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ ์ฝ๋ ์คํ๋ฆฌํ ์ ๋ด์ฅ ์ง์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ๋ฆฌ์กํธ์์๋ `React.lazy` ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ์ปดํฌ๋ํธ๋ฅผ ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์์ต๋๋ค.
2. ์ง์ฐ ๋ก๋ฉ
์ง์ฐ ๋ก๋ฉ์ ๋ฆฌ์์ค(์: ์ด๋ฏธ์ง, ๋น๋์ค)๋ฅผ ํ์ํ ๋๋ง ๋ก๋ํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ํนํ ๋ฏธ๋์ด ์ฝํ ์ธ ๊ฐ ๋ง์ ํ์ด์ง์ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
`IntersectionObserver` API๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ง์ฐ ๋ก๋ฉ์ ๊ตฌํํ ์ ์์ต๋๋ค.
3. ์ด๋ฏธ์ง ์ต์ ํ
์ด๋ฏธ์ง ์ต์ ํ๋ ์น ์ฑ๋ฅ์ ํฅ์์ํค๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ฌ๊ธฐ์๋ ์ด๋ฏธ์ง ์์ถ, ์ ์ ํ ์ด๋ฏธ์ง ํ์(์: WebP) ์ฌ์ฉ, ๋ค์ํ ์ฅ์น์ ๋ง๊ฒ ํฌ๊ธฐ๊ฐ ์กฐ์ ๋ ๋ฐ์ํ ์ด๋ฏธ์ง ์ ๊ณต์ด ํฌํจ๋ฉ๋๋ค.
ImageOptim, TinyPNG, squoosh.app ๋ฑ ์ด๋ฏธ์ง ์ต์ ํ๋ฅผ ์ํ ๋ง์ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
4. ์ฝ๋ ์ถ์ ๋ฐ ์์ถ
์ฝ๋ ์ถ์(Minification)๋ ์ฝ๋์์ ๋ถํ์ํ ๋ฌธ์(์: ๊ณต๋ฐฑ, ์ฃผ์)๋ฅผ ์ ๊ฑฐํ๋ ๊ฒ์ ๋๋ค. ์์ถ(Compression)์ gzip์ด๋ Brotli์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ถํ๋ ๊ฒ์ ๋๋ค.
์ฝ๋ ์ถ์์ ์์ถ ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค.
UglifyJS ๋ฐ Terser์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋ ์ถ์ ๋ฐ ์์ถ์ ์ํํ ์ ์์ต๋๋ค.
5. ์บ์ฑ
์บ์ฑ์ ์์ฃผ ์ก์ธ์คํ๋ ๋ฆฌ์์ค๋ฅผ ๋ธ๋ผ์ฐ์ ์บ์๋ ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)์ ์ ์ฅํ๋ ๊ฒ์ ๋๋ค. ์ด๋ ์๋ฒ๋ก ๋ณด๋ด์ผ ํ๋ ์์ฒญ ์๋ฅผ ์ค์ด๊ณ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค.
HTTP ํค๋๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ์๋น์ค ์์ปค๋ฅผ ์ฌ์ฉํ์ฌ ์บ์ฑ์ ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
6. ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง (SSR)
์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์๋ฒ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋๋งํ๊ณ HTML์ ํด๋ผ์ด์ธํธ๋ก ๋ณด๋ด๋ ๊ฒ์ ๋๋ค. ์ด๋ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๊ณ SEO๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.
๋ฆฌ์กํธ, ์ต๊ทค๋ฌ, ๋ทฐ ๋ชจ๋ ์๋ฒ ์ฌ์ด๋ ๋ ๋๋ง์ ์ง์ํฉ๋๋ค.
7. ๋ฉ๋ชจ์ด์ ์ด์
๋ฉ๋ชจ์ด์ ์ด์ ์ ๋น์ฉ์ด ๋ง์ด ๋๋ ํจ์ ํธ์ถ ๊ฒฐ๊ณผ๋ฅผ ์บ์ฑํ๊ณ ๋์ผํ ์ ๋ ฅ์ด ๋ค์ ๋ฐ์ํ ๋ ์บ์๋ ๊ฒฐ๊ณผ๋ฅผ ๋ฐํํ๋ ์ต์ ํ ๊ธฐ๋ฒ์ ๋๋ค. ์ด๋ ์ค๋ณต ๊ณ์ฐ์ ํผํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
8. ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง ํผํ๊ธฐ
๋ฆฌ์กํธ์์ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. `React.memo`, `useMemo`, `useCallback`๊ณผ ๊ฐ์ ๊ธฐ๋ฒ์ ์ฌ์ฉํ์ฌ ๋ถํ์ํ ๋ฆฌ๋ ๋๋ง์ ํผํ ์ ์์ต๋๋ค.
์ฑ๋ฅ ์ต์ ํ๋ฅผ ์ํ ๊ธ๋ก๋ฒ ๊ณ ๋ ค์ฌํญ
๊ธ๋ก๋ฒ ์ฌ์ฉ์๋ฅผ ์ํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ ๋๋ ๋ค์ ์์๋ฅผ ๊ณ ๋ คํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค:
1. ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ (CDN)
CDN์ ์ฝํ ์ธ ๋ฅผ ์ ์ธ๊ณ์ ์์นํ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ์ํต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ์ง๋ฆฌ์ ์ผ๋ก ๊ฐ๊น์ด ์๋ฒ์์ ์ฝํ ์ธ ์ ์ก์ธ์คํ ์ ์์ด ์ง์ฐ ์๊ฐ์ ์ค์ด๊ณ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค.
์ธ๊ธฐ ์๋ CDN ์ ๊ณต์ ์ฒด๋ก๋ Cloudflare, Akamai, Amazon CloudFront๊ฐ ์์ต๋๋ค.
2. ์ง๋ฆฌ์ ์์น
์ง๋ฆฌ์ ์์น ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ฉด ์ฌ์ฉ์์ ์์น์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝํ ์ธ ์ ๊ธฐ๋ฅ์ ๋ง์ถค ์ค์ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ํ์งํ๋ ์ฝํ ์ธ ๋ฅผ ์ ๊ณตํ๊ณ , ๋ค์ํ ํ๋ฉด ํฌ๊ธฐ์ ๋ง๊ฒ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํ๋ฉฐ, ์ ๋ฐ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
3. ๋คํธ์ํฌ ์กฐ๊ฑด
๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์๋ค์ ๋คํธ์ํฌ ์๋์ ์์ ์ฑ์ด ๋ค๋ฅผ ์ ์์ต๋๋ค. ๋คํธ์ํฌ ๋ณ๋์ ํ๋ ฅ์ ์ผ๋ก ๋์ํ๊ณ ๋๋ฆฌ๊ฑฐ๋ ๋ถ์์ ํ ์ฐ๊ฒฐ์ ๊ฐ์ง ์ฌ์ฉ์์๊ฒ ์ฐ์ํ ๋์ฒด ๊ฒฝํ์ ์ ๊ณตํ๋๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค๊ณํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
์ ์ง์ ํฅ์ ๋ฐ ์คํ๋ผ์ธ ์ง์๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ์ด๋ ค์ด ๋คํธ์ํฌ ์กฐ๊ฑด์์๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ ์ ์์ต๋๋ค.
4. ์ฅ์น ์ฑ๋ฅ
์ฌ์ฉ์๋ ๊ณ ์ฌ์ ์ค๋งํธํฐ๋ถํฐ ์ ์ฌ์ ํผ์ฒํฐ๊น์ง ๋ค์ํ ์ฅ์น์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ก์ธ์คํ ์ ์์ต๋๋ค. ๋ค์ํ ์ฅ์น ์ฑ๋ฅ์ ๋ง๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ๊ณ ๋ชจ๋ ์ฅ์น์์ ์ผ๊ด๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
๋ฐ์ํ ๋์์ธ ๋ฐ ์ ์ํ ๋ก๋ฉ๊ณผ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๋ค์ํ ์ฅ์น์ ๋ง๊ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ ์ ์์ต๋๋ค.
๊ฒฐ๋ก
์ฌ๋ฐ๋ฅธ ์๋ฐ์คํฌ๋ฆฝํธ ํ๋ ์์ํฌ๋ฅผ ์ ํํ๋ ๊ฒ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ๊ณผ ์ฑ๊ณต์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์๋ ์ค์ํ ๊ฒฐ์ ์ ๋๋ค. ์ด ๊ฐ์ด๋์์ ๋ ผ์๋ ํต์ฌ ์ฑ๋ฅ ์งํ, ๋ฒค์น๋งํน ๋ฐฉ๋ฒ๋ก ๋ฐ ์ต์ ํ ๊ธฐ๋ฒ์ ์ดํดํจ์ผ๋ก์จ ๊ฐ๋ฐ์๋ ์ ๋ณด์ ์ ๊ฐํ ๊ฒฐ์ ์ ๋ด๋ฆฌ๊ณ ์์น๋ ๊ธฐ์ ์ ๊ด๊ณ์์ด ๋ชจ๋ ์ฌ๋์๊ฒ ๊ธ์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.
์ฑ๋ฅ ์ต์ ํ๋ ์ง์์ ์ธ ๊ณผ์ ์ด๋ผ๋ ์ ์ ๊ธฐ์ตํ์ญ์์ค. ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ , ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ฉฐ, ๋น ๋ฅด๊ณ ๋ฐ์์ฑ ์๊ฒ ์ ์งํ๊ธฐ ์ํด ์ ์ ํ ์ต์ ํ๋ฅผ ๊ตฌํํ์ญ์์ค.
์ฑ๋ฅ์ ์ง์คํจ์ผ๋ก์จ ๋งค๋ ฅ์ ์ด๊ณ ์ฌ์ฉ์ ์นํ์ ์ผ ๋ฟ๋ง ์๋๋ผ ๊ธ๋ก๋ฒ ์์ฅ์์ ์ฑ๊ณต์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง๋ค ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ๊ธ๋ก๋ฒ ๋ด์ค ์น์ฌ์ดํธ๋ฅผ ์๊ฐํด ๋ด ์๋ค. ์ฝ๋ ์คํ๋ฆฌํ , ์ด๋ฏธ์ง ์ต์ ํ, CDN ์ฌ์ฉ๊ณผ ๊ฐ์ ์์์ ์ค๋ช ํ ๊ธฐ์ ์ ๊ตฌํํจ์ผ๋ก์จ ์ด ์น์ฌ์ดํธ๋ ์ ์ธ๊ณ ์ฌ์ฉ์๊ฐ ๋๋ฆฌ๊ฑฐ๋ ๋ถ์์ ํ ์ฐ๊ฒฐ์์๋ ์ต์ ๋ด์ค์ ๋น ๋ฅด๊ณ ์์ ์ ์ผ๋ก ์ก์ธ์คํ ์ ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ด๋ ์ฌ์ฉ์ ์ฐธ์ฌ๋ ์ฆ๊ฐ, ๊ด๊ณ ์์ต ์ฆ๋, ๋ธ๋๋ ํํ ๊ฐํ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
๋ ๋ค๋ฅธ ์๋ ๊ธ๋ก๋ฒ e-๋ฌ๋ ํ๋ซํผ์ ๋๋ค. ํ๋ซํผ์ ์ฑ๋ฅ์ ์ต์ ํํจ์ผ๋ก์จ ์ ์ธ๊ณ ํ์๋ค์ด ์ฑ๋ฅ ๋ฌธ์ ์์ด ๊ฐ์ ์๋ฃ์ ์ก์ธ์คํ๊ณ ์จ๋ผ์ธ ์์ ์ ์ฐธ์ฌํ ์ ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ด๋ ํ์ต ๊ฒฐ๊ณผ ํฅ์๊ณผ ํ์ ๋ง์กฑ๋ ์ฆ๊ฐ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.