์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋ก๋ฉ์ ์ต์ ํํ์ฌ ์ฑ๋ฅ์ ๊ฐ์ ํ๊ณ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ์ธ์. ์์กด์ฑ ์ต์ ํ, ์ํฌํธ ์์, ์ฌ์ ๋ก๋ฉ ๊ธฐ์ ์ ๋ํด ์์๋ณด์ธ์. ์ ์ธ๊ณ ๊ฐ๋ฐ์๋ฅผ ์ํ ๋ด์ฉ์ ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋ก๋ฉ ์ฐ์ ์์: ์ํฌํธ ์์กด์ฑ ์ต์ ํ
์ญ๋์ ์ธ ์น ๊ฐ๋ฐ์ ์ธ๊ณ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋ก๋ฉ ์ต์ ํ๋ ๋น ๋ฅด๊ณ ๋ฐ์์ฑ ์ข์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์น ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ ํฐ ์ฝ๋๋ฒ ์ด์ค์ ์๋ง์ ์์กด์ฑ์ ๊ฐ์ง๋ฉฐ ๋ณต์กํด์ง์ ๋ฐ๋ผ, ์ด๋ฌํ ๋ชจ๋์ด ์ผ๋ง๋ ๋นจ๋ฆฌ ๋ก๋๋๊ณ ์คํ๋๋์ง์ ๋ฐ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ด ํฌ๊ฒ ์ํฅ์ ๋ฐ์ ์ ์์ต๋๋ค. ์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋ก๋ฉ ์ฐ์ ์์์ ๋ณต์ก์ฑ์ ๊น์ด ํ๊ณ ๋ค์ด, ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํด ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํ ์ํฌํธ ์์กด์ฑ ์ต์ ํ ๊ธฐ์ ์ ์ด์ ์ ๋ง์ถฅ๋๋ค.
๋ชจ๋ ๋ก๋ฉ์ ์ค์์ฑ ์ดํดํ๊ธฐ
์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋์ ํ๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑ ์์์ ๋๋ค. ๊ฐ๋ฐ์๋ ๋ณต์กํ ์ฝ๋๋ฅผ ๊ด๋ฆฌ ๊ฐ๋ฅํ๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์๋ก ๋๋ ์ ์์ด ๊ฐ๋ฐ, ์ ์ง๋ณด์ ๋ฐ ํ์ ์ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ฌํ ๋ชจ๋์ด ๋ก๋๋๋ ๋ฐฉ์์ ์น์ฌ์ดํธ์ ๋ก๋ฉ ์๊ฐ์ ์ง๋ํ ์ํฅ์ ๋ฏธ์น ์ ์์ผ๋ฉฐ, ํนํ ๋๋ฆฐ ์ธํฐ๋ท ์ฐ๊ฒฐ์ ์ฌ์ฉํ๊ฑฐ๋ ์ฑ๋ฅ์ด ๋ฎ์ ์ฅ์น๋ฅผ ์ฌ์ฉํ๋ ์ฌ์ฉ์์๊ฒ ๋์ฑ ๊ทธ๋ ์ต๋๋ค. ๋๋ฆฌ๊ฒ ๋ก๋๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ์ฉ์ ๋ถ๋ง, ๋์ ์ดํ๋ฅ , ๊ทธ๋ฆฌ๊ณ ๊ถ๊ทน์ ์ผ๋ก ๋น์ฆ๋์ค๋ ํ๋ก์ ํธ์ ๋ถ์ ์ ์ธ ์ํฅ์ ์ด๋ํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํจ๊ณผ์ ์ธ ๋ชจ๋ ๋ก๋ฉ ์ต์ ํ๋ ์ฑ๊ณต์ ์ธ ์น ๊ฐ๋ฐ ์ ๋ต์ ํต์ฌ ์์์ ๋๋ค.
ํ์ค ๋ชจ๋ ๋ก๋ฉ ํ๋ก์ธ์ค
์ต์ ํ๋ฅผ ์์ํ๊ธฐ ์ ์ ํ์ค ๋ชจ๋ ๋ก๋ฉ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๋ ๊ฒ์ด ํ์์ ์
๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ import ๋ฌธ์ ๋ง๋๋ฉด ์ผ๋ จ์ ๋จ๊ณ๋ฅผ ์์ํฉ๋๋ค:
- ํ์ฑ(Parsing): ๋ธ๋ผ์ฐ์ ๋ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ํ์ฑํ๊ณ ์ํฌํธ ๋ฌธ์ ์๋ณํฉ๋๋ค.
- ๊ฐ์ ธ์ค๊ธฐ(Fetching): ๋ธ๋ผ์ฐ์ ๋ ํ์ํ ๋ชจ๋ ํ์ผ์ ๊ฐ์ ธ์ต๋๋ค. ์ด ๊ณผ์ ์ ์ผ๋ฐ์ ์ผ๋ก ์๋ฒ์ HTTP ์์ฒญ์ ํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
- ํ๊ฐ(Evaluation): ๋ชจ๋ ํ์ผ์ด ๋ค์ด๋ก๋๋๋ฉด ๋ธ๋ผ์ฐ์ ๋ ์ฝ๋๋ฅผ ํ๊ฐํ์ฌ ์ต์์ ์์ค์ ์ฝ๋๋ฅผ ์คํํ๊ณ ํ์ํ ๋ณ์๋ ํจ์๋ฅผ ๋ด๋ณด๋ ๋๋ค.
- ์คํ(Execution): ๋ง์ง๋ง์ผ๋ก, ์ํฌํธ๋ฅผ ์์ํ ์๋ณธ ์คํฌ๋ฆฝํธ๊ฐ ์คํ๋์ด ์ด์ ์ํฌํธ๋ ๋ชจ๋์ ์ฌ์ฉํ ์ ์๊ฒ ๋ฉ๋๋ค.
์ด ๊ฐ ๋จ๊ณ์์ ์์๋๋ ์๊ฐ์ด ์ ์ฒด ๋ก๋ฉ ์๊ฐ์ ๊ธฐ์ฌํฉ๋๋ค. ์ต์ ํ๋ ๊ฐ ๋จ๊ณ, ํนํ ๊ฐ์ ธ์ค๊ธฐ ๋ฐ ํ๊ฐ ๋จ๊ณ์์ ์์๋๋ ์๊ฐ์ ์ต์ํํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค.
์์กด์ฑ ์ต์ ํ ์ ๋ต
์์กด์ฑ์ด ์ฒ๋ฆฌ๋๋ ๋ฐฉ์์ ์ต์ ํํ๋ ๊ฒ์ ๋ชจ๋ ๋ก๋ฉ ์ฑ๋ฅ ํฅ์์ ํต์ฌ์ ๋๋ค. ์ฌ๋ฌ ๊ฐ์ง ์ ๋ต์ ์ฌ์ฉํ ์ ์์ต๋๋ค:
1. ์ฝ๋ ์คํ๋ฆฌํ (Code Splitting)
์ฝ๋ ์คํ๋ฆฌํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฝ๋๋ฅผ ๋ ์์ ์ฒญํฌ๋ก ๋๋๋ ๊ธฐ์ ์ ๋๋ค. ๊ฑฐ๋ํ ๋จ์ผ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ๋ก๋ํ๋ ๋์ , ๋ธ๋ผ์ฐ์ ๋ ์ด๊ธฐ์ ํ์ํ ์ฒญํฌ๋ง ๋ก๋ํ๊ณ ๋ ์ค์ํ ์ฝ๋์ ๋ก๋ฉ์ ์ง์ฐ์ํฌ ์ ์์ต๋๋ค. ์ด๋ ํนํ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์นํฉ(Webpack), ๋กค์ (Rollup), ํ์ (Parcel)๊ณผ ๊ฐ์ ํ๋์ ์ธ ๋ฒ๋ค๋ฌ๋ ์ฝ๋ ์คํ๋ฆฌํ ์ ๋น๊ต์ ์ฝ๊ฒ ๊ตฌํํ ์ ์๋๋ก ํด์ค๋๋ค.
์์: ๋๊ท๋ชจ ์ ์์๊ฑฐ๋ ์ฌ์ดํธ๋ฅผ ์์ํด ๋ณด์ธ์. ์ด๊ธฐ ํ์ด์ง ๋ก๋์๋ ์ ํ ๋ชฉ๋ก ํ์ด์ง์ ๊ธฐ๋ณธ ์น์ฌ์ดํธ ๋ ์ด์์์ ์ํ ์ฝ๋๋ง ํ์ํ ์ ์์ต๋๋ค. ์ฅ๋ฐ๊ตฌ๋, ์ฌ์ฉ์ ์ธ์ฆ, ์ ํ ์์ธ ํ์ด์ง ์ฝ๋๋ ๋ณ๋์ ์ฒญํฌ๋ก ๋ถํ ํ์ฌ ์ฌ์ฉ์๊ฐ ํด๋น ์น์ ์ผ๋ก ์ด๋ํ ๋๋ง ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ฌํ "์ง์ฐ ๋ก๋ฉ" ์ ๊ทผ ๋ฐฉ์์ ์ฒด๊ฐ ์ฑ๋ฅ์ ๊ทน์ ์ผ๋ก ํฅ์์ํฌ ์ ์์ต๋๋ค.
2. ์ง์ฐ ๋ก๋ฉ(Lazy Loading)
์ง์ฐ ๋ก๋ฉ์ ์ฝ๋ ์คํ๋ฆฌํ ๊ณผ ๋ฐ์ ํ ๊ด๋ จ์ด ์์ต๋๋ค. ์ด๋ ์ค์ ๋ก ํ์ํ ๋๊น์ง ํ์์ ์ด์ง ์์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋์ ๋ก๋ฉ์ ์ง์ฐ์ํค๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ์ด๊ธฐ์ ์จ๊ฒจ์ง ์ปดํฌ๋ํธ์ ๊ด๋ จ๋ ๋ชจ๋์ด๋ ์์ง ๋ฐ์ํ์ง ์์ ์ฌ์ฉ์ ์ํธ์์ฉ๊ณผ ๊ด๋ จ๋ ๋ชจ๋์ ํด๋น๋ ์ ์์ต๋๋ค. ์ง์ฐ ๋ก๋ฉ์ ์ด๊ธฐ ๋ก๋ฉ ์๊ฐ์ ์ค์ด๊ณ ์ํธ์์ฉ์ฑ์ ํฅ์์ํค๋ ๊ฐ๋ ฅํ ๊ธฐ์ ์ ๋๋ค.
์์: ์ฌ์ฉ์๊ฐ ๋ณต์กํ ์ธํฐ๋ํฐ๋ธ ์ ๋๋ฉ์ด์ ์ด ์๋ ๋๋ฉ ํ์ด์ง์ ๋์ฐฉํ๋ค๊ณ ๊ฐ์ ํด ๋ณด๊ฒ ์ต๋๋ค. ์ ๋๋ฉ์ด์ ์ฝ๋๋ฅผ ์ฆ์ ๋ก๋ํ๋ ๋์ , ์ง์ฐ ๋ก๋ฉ์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์๊ฐ ํ์ด์ง๋ฅผ ์๋๋ก ์คํฌ๋กคํ๊ฑฐ๋ ํน์ ๋ฒํผ์ ํด๋ฆญํ ํ์๋ง ๋ก๋ํ ์ ์์ต๋๋ค. ์ด๋ ์ด๊ธฐ ๋ ๋๋ง ์ค ๋ถํ์ํ ๋ก๋ฉ์ ๋ฐฉ์งํฉ๋๋ค.
3. ํธ๋ฆฌ ์์ดํน(Tree Shaking)
ํธ๋ฆฌ ์์ดํน์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฒ๋ค์์ ์ฃฝ์ ์ฝ๋(dead code)๋ฅผ ์ ๊ฑฐํ๋ ๊ณผ์ ์ ๋๋ค. ๋ชจ๋์ ์ํฌํธํ ๋, ๊ทธ ๋ชจ๋์ด ์ ๊ณตํ๋ ๋ชจ๋ ๊ธฐ๋ฅ์ ํญ์ ์ฌ์ฉํ์ง๋ ์์ ์ ์์ต๋๋ค. ํธ๋ฆฌ ์์ดํน์ ๋น๋ ๊ณผ์ ์์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋(์ฃฝ์ ์ฝ๋)๋ฅผ ์๋ณํ๊ณ ์ ๊ฑฐํ์ฌ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ๋ก๋ฉ ์๊ฐ์ ๋จ์ถํฉ๋๋ค. ์นํฉ๊ณผ ๋กค์ ๊ฐ์ ํ๋์ ์ธ ๋ฒ๋ค๋ฌ๋ ์๋์ผ๋ก ํธ๋ฆฌ ์์ดํน์ ์ํํฉ๋๋ค.
์์: 20๊ฐ์ ํจ์๊ฐ ์๋ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ํฌํธํ์ง๋ง ์ฝ๋์์๋ 3๊ฐ๋ง ์ฌ์ฉํ๋ค๊ณ ๊ฐ์ ํด ๋ด ์๋ค. ํธ๋ฆฌ ์์ดํน์ ์ฌ์ฉ๋์ง ์๋ 17๊ฐ์ ํจ์๋ฅผ ์ ๊ฑฐํ์ฌ ๋ ์์ ๋ฒ๋ค์ ๋ง๋ญ๋๋ค.
4. ๋ชจ๋ ๋ฒ๋ค๋ฌ์ ํธ๋์คํ์ผ๋ฌ
๋ชจ๋ ๋ฒ๋ค๋ฌ(์นํฉ, ๋กค์ , ํ์ ๋ฑ)์ ํธ๋์คํ์ผ๋ฌ(๋ฐ๋ฒจ)๋ ์์กด์ฑ ์ต์ ํ์์ ์ค์ํ ์ญํ ์ ํฉ๋๋ค. ์ด๋ค์ ๋ชจ๋ ๋ก๋ฉ, ์์กด์ฑ ํด๊ฒฐ, ์ฝ๋ ์คํ๋ฆฌํ , ํธ๋ฆฌ ์์ดํน ๋ฑ์ ๋ณต์ก์ฑ์ ์ฒ๋ฆฌํฉ๋๋ค. ํ๋ก์ ํธ์ ํ์์ ๋ง๋ ๋ฒ๋ค๋ฌ๋ฅผ ์ ํํ๊ณ ์ฑ๋ฅ์ ์ต์ ํ๋๋๋ก ๊ตฌ์ฑํ์ธ์. ์ด๋ฌํ ๋๊ตฌ๋ ์์กด์ฑ ๊ด๋ฆฌ ๋ฐ ํฌ๋ก์ค ๋ธ๋ผ์ฐ์ ํธํ์ฑ์ ์ํ ์ฝ๋ ๋ณํ ๊ณผ์ ์ ํฌ๊ฒ ๋จ์ํํ ์ ์์ต๋๋ค.
์์: ์นํฉ์ ์๋ฐ์คํฌ๋ฆฝํธ ์ถ์, ์ด๋ฏธ์ง ์ต์ ํ, ์ฝ๋ ์คํ๋ฆฌํ ์ ์ฉ๊ณผ ๊ฐ์ ๋ค์ํ ๋ก๋์ ํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์ต์ ํํ๋๋ก ๊ตฌ์ฑํ ์ ์์ต๋๋ค.
์ํฌํธ ์์ ๋ฐ ๊ตฌ๋ฌธ ์ต์ ํ
๋ชจ๋์ด ์ํฌํธ๋๋ ์์์ ์ํฌํธ ๊ตฌ๋ฌธ์ด ๊ตฌ์กฐํ๋๋ ๋ฐฉ์๋ ๋ก๋ฉ ์ฑ๋ฅ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
1. ์ค์ํ ์ํฌํธ ์ฐ์ ์์ ์ง์
ํ์ด์ง์ ์ด๊ธฐ ๋ ๋๋ง์ ํ์์ ์ธ ๋ชจ๋์ ๋จผ์ ๋ก๋ํ๋๋ก ํ์ธ์. ์ด๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ฝํ ์ธ ๋ฅผ ์ฆ์ ํ์ํ๋ ๋ฐ *๋ฐ๋์* ํ์ํ ๋ชจ๋์ ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์น์ฌ์ดํธ์ ์ค์ํ ๋ถ๋ถ์ด ๊ฐ๋ฅํ ํ ๋นจ๋ฆฌ ๋ํ๋๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ง์ ์ (entry point)์์ ์ํฌํธ ๊ตฌ๋ฌธ์ ์ ์คํ๊ฒ ๊ณํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.
2. ์ํฌํธ ๊ทธ๋ฃนํ
์ํฌํธ ๊ตฌ๋ฌธ์ ๋ ผ๋ฆฌ์ ์ผ๋ก ๊ตฌ์ฑํ์ธ์. ๊ด๋ จ ์ํฌํธ๋ฅผ ํจ๊ป ๊ทธ๋ฃนํํ์ฌ ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ฑ์ ํฅ์์ํค์ธ์. ์๋ฅผ ๋ค์ด ๋ชจ๋ ์คํ์ผ๋ง ์ํฌํธ, ๋ชจ๋ ์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ํฌํธ, ๋ชจ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ณ ์ํฌํธ๋ฅผ ๋ชฉ์ ์ ๋ฐ๋ผ ๊ทธ๋ฃนํํ๋ ๊ฒ์ ๊ณ ๋ คํด ๋ณด์ธ์.
3. ์ํฌํธ ์ ์ค์ด๊ธฐ (๊ฐ๋ฅํ ๊ฒฝ์ฐ)
๋ชจ๋์ฑ์ ์ ์ตํ์ง๋ง, ๊ณผ๋ํ ์ํฌํธ๋ ์ค๋ฒํค๋๋ฅผ ์ถ๊ฐํ ์ ์์ต๋๋ค. ์ ์ ํ ๊ฒฝ์ฐ ์ํฌํธ๋ฅผ ํตํฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์๋ฅผ ๋ค์ด, ๋จ์ผ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์์ ๋ง์ ํจ์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ, ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋จ์ผ ๋ค์์คํ์ด์ค๋ก ์ํฌํธํ ๋ค์ ํด๋น ๋ค์์คํ์ด์ค๋ฅผ ํตํด ๊ฐ๋ณ ํจ์์ ์ ๊ทผํ๋ ๊ฒ์ด ๋ ํจ์จ์ ์ผ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ ํธ๋ฆฌ ์์ดํน์ ์ด์ ๊ณผ ๊ท ํ์ ์ด๋ฃจ์ด์ผ ํฉ๋๋ค.
์์: ๋ค์ ์ฝ๋ ๋์ :
import { functionA } from 'library';
import { functionB } from 'library';
import { functionC } from 'library';
๋ค์๊ณผ ๊ฐ์ด ์ฌ์ฉํด ๋ณด์ธ์:
import * as library from 'library';
library.functionA();
library.functionB();
library.functionC();
์ฌ์ ๋ก๋ฉ, ํ๋ฆฌํ์นญ, ํ๋ฆฌ์ปค๋ฅํ ๊ธฐ์
๋ธ๋ผ์ฐ์ ๋ ๋ฆฌ์์ค๋ฅผ ์ฌ์ ์ ๋ก๋ํ๊ฑฐ๋ ์ค๋นํ์ฌ ์ ์ฌ์ ์ผ๋ก ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์๋ ์ฌ๋ฌ ๊ธฐ์ ์ ์ ๊ณตํฉ๋๋ค:
1. ํ๋ฆฌ๋ก๋(Preload)
<link rel="preload"> ํ๊ทธ๋ฅผ ์ฌ์ฉํ๋ฉด ๋ธ๋ผ์ฐ์ ์๊ฒ ๋ฆฌ์์ค(์: ์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋)๊ฐ ํ์ํ๊ธฐ *์ ์* ๋ค์ด๋ก๋ํ๊ณ ์บ์ํ๋๋ก ์ง์ํ ์ ์์ต๋๋ค. ์ด๋ ํ์ด์ง ๋ก๋ ๊ณผ์ ์ด๊ธฐ์ ํ์ํ ์ค์ํ ๋ชจ๋์ ํนํ ์ ์ฉํฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ฌ์ ๋ก๋๋ ์คํฌ๋ฆฝํธ๊ฐ ๋ฌธ์์์ ์ฐธ์กฐ๋ ๋๊น์ง ์คํํ์ง ์์ผ๋ฏ๋ก ๋ค๋ฅธ ์์
๊ณผ ๋ณ๋ ฌ๋ก ๋ก๋ํ ์ ์๋ ๋ฆฌ์์ค์ ์ด์์ ์
๋๋ค.
์์:
<link rel="preload" href="/js/critical.js" as="script">
2. ํ๋ฆฌํ์น(Prefetch)
<link rel="prefetch"> ํ๊ทธ๋ ์ฌ์ฉ์๊ฐ ํ์ํ ์ ์๋ ๋ค๋ฅธ ํ์ด์ง์ ๋ชจ๋๊ณผ ๊ฐ์ด ๋ฏธ๋์ ํ์ํ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ๊ฐ์ ธ์ค๋ ๋ฐ ์ฌ์ฉ๋ฉ๋๋ค. ๋ธ๋ผ์ฐ์ ๋ ์ด๋ฌํ ๋ฆฌ์์ค๋ฅผ ๋ฎ์ ์ฐ์ ์์๋ก ๋ค์ด๋ก๋ํ๋ฏ๋ก ํ์ฌ ํ์ด์ง์ ์ค์ํ ์์
๋ก๋ฉ๊ณผ ๊ฒฝ์ํ์ง ์์ต๋๋ค.
์์:
<link rel="prefetch" href="/js/next-page.js" as="script">
3. ํ๋ฆฌ์ปค๋ฅํธ(Preconnect)
<link rel="preconnect"> ํ๊ทธ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ๋ฆฌ์์ค๋ฅผ ์์ฒญํ๊ธฐ *์ ์* (๋ชจ๋์ด ํธ์คํ
๋๋) ์๋ฒ์ ๋ํ ์ฐ๊ฒฐ์ ์์ํฉ๋๋ค. ์ด๋ ์ฐ๊ฒฐ ์ค์ ์๊ฐ์ ์์ ๋ฆฌ์์ค ๋ก๋ฉ ํ๋ก์ธ์ค๋ฅผ ๊ฐ์ํํ ์ ์์ต๋๋ค. ํนํ ์๋ํํฐ ์๋ฒ์ ์ฐ๊ฒฐํ ๋ ์ ์ฉํฉ๋๋ค.
์์:
<link rel="preconnect" href="https://cdn.example.com" crossorigin>
๋ชจ๋ ๋ก๋ฉ ๋ชจ๋ํฐ๋ง ๋ฐ ํ๋กํ์ผ๋ง
์ ๊ธฐ์ ์ธ ๋ชจ๋ํฐ๋ง๊ณผ ํ๋กํ์ผ๋ง์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ ์ต์ ํ ๋ ธ๋ ฅ์ ํจ๊ณผ๋ฅผ ์ถ์ ํ๋ ๋ฐ ํ์์ ์ ๋๋ค. ๋ช ๊ฐ์ง ๋๊ตฌ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค:
1. ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ
๋๋ถ๋ถ์ ํ๋ ์น ๋ธ๋ผ์ฐ์ (Chrome, Firefox, Safari, Edge)๋ ๋คํธ์ํฌ ์์ฒญ์ ๊ฒ์ฌํ๊ณ , ๋ก๋ฉ ์๊ฐ์ ๋ถ์ํ๋ฉฐ, ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ ์ ์๋ ๊ฐ๋ ฅํ ๊ฐ๋ฐ์ ๋๊ตฌ๋ฅผ ์ ๊ณตํฉ๋๋ค. "๋คํธ์ํฌ" ํญ์ ๋ก๋๋ ๊ฐ ๋ฆฌ์์ค์ ํฌ๊ธฐ, ๋ก๋ฉ ์๊ฐ, ๋ธ๋กํน ๋์ ๋ฑ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. ๋ํ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด(์: ๋๋ฆฐ 3G)์ ์๋ฎฌ๋ ์ด์ ํ์ฌ ๋ค์ํ ์๋๋ฆฌ์ค์์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ด๋ป๊ฒ ์๋ํ๋์ง ์ดํดํ ์ ์์ต๋๋ค.
2. ์น ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ
์ ๋ฌธ ์น ์ฑ๋ฅ ๋ชจ๋ํฐ๋ง ๋๊ตฌ(์: Google PageSpeed Insights, WebPageTest, GTmetrix)๋ ์์ธํ ์ฑ๋ฅ ๋ณด๊ณ ์์ ๊ฐ์ ์ ์ํ ์คํ ๊ฐ๋ฅํ ๊ถ์ฅ ์ฌํญ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ด๋ฏธ์ง ์ต์ ํ, ๋ธ๋ผ์ฐ์ ์บ์ฑ ํ์ฉ, ๋ ๋๋ง ์ฐจ๋จ ๋ฆฌ์์ค ๊ฐ์ ๋ฑ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ต์ ํํ ์ ์๋ ์์ญ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ข ์ข ๋ค๋ฅธ ์ง๋ฆฌ์ ์์น์์๋ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋ํ ๊ธ๋ก๋ฒ ๊ด์ ์ ์ ๊ณตํฉ๋๋ค.
3. ๋ฒ๋ค๋ฌ์ ์ฑ๋ฅ ํ๋กํ์ผ๋ง
๋ง์ ๋ฒ๋ค๋ฌ(์นํฉ, ๋กค์ )๋ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ถ์ํ๊ณ ์ ์ฌ์ ์ธ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ ์ ์๋ ํ๋กํ์ผ๋ง ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ค์ํ ํ๋ฌ๊ทธ์ธ, ๋ก๋, ์ต์ ํ ์ ๋ต์ด ๋น๋ ์๊ฐ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํดํ ์ ์์ต๋๋ค.
๋ชจ๋ฒ ์ฌ๋ก ๋ฐ ์คํ ๊ฐ๋ฅํ ํต์ฐฐ๋ ฅ
- ์คํฌ๋กค ์์ด ๋ณผ ์ ์๋ ๋ถ๋ถ(above the fold)์ ์ค์ํ ์ฝํ ์ธ ์ฐ์ ์์ ์ง์ : ๋ค๋ฅธ ๋ ์ค์ํ ๋ชจ๋๋ณด๋ค ์์กด์ฑ์ ์ฐ์ ์ํ๋๋ผ๋ ์ฌ์ฉ์๊ฐ ์ฆ์ ๋ณด๋ ์ฝํ ์ธ (above the fold)๊ฐ ๋น ๋ฅด๊ฒ ๋ก๋๋๋๋ก ํ์ธ์.
- ์ด๊ธฐ ๋ฒ๋ค ํฌ๊ธฐ ์ต์ํ: ์ด๊ธฐ ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์์์๋ก ํ์ด์ง๊ฐ ๋ ๋นจ๋ฆฌ ๋ก๋๋ฉ๋๋ค. ์ฝ๋ ์คํ๋ฆฌํ ๊ณผ ํธ๋ฆฌ ์์ดํน์ด ๊ฐ์ฅ ์ข์ ๋ฐฉ๋ฒ์ ๋๋ค.
- ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ ์ต์ ํ: ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ๋น-์๋ฐ์คํฌ๋ฆฝํธ ์์ ์ ์ข ์ข ๋ก๋ฉ ์๊ฐ์ ์๋นํ ๊ธฐ์ฌ๋ฅผ ํ ์ ์์ต๋๋ค. ํฌ๊ธฐ, ํ์ ๋ฐ ๋ก๋ฉ ์ ๋ต์ ์ต์ ํํ์ธ์. ์ด๋ฏธ์ง ์ง์ฐ ๋ก๋ฉ์ ํนํ ํจ๊ณผ์ ์ผ ์ ์์ต๋๋ค.
- CDN ์ฌ์ฉ: ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN)๋ ์ฝํ ์ธ ๋ฅผ ์ง๋ฆฌ์ ์ผ๋ก ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ์ํต๋๋ค. ์ด๋ ์๋ณธ ์๋ฒ์์ ๋ฉ๋ฆฌ ๋จ์ด์ง ์ฌ์ฉ์์ ๋ก๋ฉ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์ด๋ ๊ตญ์ ์ ์ธ ์ฌ์ฉ์๋ฅผ ๋์์ผ๋ก ํ ๋ ํนํ ์ค์ํฉ๋๋ค.
- ๋ธ๋ผ์ฐ์ ์บ์ฑ ํ์ฉ: ์๋ฒ๊ฐ ์ ์ ํ ์บ์ ํค๋๋ฅผ ์ค์ ํ๋๋ก ๊ตฌ์ฑํ์ฌ ๋ธ๋ผ์ฐ์ ๊ฐ ์ ์ ์์ ์ ์บ์ํ๊ณ ํ์ ๋ฐฉ๋ฌธ ์ ์์ฒญ ์๋ฅผ ์ค์ด๋๋ก ํ์ธ์.
- ์ต์ ์ํ ์ ์ง: ๋ฒ๋ค๋ฌ, ํธ๋์คํ์ผ๋ฌ, ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ต์ ์ํ๋ก ์ ์งํ์ธ์. ์ ๋ฒ์ ์๋ ์ข ์ข ์ฑ๋ฅ ๊ฐ์ ๋ฐ ๋ฒ๊ทธ ์์ ์ด ํฌํจ๋ฉ๋๋ค.
- ๋ค์ํ ์ฅ์น ๋ฐ ๋คํธ์ํฌ ์กฐ๊ฑด์์ ํ ์คํธ: ๋ค์ํ ์ฅ์น(๋ชจ๋ฐ์ผ, ๋ฐ์คํฌํฑ) ๋ฐ ๋ค์ํ ๋คํธ์ํฌ ์กฐ๊ฑด(๋น ๋ฆ, ๋๋ฆผ, ์คํ๋ผ์ธ)์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ ์คํธํ์ธ์. ์ด๋ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ์ํฅ์ ๋ฏธ์น ์ ์๋ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์๋ณํ๊ณ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
- ์๋น์ค ์์ปค ๊ณ ๋ ค: ์๋น์ค ์์ปค๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ฆฌ์์ค๋ฅผ ์บ์ํ์ฌ ์คํ๋ผ์ธ ๊ธฐ๋ฅ์ ํ์ฑํํ๊ณ ํนํ ์ฌ๋ฐฉ๋ฌธ์์ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๋น๋ ํ๋ก์ธ์ค ์ต์ ํ: ๋ณต์กํ ๋น๋ ํ๋ก์ธ์ค๊ฐ ์๋ ๊ฒฝ์ฐ ์๋์ ์ต์ ํ๋์๋์ง ํ์ธํ์ธ์. ์ฌ๊ธฐ์๋ ์ฆ๋ถ ๋น๋ ์๋๋ฅผ ๋์ด๊ณ ๋ณ๋ ฌํ๋ฅผ ์ ์ฉํ๊ธฐ ์ํด ๋น๋ ๋๊ตฌ ๋ด์์ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ ์ฌ์ฉํ๋ ๊ฒ์ด ํฌํจ๋ ์ ์์ต๋๋ค.
์ฌ๋ก ์ฐ๊ตฌ ๋ฐ ๊ธ๋ก๋ฒ ์์
์ด๋ฌํ ์ต์ ํ ๊ธฐ์ ์ ์ํฅ์ ์ค๋ช ํ๊ธฐ ์ํด ๋ช ๊ฐ์ง ๊ธ๋ก๋ฒ ์์๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
- ์ ๋ฝ๊ณผ ๋ถ๋ฏธ์ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ์ ์์๊ฑฐ๋ ์น์ฌ์ดํธ: ์ ๋ฝ๊ณผ ๋ถ๋ฏธ ๊ณ ๊ฐ ๋ชจ๋์๊ฒ ์๋น์ค๋ฅผ ์ ๊ณตํ๋ ํ ์ ์์๊ฑฐ๋ ํ์ฌ๋ ์ฌ์ฉ์๊ฐ ์ํธ์์ฉํ ๋๋ง ์ ํ ์นดํ๋ก๊ทธ์ ์ฅ๋ฐ๊ตฌ๋ ๊ธฐ๋ฅ์ ๋ก๋ํ๊ธฐ ์ํด ์ฝ๋ ์คํ๋ฆฌํ ์ ๊ตฌํํ์ต๋๋ค. ๋ํ CDN์ ์ฌ์ฉํ์ฌ ์ฌ์ฉ์์๊ฒ ๋ ๊ฐ๊น์ด ์๋ฒ์์ ์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ์ ์ ๊ณตํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ด 30% ๊ฐ์ํ์ฌ ๋งค์ถ์ด ์ฆ๊ฐํ์ต๋๋ค.
- ์์์๋ฅผ ๋์์ผ๋ก ํ๋ ๋ด์ค ์น์ฌ์ดํธ: ์ธํฐ๋ท ์๋๊ฐ ํฌ๊ฒ ๋ค๋ฅผ ์ ์๋ ์์์์ ๊ด๋ฒ์ํ ๋ ์๋ฅผ ๋์์ผ๋ก ํ๋ ํ ๋ด์ค ์น์ฌ์ดํธ๋ ์ด๋ฏธ์ง์ ์ธํฐ๋ํฐ๋ธ ์์์ ์ง์ฐ ๋ก๋ฉ์ ์ฌ์ฉํ์ต๋๋ค. ๋ํ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฐ ๊ธฐํ ์์ ์ ํธ์คํ ํ๋ ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ์ ๋ ๋น ๋ฅธ ์ฐ๊ฒฐ์ ์ค์ ํ๊ธฐ ์ํด ํ๋ฆฌ์ปค๋ฅํธ๋ฅผ ์ฌ์ฉํ์ต๋๋ค. ์ด๋ฌํ ๋ณ๊ฒฝ์ผ๋ก ํนํ ์ธํฐ๋ท ์ฐ๊ฒฐ์ด ๋๋ฆฐ ์ง์ญ์์ ์ฒด๊ฐ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์์ต๋๋ค.
- ๊ธ๋ก๋ฒ SaaS ์ ํ๋ฆฌ์ผ์ด์ : ๊ธ๋ก๋ฒ ์ฌ์ฉ์ ๊ธฐ๋ฐ์ ๊ฐ์ง ํ ์๋น์คํ ์ํํธ์จ์ด(SaaS) ์ ํ๋ฆฌ์ผ์ด์ ์ ์นํฉ์ ์ฝ๋ ์คํ๋ฆฌํ ์ ํ์ฉํ์ฌ ๋ ์์ ์ด๊ธฐ ๋ฒ๋ค์ ๋ง๋ค์ด ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ์ต๋๋ค. ๋ํ ํ๋ฆฌ๋ก๋ ๋ฐ ํ๋ฆฌํ์น ์์ฑ์ ์ฌ์ฉํ์ฌ ์ค์ํ ์๋ฐ์คํฌ๋ฆฝํธ ์ํฌํธ์ ๋์ค์ ํ์ํ ์ ์๋ ์์ ์ ์ง์ ํ์ต๋๋ค. ๊ทธ ๊ฒฐ๊ณผ ์ ์ธ๊ณ์ ์์นํ ์ฌ์ฉ์๋ค์๊ฒ ๋ ๋ถ๋๋ฌ์ด ํ์๊ณผ ๊ฐ์ ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ์ต๋๋ค.
์ด๋ฌํ ์ฌ๋ก ์ฐ๊ตฌ๋ ์์กด์ฑ ์ต์ ํ์ ์ ์ฌ์ ์ด์ ๊ณผ ๋์ ๊ณ ๊ฐ์ ์ง๋ฆฌ์ ์์น ๋ฐ ๋คํธ์ํฌ ์กฐ๊ฑด์ ๊ณ ๋ คํ๋ ๊ฒ์ ์ค์์ฑ์ ๊ฐ์กฐํฉ๋๋ค.
๊ฒฐ๋ก
์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๋ก๋ฉ ์ต์ ํ๋ ์ ์คํ ์ ๊ทผ๊ณผ ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง์ด ํ์ํ ์ง์์ ์ธ ํ๋ก์ธ์ค์ ๋๋ค. ํ์ค ๋ชจ๋ ๋ก๋ฉ ํ๋ก์ธ์ค๋ฅผ ์ดํดํ๊ณ , ๋ค์ํ ์ต์ ํ ๊ธฐ์ ์ ์ฌ์ฉํ๋ฉฐ, ์ฌ๋ฐ๋ฅธ ๋๊ตฌ๋ฅผ ํ์ฉํจ์ผ๋ก์จ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํค๊ณ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค. ์ฝ๋ ์คํ๋ฆฌํ , ์ง์ฐ ๋ก๋ฉ, ํธ๋ฆฌ ์์ดํน ๋ฐ ๊ธฐํ ์ ๋ต์ ์ฑํํ์ฌ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ๋น ๋ฅด๊ณ , ๋ฐ์์ฑ์ด ์ข์ผ๋ฉฐ, ์ ์ธ๊ณ ์ฌ์ฉ์๊ฐ ๋ ์ฆ๊ฒ๊ฒ ์ฌ์ฉํ ์ ์๋๋ก ๋ง๋์ธ์. ์ฑ๋ฅ ์ต์ ํ๋ ์ผํ์ฑ ํด๊ฒฐ์ฑ ์ด ์๋์ ๊ธฐ์ตํ์ธ์. ์ ํ๋ฆฌ์ผ์ด์ ์ด ์ต์์ ๊ฒฝํ์ ์ ๊ณตํ๋๋ก ๋ณด์ฅํ๊ธฐ ์ํด ์ง์์ ์ธ ๋ชจ๋ํฐ๋ง, ํ ์คํธ ๋ฐ ์ ์์ด ํ์ํฉ๋๋ค.
์ด๋ฌํ ๋ชจ๋ฒ ์ฌ๋ก๋ฅผ ๊ตฌํํ๊ณ ์น ์ฑ๋ฅ์ ์ต์ ๋ฐ์ ์ ๋ํ ์ ๋ณด๋ฅผ ๊ณ์ ์ป์์ผ๋ก์จ ์ ์ธ๊ณ ์ฌ์ฉ์๋ฅผ ์ํ ๋ ๋น ๋ฅด๊ณ , ๋ ๋งค๋ ฅ์ ์ด๋ฉฐ, ๋ ์ฑ๊ณต์ ์ธ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ ์ ์์ต๋๋ค.