ํ๋ก ํธ์๋ ๋ฒ๋ค ๋ถ์์ ๋ํ ์ฌ์ธต ๋ถ์์ผ๋ก, ์ ์ธ๊ณ ์น์ฌ์ดํธ ์ฑ๋ฅ ํฅ์์ ์ํ ์ข ์์ฑ ํฌ๊ธฐ ์ต์ ํ ๊ธฐ์ ์ ์ค์ ์ ๋ก๋๋ค. ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์๋ณ, ๋ถ์ ๋ฐ ์ค์ฌ ๋ ๋น ๋ฅธ ๋ก๋ ์๊ฐ๊ณผ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ ์ป๋ ๋ฐฉ๋ฒ์ ์์๋ณด์ธ์.
ํ๋ก ํธ์๋ ๋ฒ๋ค ๋ถ์: ๊ธ๋ก๋ฒ ์ฑ๋ฅ์ ์ํ ์ข ์์ฑ ํฌ๊ธฐ ์ต์ ํ
์ค๋๋ ์ ๊ธ๋ก๋ฒ ์ฐ๊ฒฐ๋ ์ธ์์์ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ค์ํ ์ง๋ฆฌ์ ์์น์ ๋คํธ์ํฌ ํ๊ฒฝ์ ์ฌ์ฉ์๋ ๋น ๋ฅธ ๋ก๋ฉ ์๊ฐ๊ณผ ์ํํ ๊ฒฝํ์ ๊ธฐ๋ํฉ๋๋ค. ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ํต์ฌ ์์๋ ํ๋ก ํธ์๋ ๋ฒ๋ค์ ํฌ๊ธฐ์ ๋๋ค. ๋ธ๋ผ์ฐ์ ๊ฐ ๋ค์ด๋ก๋ํ๊ณ ์คํํด์ผ ํ๋ JavaScript, CSS ๋ฐ ๊ธฐํ ์์ฐ์ ๋ชจ์์ ๋๋ค.
ํฐ ๋ฒ๋ค ํฌ๊ธฐ๋ ๋ค์๊ณผ ๊ฐ์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ ์ ์์ต๋๋ค.
- ๋ก๋ฉ ์๊ฐ ์ฆ๊ฐ: ์ฌ์ฉ์๊ฐ ์น์ฌ์ดํธ์ ์ํธ ์์ฉํ๊ธฐ ์ ์ ์ง์ฐ์ด ๋ฐ์ํ ์ ์์ต๋๋ค.
- ๋์ ์ดํ๋ฅ : ์ฌ์ดํธ ๋ก๋ฉ ์๊ฐ์ด ๋๋ฌด ์ค๋ ๊ฑธ๋ฆฌ๋ฉด ๋ฐฉ๋ฌธ์๊ฐ ๋ ๋ ๊ฐ๋ฅ์ฑ์ด ๋์ต๋๋ค.
- ๋ฎ์ SEO ์์: ๊ฒ์ ์์ง์ ๋น ๋ฅธ ๋ก๋ฉ ์น์ฌ์ดํธ๋ฅผ ์ฐ์ ์ํฉ๋๋ค.
- ๋์ญํญ ๋น์ฉ ์ฆ๊ฐ: ํนํ ์ธํฐ๋ท ์ก์ธ์ค๊ฐ ์ ํ์ ์ด๊ฑฐ๋ ๋น์ผ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ํด๋น๋ฉ๋๋ค.
- ๋ถ์ ์ ์ธ ์ฌ์ฉ์ ๊ฒฝํ: ๋ถ๋ง๊ณผ ๋ถ๋ง์กฑ์ ๋ธ๋๋ ํํ์ ์์์ํฌ ์ ์์ต๋๋ค.
์ด ํฌ๊ด์ ์ธ ๊ฐ์ด๋๋ ํ๋ก ํธ์๋ ๋ฒ๋ค ๋ถ์์ ์ค์์ฑ์ ์ดํด๋ณด๊ณ ์ข ์์ฑ ํฌ๊ธฐ๋ฅผ ์ต์ ํํ์ฌ ์น์ฌ์ดํธ๊ฐ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋น ๋ฅด๊ณ ์ฆ๊ฑฐ์ด ๊ฒฝํ์ ์ ๊ณตํ ์ ์๋๋ก ์ค์ฉ์ ์ธ ๊ธฐ์ ์ ์ ๊ณตํฉ๋๋ค.
ํ๋ก ํธ์๋ ๋ฒ๋ค ์ดํด
ํ๋ก ํธ์๋ ๋ฒ๋ค์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋ ์ฝ๋์ ํด๋น ์ข ์์ฑ์ ๋จ์ผ ํ์ผ(๋๋ ํ์ผ ์งํฉ)๋ก ๋ฌถ์ ๊ฒฐ๊ณผ์ ๋๋ค. ์ด ํ๋ก์ธ์ค๋ ์ผ๋ฐ์ ์ผ๋ก Webpack, Parcel ๋ฐ Rollup๊ณผ ๊ฐ์ ๋ชจ๋ ๋ฒ๋ค๋ฌ์์ ์ฒ๋ฆฌํฉ๋๋ค. ์ด๋ฌํ ๋๊ตฌ๋ ์ฝ๋๋ฅผ ๋ถ์ํ๊ณ ์ข ์์ฑ์ ํ์ธํ๋ฉฐ ํจ์จ์ ์ธ ๋ธ๋ผ์ฐ์ ์ ๋ฌ์ ์ํด ๋ชจ๋ ๊ฒ์ ํจ๊ป ํจํค์งํฉ๋๋ค.
ํ๋ก ํธ์๋ ๋ฒ๋ค์ ์ผ๋ฐ์ ์ธ ๊ตฌ์ฑ ์์๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- JavaScript: ํ๋ ์์ํฌ(React, Angular, Vue.js), ๋ผ์ด๋ธ๋ฌ๋ฆฌ(Lodash, Moment.js) ๋ฐ ์ฌ์ฉ์ ์ง์ ์ฝ๋๋ฅผ ํฌํจํ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ๋๋ค.
- CSS: ์น์ฌ์ดํธ์ ์๊ฐ์ ๋ชจ์์ ์ ์ํ๋ ์คํ์ผ์ํธ์ ๋๋ค.
- ์ด๋ฏธ์ง: ์ต์ ์ผ๋ก ์์ถ๋ ์ด๋ฏธ์ง ์์ฐ์ ๋๋ค.
- ๊ธ๊ผด: ๋์์ธ์ ์ฌ์ฉ๋ ์ฌ์ฉ์ ์ง์ ๊ธ๊ผด์ ๋๋ค.
- ๊ธฐํ ์์ฐ: JSON ํ์ผ, SVG ๋ฐ ๊ธฐํ ์ ์ ๋ฆฌ์์ค์ ๋๋ค.
๋ฒ๋ค์ ๊ตฌ์ฑ์ ์ดํดํ๋ ๊ฒ์ ํฌ๊ธฐ๋ฅผ ์ต์ ํํ๊ธฐ ์ํ ์ฒซ ๋ฒ์งธ ๋จ๊ณ์ ๋๋ค. ๋ถํ์ํ ์ข ์์ฑ๊ณผ ์ ์ฒด ๊ณต๊ฐ์ ์ค์ผ ์ ์๋ ์์ญ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
์ข ์์ฑ ํฌ๊ธฐ ์ต์ ํ์ ์ค์์ฑ
์ข ์์ฑ์ ์ ํ๋ฆฌ์ผ์ด์ ์ด ์์กดํ๋ ์ธ๋ถ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐ ํ๋ ์์ํฌ์ ๋๋ค. ๊ท์คํ ๊ธฐ๋ฅ์ ์ ๊ณตํ์ง๋ง ๋ฒ๋ค ํฌ๊ธฐ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์๋ ์์ต๋๋ค. ์ข ์์ฑ ํฌ๊ธฐ ์ต์ ํ๋ ๋ค์๊ณผ ๊ฐ์ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ๋ก ์ค์ํฉ๋๋ค.
- ๋ค์ด๋ก๋ ์๊ฐ ๋จ์ถ: ํนํ ์ธํฐ๋ท ์ฐ๊ฒฐ ์๋๊ฐ ๋๋ฆฌ๊ฑฐ๋ ๋ฐ์ดํฐ ์๊ธ์ ๊ฐ ์ ํ๋ ์ฌ์ฉ์์ ๊ฒฝ์ฐ ๋ฒ๋ค์ด ์์์๋ก ๋ค์ด๋ก๋ ์๊ฐ์ด ๋นจ๋ผ์ง๋๋ค. ์ธ๋ ๋์ด ์ง์ญ์ ์ฌ์ฉ์๊ฐ 2G ์ฐ๊ฒฐ๋ก ์น์ฌ์ดํธ์ ์ก์ธ์คํ๋ค๊ณ ์์ํด ๋ณด์ญ์์ค. ๋ชจ๋ ํฌ๋ก๋ฐ์ดํธ๊ฐ ์ค์ํฉ๋๋ค.
- ๊ตฌ๋ฌธ ๋ถ์ ๋ฐ ์คํ ์๊ฐ ๊ฐ์ : ๋ธ๋ผ์ฐ์ ๋ ์น์ฌ์ดํธ๋ฅผ ๋ ๋๋งํ๊ธฐ ์ ์ JavaScript ์ฝ๋๋ฅผ ๊ตฌ๋ฌธ ๋ถ์ํ๊ณ ์คํํด์ผ ํฉ๋๋ค. ๋ฒ๋ค์ด ์์์๋ก ์ฒ๋ฆฌ ๋ฅ๋ ฅ์ด ๋ ํ์ํ๋ฏ๋ก ์์ ์๊ฐ์ด ๋นจ๋ผ์ง๋๋ค.
- ์บ์ฑ ํจ์จ์ฑ ํฅ์: ๋ฒ๋ค์ด ์์์๋ก ๋ธ๋ผ์ฐ์ ์ ์บ์๋ ๊ฐ๋ฅ์ฑ์ด ๋์์ ธ ํ์ ๋ฐฉ๋ฌธ ์ ๋ฐ๋ณต์ ์ผ๋ก ๋ค์ด๋ก๋ํ ํ์๊ฐ ์ค์ด๋ญ๋๋ค.
- ๋ชจ๋ฐ์ผ ์ฑ๋ฅ ํฅ์: ๋ชจ๋ฐ์ผ ์ฅ์น๋ ์ฒ๋ฆฌ ๋ฅ๋ ฅ๊ณผ ๋ฐฐํฐ๋ฆฌ ์๋ช ์ด ์ ํ์ ์ธ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. ๋ฒ๋ค์ด ์์์๋ก ๋ชจ๋ฐ์ผ ์ฅ์น์์ ์น์ฌ์ดํธ์ ์ฑ๋ฅ๊ณผ ๋ฐฐํฐ๋ฆฌ ์๋ช ์ด ํฌ๊ฒ ํฅ์๋ ์ ์์ต๋๋ค.
- ์ฌ์ฉ์ ์ฐธ์ฌ๋ ํฅ์: ๋ ๋น ๋ฅด๊ณ ๋ฐ์์ฑ์ด ๋ฐ์ด๋ ์น์ฌ์ดํธ๋ ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ณ ์ฌ์ฉ์ ์ฐธ์ฌ๋๋ฅผ ๋์ด๋ฉฐ ์ดํ๋ฅ ์ ์ค์ ๋๋ค.
์ข ์์ฑ์ ์ ์คํ๊ฒ ๊ด๋ฆฌํ๊ณ ํฌ๊ธฐ๋ฅผ ์ต์ ํํ๋ฉด ์น์ฌ์ดํธ์ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํค๊ณ ์ ์ธ๊ณ ์ฌ์ฉ์์๊ฒ ๋ ๋์ ๊ฒฝํ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
ํ๋ก ํธ์๋ ๋ฒ๋ค ๋ถ์ ๋๊ตฌ
ํ๋ก ํธ์๋ ๋ฒ๋ค์ ๋ถ์ํ๊ณ ์ต์ ํํ ์์ญ์ ์๋ณํ๋ ๋ฐ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ๋๊ตฌ๊ฐ ์์ต๋๋ค.
- Webpack Bundle Analyzer: ๊ฐ ๋ชจ๋์ ํฌ๊ธฐ์ ๊ตฌ์ฑ์ ๋ณด์ฌ์ฃผ๋ ๋ฒ๋ค์ ์๊ฐ์ ํํ์ ์ ๊ณตํ๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ Webpack ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
- Parcel Bundle Visualizer: Webpack Bundle Analyzer์ ์ ์ฌํ์ง๋ง Parcel์ฉ์ผ๋ก ํน๋ณํ ์ค๊ณ๋์์ต๋๋ค.
- Rollup Visualizer: Rollup์ฉ ์๊ฐํ ํ๋ฌ๊ทธ์ธ์ ๋๋ค.
- Source Map Explorer: ์์ค ๋งต์ ์ฌ์ฉํ์ฌ JavaScript ๋ฒ๋ค์ ๋ถ์ํ์ฌ ๊ฐ๋ณ ํจ์ ๋ฐ ๋ชจ๋์ ํฌ๊ธฐ๋ฅผ ์๋ณํ๋ ๋ ๋ฆฝ ์คํํ ๋๊ตฌ์ ๋๋ค.
- BundlePhobia: npm ํจํค์ง ๋ฐ ํด๋น ์ข ์์ฑ์ ํฌ๊ธฐ๋ฅผ ์ค์นํ๊ธฐ ์ ์ ๋ถ์ํ ์ ์๋ ์จ๋ผ์ธ ๋๊ตฌ์ ๋๋ค.
์ด๋ฌํ ๋๊ตฌ๋ ๋ฒ๋ค์ ๊ตฌ์กฐ์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ์ฌ ํฐ ์ข ์์ฑ, ์ค๋ณต ์ฝ๋ ๋ฐ ์ต์ ํ๋ฅผ ์ํ ๊ธฐํ ์์ญ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์๋ฅผ ๋ค์ด Webpack Bundle Analyzer๋ฅผ ์ฌ์ฉํ๋ฉด ์ ํ๋ฆฌ์ผ์ด์ ์์ ๊ฐ์ฅ ๋ง์ ๊ณต๊ฐ์ ์ฐจ์งํ๋ ํน์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ดํดํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. ์ด ์ดํด๋ ์ต์ ํํ๊ฑฐ๋ ์ ๊ฑฐํ ์ข ์์ฑ์ ๊ฒฐ์ ํ ๋ ๋งค์ฐ ์ค์ํฉ๋๋ค.
์ข ์์ฑ ํฌ๊ธฐ๋ฅผ ์ต์ ํํ๋ ๊ธฐ์
๋ฒ๋ค์ ๋ถ์ํ ํ์๋ ์ข ์์ฑ ํฌ๊ธฐ๋ฅผ ์ต์ ํํ๋ ๊ธฐ์ ์ ๊ตฌํํ๊ธฐ ์์ํ ์ ์์ต๋๋ค. ๋ค์์ ๋ช ๊ฐ์ง ํจ๊ณผ์ ์ธ ์ ๋ต์ ๋๋ค.
1. ์ฝ๋ ๋ถํ
์ฝ๋ ๋ถํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์๋ ๋ ์์ ์ฒญํฌ๋ก ๋๋๋ ๊ฒ์ ํฌํจํฉ๋๋ค. ์ด๋ ์ด๊ธฐ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ํนํ ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ฒฝ์ฐ ๋ก๋ฉ ์๊ฐ์ ๊ฐ์ ํฉ๋๋ค.
์ผ๋ฐ์ ์ธ ์ฝ๋ ๋ถํ ๊ธฐ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๊ฒฝ๋ก ๊ธฐ๋ฐ ๋ถํ : ๋ค๋ฅธ ๊ฒฝ๋ก ๋๋ ํ์ด์ง๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ ํฉ๋๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ๋ถํ : ๊ฐ๋ณ ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ถํ ํฉ๋๋ค.
- ๋์ ๊ฐ์ ธ์ค๊ธฐ: ๋์ ๊ฐ์ ธ์ค๊ธฐ๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๋ฐ๋ผ ๋ชจ๋์ ๋ก๋ํฉ๋๋ค.
์๋ฅผ ๋ค์ด ๋๊ท๋ชจ ์ ์ ์๊ฑฐ๋ ์น์ฌ์ดํธ๊ฐ ์๋ ๊ฒฝ์ฐ ํํ์ด์ง, ์ ํ ๋ชฉ๋ก ๋ฐ ๊ฒฐ์ ํ๋ก์ธ์ค์ ๋ํด ์ฝ๋๋ฅผ ๋ณ๋์ ๋ฒ๋ค๋ก ๋ถํ ํ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ๋ฐฉ๋ฌธํ๋ ํน์ ํ์ด์ง์ ํ์ํ ์ฝ๋๋ง ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
2. ํธ๋ฆฌ ์์ดํน
ํธ๋ฆฌ ์์ดํน์ ์ข ์์ฑ์์ ์ฌ์ฉ๋์ง ์๋ ์ฝ๋๋ฅผ ์ ๊ฑฐํ๋ ๊ธฐ์ ์ ๋๋ค. Webpack ๋ฐ Rollup๊ณผ ๊ฐ์ ์ต์ ๋ชจ๋ ๋ฒ๋ค๋ฌ๋ ๋ฐ๋ ์ฝ๋๋ฅผ ์๋์ผ๋ก ์๋ณํ๊ณ ์ ๊ฑฐํ์ฌ ์ ์ฒด ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์์ต๋๋ค.
ํธ๋ฆฌ ์์ดํน์ ํ์ฑํํ๋ ค๋ฉด ์ข ์์ฑ์ด ์ ์ ์ผ๋ก ๋ถ์ํ ์ ์๋ ES ๋ชจ๋(ECMAScript ๋ชจ๋)๋ก ์์ฑ๋์๋์ง ํ์ธํ์ญ์์ค. CommonJS ๋ชจ๋(๊ตฌํ Node.js ํ๋ก์ ํธ์์ ์ฌ์ฉ)์ ํจ๊ณผ์ ์ผ๋ก ํธ๋ฆฌ ์์ดํฌํ๊ธฐ๊ฐ ๋ ์ด๋ ต์ต๋๋ค.
์๋ฅผ ๋ค์ด Lodash์ ๊ฐ์ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ์ ์ฒด ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๊ฐ์ ธ์ค๋ ๋์ ํ์ํ ํน์ ํจ์๋ง ๊ฐ์ ธ์ฌ ์ ์์ต๋๋ค. `import _ from 'lodash'` ๋์ `import get from 'lodash/get'` ๋ฐ `import map from 'lodash/map'`๋ฅผ ์ฌ์ฉํ์ญ์์ค. ์ด๋ ๊ฒ ํ๋ฉด ๋ฒ๋ค๋ฌ๊ฐ ์ฌ์ฉ๋์ง ์๋ Lodash ํจ์๋ฅผ ํธ๋ฆฌ ์์ดํฌํ ์ ์์ต๋๋ค.
3. ์ต์ํ
์ต์ํ๋ ๊ณต๋ฐฑ, ์ฃผ์ ๋ฐ ์ธ๋ฏธ์ฝ๋ก ๊ณผ ๊ฐ์ ๋ถํ์ํ ๋ฌธ์๋ฅผ ์ฝ๋์์ ์ ๊ฑฐํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฝ๋์ ๊ธฐ๋ฅ์ ์ํฅ์ ์ฃผ์ง ์๊ณ ํ์ผ ํฌ๊ธฐ๊ฐ ์ค์ด๋ญ๋๋ค.
๋๋ถ๋ถ์ ๋ชจ๋ ๋ฒ๋ค๋ฌ์๋ ๊ธฐ๋ณธ ์ ๊ณต ์ต์ํ ๋๊ตฌ๊ฐ ํฌํจ๋์ด ์๊ฑฐ๋ Terser ๋ฐ UglifyJS์ ๊ฐ์ ํ๋ฌ๊ทธ์ธ์ ์ง์ํฉ๋๋ค.
4. ์์ถ
์์ถ์ Gzip ๋๋ Brotli์ ๊ฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ์ฌ ํ์ผ์ ๋ธ๋ผ์ฐ์ ๋ก ๋ณด๋ด๊ธฐ ์ ์ ์์ถํ์ฌ ๋ฒ๋ค์ ํฌ๊ธฐ๋ฅผ ์ค์ ๋๋ค.
๋๋ถ๋ถ์ ์น ์๋ฒ์ CDN์ ์์ถ์ ์ง์ํฉ๋๋ค. ๋ฒ๋ค์ ๋ค์ด๋ก๋ ํฌ๊ธฐ๋ฅผ ํฌ๊ฒ ์ค์ด๋ ค๋ฉด ์๋ฒ์์ ์์ถ์ด ํ์ฑํ๋์ด ์๋์ง ํ์ธํ์ญ์์ค.
5. ์ข ์์ฑ ์ต์ ํ
์ข ์์ฑ์ ์ ์คํ๊ฒ ํ๊ฐํ๊ณ ๋ค์์ ๊ณ ๋ คํ์ญ์์ค.
- ์ฌ์ฉ๋์ง ์๋ ์ข ์์ฑ ์ ๊ฑฐ: ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์ข ์์ฑ์ ์๋ณํ๊ณ ์ ๊ฑฐํฉ๋๋ค.
- ๋๊ท๋ชจ ์ข ์์ฑ์ ๋ ์์ ๋์์ผ๋ก ๋์ฒด: ์ ์ฌํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๋๊ท๋ชจ ์ข ์์ฑ์ ๋ํ ๋ ์์ ๋์์ ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ ์ง ์กฐ์์ `Moment.js` ๋์ `date-fns`๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค. `date-fns`๋ ์ผ๋ฐ์ ์ผ๋ก ๋ ์๊ณ ๋ชจ๋์์ด๊ธฐ ๋๋ฌธ์ ๋๋ค.
- ์ด๋ฏธ์ง ์์ฐ ์ต์ ํ: ํ์ง์ ์ ํ์ํค์ง ์๊ณ ์ด๋ฏธ์ง๋ฅผ ์์ถํฉ๋๋ค. ImageOptim ๋๋ TinyPNG์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ด๋ฏธ์ง๋ฅผ ์ต์ ํํฉ๋๋ค. JPEG ๋๋ PNG๋ณด๋ค ๋ ๋์ ์์ถ์ ์ ๊ณตํ๋ WebP์ ๊ฐ์ ์ต์ ์ด๋ฏธ์ง ํ์์ ์ฌ์ฉํ๋ ๊ฒ์ด ์ข์ต๋๋ค.
- ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ฐ ์ง์ฐ ๋ก๋: ์ด๋ฏธ์ง ๋ฐ ๊ธฐํ ์์ฐ์ ํ์ํ ๋๋ง ๋ก๋ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ๋ทฐํฌํธ์ ํ์๋ ๋๋ง ๋ก๋ํฉ๋๋ค.
- ์ฝํ ์ธ ์ ์ก ๋คํธ์ํฌ(CDN) ์ฌ์ฉ: ์ ์ธ๊ณ ์ฌ๋ฌ ์๋ฒ์ ๋ถ์ฐ๋ ์ ์ ์์ฐ์ ๋ฐฐํฌํฉ๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฌ์ฉ์๊ฐ ์ง๋ฆฌ์ ์ผ๋ก ๊ฐ๊น์ด ์๋ฒ์์ ์์ฐ์ ๋ค์ด๋ก๋ํ์ฌ ๋๊ธฐ ์๊ฐ์ ์ค์ด๊ณ ๋ก๋ฉ ์๊ฐ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. Cloudflare ๋ฐ AWS CloudFront๋ ๋๋ฆฌ ์ฌ์ฉ๋๋ CDN ์ต์ ์ ๋๋ค.
6. ๋ฒ์ ๊ด๋ฆฌ ๋ฐ ์ข ์์ฑ ์ ๋ฐ์ดํธ
์ข ์์ฑ์ ์ต์ ์ํ๋ก ์ ์งํ๋ ๊ฒ์ ๋ณด์์์ ์ด์ ๋ฟ๋ง ์๋๋ผ ์ฑ๋ฅ ์ต์ ํ์๋ ์ค์ํฉ๋๋ค. ์ต์ ๋ฒ์ ์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ์๋ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ผ ์ ์๋ ์ฑ๋ฅ ๊ฐ์ ๋ฐ ๋ฒ๊ทธ ์์ ์ด ํฌํจ๋์ด ์๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค.
`npm audit` ๋๋ `yarn audit`๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ข ์์ฑ์ ๋ณด์ ์ทจ์ฝ์ ์ ์๋ณํ๊ณ ์์ ํฉ๋๋ค. ์ข ์์ฑ์ ์ต์ ์์ ๋ฒ์ ์ผ๋ก ์ ๊ธฐ์ ์ผ๋ก ์ ๋ฐ์ดํธํ๋ ๊ฐ ์ ๋ฐ์ดํธ ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒ ์ ํ ํ ์คํธํ์ฌ ํธํ์ฑ ๋ฌธ์ ๊ฐ ์๋์ง ํ์ธํ์ญ์์ค.
์๋งจํฑ ๋ฒ์ ๊ด๋ฆฌ(semver)๋ฅผ ์ฌ์ฉํ์ฌ ์ข ์์ฑ์ ๊ด๋ฆฌํ๋ ๊ฒ์ด ์ข์ต๋๋ค. Semver๋ ์ข ์์ฑ์ ๋ฒ์ ํธํ์ฑ์ ๋ช ํํ๊ณ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ง์ ํ์ฌ ์ฃผ์ ๋ณ๊ฒฝ ์ฌํญ์ ๋์ ํ์ง ์๊ณ ๋ ์ต์ ๋ฒ์ ์ผ๋ก ์ฝ๊ฒ ์ ๊ทธ๋ ์ด๋ํ ์ ์๋๋ก ํฉ๋๋ค.
7. ํ์ฌ ์คํฌ๋ฆฝํธ ๊ฐ์ฌ
๋ถ์ ์ถ์ ๊ธฐ, ๊ด๊ณ ๋คํธ์ํฌ ๋ฐ ์์ ๋ฏธ๋์ด ์์ ฏ๊ณผ ๊ฐ์ ํ์ฌ ์คํฌ๋ฆฝํธ๋ ์น์ฌ์ดํธ ์ฑ๋ฅ์ ์๋นํ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์ด๋ฌํ ์คํฌ๋ฆฝํธ๊ฐ ์น์ฌ์ดํธ ์๋๋ฅผ ๋ฆ์ถ์ง ์๋์ง ์ ๊ธฐ์ ์ผ๋ก ๊ฐ์ฌํ์ญ์์ค.
๋ค์์ ๊ณ ๋ คํ์ญ์์ค.
- ํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ๋น๋๊ธฐ์ ์ผ๋ก ๋ก๋: ๋น๋๊ธฐ ๋ก๋๋ฅผ ์ฌ์ฉํ๋ฉด ์ด๋ฌํ ์คํฌ๋ฆฝํธ๊ฐ ์น์ฌ์ดํธ ๋ ๋๋ง์ ์ฐจ๋จํ๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
- ์ค์ํ์ง ์์ ์คํฌ๋ฆฝํธ ๋ก๋๋ฅผ ์ฐ๊ธฐ: ํ์ด์ง๊ฐ ๋ก๋๋ ํ์ ์น์ฌ์ดํธ์ ์ด๊ธฐ ๋ ๋๋ง์ ํ์์ ์ด์ง ์์ ์คํฌ๋ฆฝํธ ๋ก๋๋ฅผ ์ฐ๊ธฐํฉ๋๋ค.
- ํ์ฌ ์คํฌ๋ฆฝํธ ์ ์ต์ํ: ์ค์ํ ๊ฐ์น๋ฅผ ์ ๊ณตํ์ง ์๋ ๋ถํ์ํ ํ์ฌ ์คํฌ๋ฆฝํธ๋ฅผ ์ ๊ฑฐํฉ๋๋ค.
์๋ฅผ ๋ค์ด Google Analytics๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ `