๋ชจ๋ ๊ทธ๋ํ ์ฑ๋ฅ์ ์ดํดํ๊ณ ๊ฐ์ ํ์ฌ ์๋ฐ์คํฌ๋ฆฝํธ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ์ต์ ํํ์ธ์. ์์กด์ฑ ํด๊ฒฐ ์๋ ๋ถ์ ๋ฐ ํจ๊ณผ์ ์ธ ์ต์ ํ ์ ๋ต ๊ตฌํ ๋ฐฉ๋ฒ์ ์์๋ด ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๊ทธ๋ํ ์ฑ๋ฅ: ์์กด์ฑ ๋ถ์ ์๋ ์ต์ ํ
React, Angular, Vue.js์ ๊ฐ์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํ๋ ํ๋ ์๋ฐ์คํฌ๋ฆฝํธ ๊ฐ๋ฐ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ชจ๋์ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ์ฌ ๊ตฌ์ถ๋ฉ๋๋ค. ์ด๋ ํฐ ์ฝ๋๋ฒ ์ด์ค๋ฅผ ๋ชจ๋์ด๋ผ๋ ๋ ์๊ณ ์ฌ์ฌ์ฉ ๊ฐ๋ฅํ ๋จ์๋ก ๋๋๋ ๊ฒ์ ์๋ฏธํฉ๋๋ค. ์ด ๋ชจ๋๋ค์ ์๋ก ์์กดํ๋ฉฐ, ๋ชจ๋ ๊ทธ๋ํ๋ผ๊ณ ์๋ ค์ง ๋ณต์กํ ๋คํธ์ํฌ๋ฅผ ํ์ฑํฉ๋๋ค. ๋น๋ ํ๋ก์ธ์ค์ ์ฑ๋ฅ๊ณผ ๊ถ๊ทน์ ์ผ๋ก ์ฌ์ฉ์ ๊ฒฝํ์ ์ด ๊ทธ๋ํ์ ํจ์จ์ ์ธ ๊ตฌ์ฑ๊ณผ ๋ถ์์ ํฌ๊ฒ ์์กดํฉ๋๋ค.
๋๋ฆฐ ๋ชจ๋ ๊ทธ๋ํ๋ ๋น๋ ์๊ฐ์ ์๋นํ ๊ธธ๊ฒ ๋ง๋ค์ด ๊ฐ๋ฐ์ ์์ฐ์ฑ์ ์ํฅ์ ๋ฏธ์น๊ณ ๋ฐฐํฌ ์ฃผ๊ธฐ๋ฅผ ๋ฆ์ถ ์ ์์ต๋๋ค. ๋ชจ๋ ๊ทธ๋ํ๋ฅผ ์ต์ ํํ๋ ๋ฐฉ๋ฒ์ ์ดํดํ๋ ๊ฒ์ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ์ด ๊ธ์์๋ ๋ชจ๋ ๊ทธ๋ํ ๊ตฌ์ฑ์ ํต์ฌ์ ์ธ ์ธก๋ฉด์ธ ์์กด์ฑ ํด๊ฒฐ ์๋๋ฅผ ๋ถ์ํ๊ณ ๊ฐ์ ํ๋ ๊ธฐ์ ์ ํ๊ตฌํฉ๋๋ค.
์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๊ทธ๋ํ ์ดํดํ๊ธฐ
๋ชจ๋ ๊ทธ๋ํ๋ ์ ํ๋ฆฌ์ผ์ด์ ๋ด ๋ชจ๋ ๊ฐ์ ๊ด๊ณ๋ฅผ ๋ํ๋ ๋๋ค. ๊ทธ๋ํ์ ๊ฐ ๋ ธ๋๋ ๋ชจ๋(์๋ฐ์คํฌ๋ฆฝํธ ํ์ผ)์ ๋ํ๋ด๊ณ , ์ฃ์ง(edge)๋ ํด๋น ๋ชจ๋ ๊ฐ์ ์์กด์ฑ์ ๋ํ๋ ๋๋ค. Webpack, Rollup, Parcel๊ณผ ๊ฐ์ ๋ฒ๋ค๋ฌ๊ฐ ์ฝ๋๋ฅผ ์ฒ๋ฆฌํ ๋, ์ด ๊ทธ๋ํ๋ฅผ ์ํํ์ฌ ํ์ํ ๋ชจ๋ ๋ชจ๋์ ์ต์ ํ๋ ์ถ๋ ฅ ํ์ผ๋ก ๋ฒ๋ค๋งํฉ๋๋ค.
ํต์ฌ ๊ฐ๋
- ๋ชจ๋: ํน์ ๊ธฐ๋ฅ์ ๊ฐ์ง ๋ ๋ฆฝ์ ์ธ ์ฝ๋ ๋จ์์ ๋๋ค. ํน์ ๊ธฐ๋ฅ(exports)์ ๋ ธ์ถํ๊ณ ๋ค๋ฅธ ๋ชจ๋์ ๊ธฐ๋ฅ(imports)์ ์ฌ์ฉํฉ๋๋ค.
- ์์กด์ฑ: ํ ๋ชจ๋์ด ๋ค๋ฅธ ๋ชจ๋์ export์ ์์กดํ๋ ๋ชจ๋ ๊ฐ์ ๊ด๊ณ์ ๋๋ค.
- ๋ชจ๋ ํด์(Module Resolution): import ๋ฌธ์ ๋ง๋ฌ์ ๋ ์ฌ๋ฐ๋ฅธ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ๋๋ค. ์ด๋ ์ค์ ๋ ๋๋ ํ ๋ฆฌ๋ฅผ ๊ฒ์ํ๊ณ ํด์ ๊ท์น์ ์ ์ฉํ๋ ๊ฒ์ ํฌํจํฉ๋๋ค.
- ๋ฒ๋ค๋ง: ์ฌ๋ฌ ๋ชจ๋๊ณผ ๊ทธ ์์กด์ฑ์ ํ๋ ์ด์์ ์ถ๋ ฅ ํ์ผ๋ก ๊ฒฐํฉํ๋ ๊ณผ์ ์ ๋๋ค.
- ํธ๋ฆฌ ์์ดํน(Tree Shaking): ๋ฒ๋ค๋ง ๊ณผ์ ์์ ๋ฐ๋ ์ฝ๋(์ฌ์ฉ๋์ง ์๋ export)๋ฅผ ์ ๊ฑฐํ์ฌ ์ต์ข ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๋ ๊ณผ์ ์ ๋๋ค.
- ์ฝ๋ ์คํ๋ฆฌํ (Code Splitting): ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ฒ๋ค๋ก ๋๋์ด ํ์ํ ๋ ๋ก๋ํ ์ ์๊ฒ ํจ์ผ๋ก์จ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๋ ๊ฒ์ ๋๋ค.
๋ชจ๋ ๊ทธ๋ํ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ์์ธ
์ฌ๋ฌ ์์ธ์ด ๋ชจ๋ ๊ทธ๋ํ ๊ตฌ์ฑ ๋ฐ ๋ถ์ ์๋๋ฅผ ์ ํ์ํฌ ์ ์์ต๋๋ค. ์ฌ๊ธฐ์๋ ๋ค์์ด ํฌํจ๋ฉ๋๋ค:
- ๋ชจ๋์ ์: ๋ ๋ง์ ๋ชจ๋์ ๊ฐ์ง ๋๊ท๋ชจ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ฐ์ค๋ฝ๊ฒ ๋ ํฌ๊ณ ๋ณต์กํ ๋ชจ๋ ๊ทธ๋ํ๋ฅผ ๋ง๋ญ๋๋ค.
- ์์กด์ฑ์ ๊น์ด: ๊น๊ฒ ์ค์ฒฉ๋ ์์กด์ฑ ์ฒด์ธ์ ๊ทธ๋ํ๋ฅผ ์ํํ๋ ๋ฐ ํ์ํ ์๊ฐ์ ํฌ๊ฒ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
- ๋ชจ๋ ํด์์ ๋ณต์ก์ฑ: ์ฌ์ฉ์ ์ง์ ๋ณ์นญ(alias)์ด๋ ์ฌ๋ฌ ๊ฒ์ ๊ฒฝ๋ก์ ๊ฐ์ ๋ณต์กํ ๋ชจ๋ ํด์ ๊ตฌ์ฑ์ ํ๋ก์ธ์ค๋ฅผ ๋ฆ์ถ ์ ์์ต๋๋ค.
- ์ํ ์์กด์ฑ: ์ํ ์์กด์ฑ(๋ชจ๋ A๊ฐ ๋ชจ๋ B์ ์์กดํ๊ณ , ๋ชจ๋ B๊ฐ ๋ชจ๋ A์ ์์กดํ๋ ๊ฒฝ์ฐ)์ ๋ฌดํ ๋ฃจํ์ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ์ผ์ผํฌ ์ ์์ต๋๋ค.
- ๋นํจ์จ์ ์ธ ํด๋ง ๊ตฌ์ฑ: ๋ฒ๋ค๋ฌ ๋ฐ ๊ด๋ จ ๋๊ตฌ์ ์ต์ ํ๋์ง ์์ ๊ตฌ์ฑ์ ๋นํจ์จ์ ์ธ ๋ชจ๋ ๊ทธ๋ํ ๊ตฌ์ฑ์ผ๋ก ์ด์ด์ง ์ ์์ต๋๋ค.
- ํ์ผ ์์คํ ์ฑ๋ฅ: ๋๋ฆฐ ํ์ผ ์์คํ ์ฝ๊ธฐ ์๋๋ ๋ชจ๋ ํ์ผ์ ์ฐพ๊ณ ์ฝ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค.
๋ชจ๋ ๊ทธ๋ํ ์ฑ๋ฅ ๋ถ์ํ๊ธฐ
๋ชจ๋ ๊ทธ๋ํ๋ฅผ ์ต์ ํํ๊ธฐ ์ ์ ๋ณ๋ชฉ ํ์์ด ์ด๋์์ ๋ฐ์ํ๋์ง ์ดํดํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ์ฌ๋ฌ ๋๊ตฌ์ ๊ธฐ์ ์ด ๋น๋ ํ๋ก์ธ์ค์ ์ฑ๋ฅ์ ๋ถ์ํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค:
1. ๋น๋ ์๊ฐ ๋ถ์ ๋๊ตฌ
๋๋ถ๋ถ์ ๋ฒ๋ค๋ฌ๋ ๋น๋ ์๊ฐ์ ๋ถ์ํ๊ธฐ ์ํ ๋ด์ฅ ๋๊ตฌ๋ ํ๋ฌ๊ทธ์ธ์ ์ ๊ณตํฉ๋๋ค:
- Webpack:
--profileํ๋๊ทธ๋ฅผ ์ฌ์ฉํ๊ณwebpack-bundle-analyzer๋speed-measure-webpack-plugin๊ณผ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ์ถ๋ ฅ์ ๋ถ์ํ์ธ์.webpack-bundle-analyzer๋ ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์๊ฐ์ ์ผ๋ก ๋ณด์ฌ์ฃผ๋ฉฐ,speed-measure-webpack-plugin์ ๋น๋ ํ๋ก์ธ์ค์ ๊ฐ ๋จ๊ณ์์ ์์๋ ์๊ฐ์ ๋ณด์ฌ์ค๋๋ค. - Rollup:
--perfํ๋๊ทธ๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ๋ฅ ๋ณด๊ณ ์๋ฅผ ์์ฑํ์ธ์. ์ด ๋ณด๊ณ ์๋ ๋ชจ๋ ํด์ ๋ฐ ๋ณํ์ ํฌํจํ์ฌ ๋ฒ๋ค๋ง ํ๋ก์ธ์ค์ ๊ฐ ๋จ๊ณ์์ ์์๋ ์๊ฐ์ ๋ํ ์์ธํ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. - Parcel: Parcel์ ์ฝ์์ ๋น๋ ์๊ฐ์ ์๋์ผ๋ก ์ ๊ณตํฉ๋๋ค. ๋ ์ฌ์ธต์ ์ธ ๋ถ์์ ์ํด
--detailed-reportํ๋๊ทธ๋ฅผ ์ฌ์ฉํ ์๋ ์์ต๋๋ค.
์ด๋ฌํ ๋๊ตฌ๋ ์ด๋ค ๋ชจ๋์ด๋ ํ๋ก์ธ์ค๊ฐ ๊ฐ์ฅ ๋ง์ ์๊ฐ์ ์ฐจ์งํ๋์ง์ ๋ํ ๊ท์คํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ์ฌ ์ต์ ํ ๋ ธ๋ ฅ์ ํจ๊ณผ์ ์ผ๋ก ์ง์คํ ์ ์๊ฒ ํด์ค๋๋ค.
2. ํ๋กํ์ผ๋ง ๋๊ตฌ
๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ๋ Node.js ํ๋กํ์ผ๋ง ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ํ๋ก์ธ์ค์ ์ฑ๋ฅ์ ๋ถ์ํ์ธ์. ์ด๋ CPU ์ง์ฝ์ ์ธ ์์ ๊ณผ ๋ฉ๋ชจ๋ฆฌ ๋์๋ฅผ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
- Node.js Profiler: ๋ด์ฅ๋ Node.js ํ๋กํ์ผ๋ฌ๋
Clinic.js์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ์ฌ ๋น๋ ์ค CPU ์ฌ์ฉ๋๊ณผ ๋ฉ๋ชจ๋ฆฌ ํ ๋น์ ๋ถ์ํ์ธ์. ์ด๋ ๋น๋ ์คํฌ๋ฆฝํธ๋ ๋ฒ๋ค๋ฌ ๊ตฌ์ฑ์ ๋ณ๋ชฉ ํ์์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. - Browser Developer Tools: ๋ธ๋ผ์ฐ์ ๊ฐ๋ฐ์ ๋๊ตฌ์ ์ฑ๋ฅ ํญ์ ์ฌ์ฉํ์ฌ ๋น๋ ํ๋ก์ธ์ค์ ํ๋กํ์ ๊ธฐ๋กํ์ธ์. ์ด๋ ์ค๋ ์คํ๋๋ ํจ์๋ ๋นํจ์จ์ ์ธ ์์ ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
3. ์ฌ์ฉ์ ์ ์ ๋ก๊น ๋ฐ ๋ฉํธ๋ฆญ
๋น๋ ํ๋ก์ธ์ค์ ์ฌ์ฉ์ ์ ์ ๋ก๊น ๋ฐ ๋ฉํธ๋ฆญ์ ์ถ๊ฐํ์ฌ ๋ชจ๋ ํด์์ด๋ ์ฝ๋ ๋ณํ๊ณผ ๊ฐ์ ํน์ ์์ ์ ์์๋ ์๊ฐ์ ์ถ์ ํ์ธ์. ์ด๋ ๋ชจ๋ ๊ทธ๋ํ์ ์ฑ๋ฅ์ ๋ํ ๋ ์ธ๋ถํ๋ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์๋ฅผ ๋ค์ด, ์ฌ์ฉ์ ์ง์ Webpack ํ๋ฌ๊ทธ์ธ์์ ๋ชจ๋ ํด์ ํ๋ก์ธ์ค ์ฃผ์์ ๊ฐ๋จํ ํ์ด๋จธ๋ฅผ ์ถ๊ฐํ์ฌ ๊ฐ ๋ชจ๋์ ํด์ํ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ธก์ ํ ์ ์์ต๋๋ค. ์ด ๋ฐ์ดํฐ๋ ์ง๊ณ๋๊ณ ๋ถ์๋์ด ๋๋ฆฐ ๋ชจ๋ ํด์ ๊ฒฝ๋ก๋ฅผ ์๋ณํ ์ ์์ต๋๋ค.
์ต์ ํ ์ ๋ต
๋ชจ๋ ๊ทธ๋ํ์ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ํ์ธํ๋ค๋ฉด, ๋ค์ํ ์ต์ ํ ์ ๋ต์ ์ ์ฉํ์ฌ ์์กด์ฑ ํด๊ฒฐ ์๋์ ์ ๋ฐ์ ์ธ ๋น๋ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
1. ๋ชจ๋ ํด์ ์ต์ ํ
๋ชจ๋ ํด์์ import ๋ฌธ์ ๋ง๋ฌ์ ๋ ์ฌ๋ฐ๋ฅธ ๋ชจ๋ ๊ฒฝ๋ก๋ฅผ ์ฐพ๋ ๊ณผ์ ์ ๋๋ค. ์ด ๊ณผ์ ์ ์ต์ ํํ๋ฉด ๋น๋ ์๊ฐ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ํน์ import ๊ฒฝ๋ก ์ฌ์ฉ:
../../module๊ณผ ๊ฐ์ ์๋์ ์ธ import ๊ฒฝ๋ก ์ฌ์ฉ์ ํผํ์ธ์. ๋์ ์ ๋ ๊ฒฝ๋ก๋ฅผ ์ฌ์ฉํ๊ฑฐ๋ ๋ชจ๋ ๋ณ์นญ์ ๊ตฌ์ฑํ์ฌ import ํ๋ก์ธ์ค๋ฅผ ๋จ์ํํ์ธ์. ์๋ฅผ ๋ค์ด,../../../components/Button๋์@components/Button์ ์ฌ์ฉํ๋ ๊ฒ์ด ํจ์ฌ ํจ์จ์ ์ ๋๋ค. - ๋ชจ๋ ๋ณ์นญ ๊ตฌ์ฑ: ๋ฒ๋ค๋ฌ ๊ตฌ์ฑ์์ ๋ชจ๋ ๋ณ์นญ์ ์ฌ์ฉํ์ฌ ๋ ์งง๊ณ ์ฝ๊ธฐ ์ฌ์ด import ๊ฒฝ๋ก๋ฅผ ๋ง๋์ธ์. ์ด๋ฅผ ํตํด ์ ํ๋ฆฌ์ผ์ด์
์ ์ฒด์ import ๊ฒฝ๋ก๋ฅผ ์
๋ฐ์ดํธํ์ง ์๊ณ ๋ ์ฝ๋๋ฅผ ์ฝ๊ฒ ๋ฆฌํฉํ ๋งํ ์ ์์ต๋๋ค. Webpack์์๋
resolve.alias์ต์ ์ ์ฌ์ฉํ์ฌ ์ด ์์ ์ ์ํํฉ๋๋ค. Rollup์์๋@rollup/plugin-aliasํ๋ฌ๊ทธ์ธ์ ์ฌ์ฉํ ์ ์์ต๋๋ค. resolve.modules์ต์ ํ: Webpack์์resolve.modules์ต์ ์ ๋ชจ๋์ ๊ฒ์ํ ๋๋ ํ ๋ฆฌ๋ฅผ ์ง์ ํฉ๋๋ค. ์ด ์ต์ ์ด ์ฌ๋ฐ๋ฅด๊ฒ ๊ตฌ์ฑ๋์ด ์๊ณ ํ์ํ ๋๋ ํ ๋ฆฌ๋ง ํฌํจ๋์ด ์๋์ง ํ์ธํ์ธ์. ๋ถํ์ํ ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํ๋ฉด ๋ชจ๋ ํด์ ํ๋ก์ธ์ค๊ฐ ๋๋ ค์ง ์ ์์ผ๋ฏ๋ก ํผํด์ผ ํฉ๋๋ค.resolve.extensions์ต์ ํ:resolve.extensions์ต์ ์ ๋ชจ๋์ ํด์ํ ๋ ์๋ํ ํ์ผ ํ์ฅ์๋ฅผ ์ง์ ํฉ๋๋ค. ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ํ์ฅ์๊ฐ ๋จผ์ ๋์ด๋๋๋ก ํ์ฌ ๋ชจ๋ ํด์ ์๋๋ฅผ ํฅ์์ํฌ ์ ์์ต๋๋ค.resolve.symlinks: false์ฌ์ฉ (์ฃผ์): ์ฌ๋ณผ๋ฆญ ๋งํฌ๋ฅผ ํด์ํ ํ์๊ฐ ์๋ค๋ฉด ์ด ์ต์ ์ ๋นํ์ฑํํ์ฌ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ์ด๋ก ์ธํด ์ฌ๋ณผ๋ฆญ ๋งํฌ์ ์์กดํ๋ ํน์ ๋ชจ๋์ด ์์๋ ์ ์๋ค๋ ์ ์ ์ ์ํ์ธ์. ์ด ์ต์ ์ ํ์ฑํํ๊ธฐ ์ ์ ํ๋ก์ ํธ์ ๋ฏธ์น๋ ์ํฅ์ ์ดํดํด์ผ ํฉ๋๋ค.- ์บ์ฑ ํ์ฉ: ๋ฒ๋ค๋ฌ์ ์บ์ฑ ๋ฉ์ปค๋์ฆ์ด ์ ๋๋ก ๊ตฌ์ฑ๋์๋์ง ํ์ธํ์ธ์. Webpack, Rollup, Parcel ๋ชจ๋ ๋ด์ฅ ์บ์ฑ ๊ธฐ๋ฅ์ด ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Webpack์ ๊ธฐ๋ณธ์ ์ผ๋ก ํ์ผ ์์คํ ์บ์๋ฅผ ์ฌ์ฉํ๋ฉฐ, ๋ค๋ฅธ ํ๊ฒฝ์ ๋ง๊ฒ ์ถ๊ฐ๋ก ์ฌ์ฉ์ ์ ์ํ ์ ์์ต๋๋ค.
2. ์ํ ์์กด์ฑ ์ ๊ฑฐ
์ํ ์์กด์ฑ์ ์ฑ๋ฅ ๋ฌธ์ ์ ์๊ธฐ์น ์์ ๋์์ ์ ๋ฐํ ์ ์์ต๋๋ค. ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํ ์์กด์ฑ์ ์๋ณํ๊ณ ์ ๊ฑฐํ์ธ์.
- ์์กด์ฑ ๋ถ์ ๋๊ตฌ ์ฌ์ฉ:
madge์ ๊ฐ์ ๋๊ตฌ๋ฅผ ์ฌ์ฉํ๋ฉด ์ฝ๋๋ฒ ์ด์ค์์ ์ํ ์์กด์ฑ์ ์๋ณํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. - ์ฝ๋ ๋ฆฌํฉํ ๋ง: ์ํ ์์กด์ฑ์ ์ ๊ฑฐํ๋๋ก ์ฝ๋๋ฅผ ์ฌ๊ตฌ์ฑํ์ธ์. ์ด๋ ๊ณต์ ๊ธฐ๋ฅ์ ๋ณ๋์ ๋ชจ๋๋ก ์ฎ๊ธฐ๊ฑฐ๋ ์์กด์ฑ ์ฃผ์ ์ ์ฌ์ฉํ๋ ๊ฒ์ ํฌํจํ ์ ์์ต๋๋ค.
- ์ง์ฐ ๋ก๋ฉ ๊ณ ๋ ค: ๊ฒฝ์ฐ์ ๋ฐ๋ผ ์ง์ฐ ๋ก๋ฉ์ ์ฌ์ฉํ์ฌ ์ํ ์์กด์ฑ์ ๋์ ์ ์์ต๋๋ค. ์ด๋ ๋ชจ๋์ด ํ์ํ ๋๋ง ๋ก๋ํ๋ ๊ฒ์ผ๋ก, ์ด๊ธฐ ๋น๋ ํ๋ก์ธ์ค ์ค์ ์ํ ์์กด์ฑ์ด ํด๊ฒฐ๋๋ ๊ฒ์ ๋ฐฉ์งํ ์ ์์ต๋๋ค.
3. ์์กด์ฑ ์ต์ ํ
์์กด์ฑ์ ์์ ํฌ๊ธฐ๋ ๋ชจ๋ ๊ทธ๋ํ์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ์์กด์ฑ์ ์ต์ ํํ์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ๋ณต์ก์ฑ์ ์ค์ด์ธ์.
- ์ฌ์ฉํ์ง ์๋ ์์กด์ฑ ์ ๊ฑฐ: ์ ํ๋ฆฌ์ผ์ด์ ์์ ๋ ์ด์ ์ฌ์ฉ๋์ง ์๋ ์์กด์ฑ์ ์๋ณํ๊ณ ์ ๊ฑฐํ์ธ์.
- ๊ฒฝ๋ ๋์ ์ฌ์ฉ: ๋ ํฐ ์์กด์ฑ ๋์ ๊ฒฝ๋ ๋์์ ์ฌ์ฉํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์๋ฅผ ๋ค์ด, ํฐ ์ ํธ๋ฆฌํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ๋ ์๊ณ ์ง์ค๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ก ๋์ฒดํ ์ ์์ต๋๋ค.
- ์์กด์ฑ ๋ฒ์ ์ต์ ํ: ์์ผ๋์นด๋ ๋ฒ์ ๋ฒ์์ ์์กดํ๋ ๋์ ํน์ ๋ฒ์ ์ ์์กด์ฑ์ ์ฌ์ฉํ์ธ์. ์ด๋ ์๊ธฐ์น ์์ ๋ธ๋ ์ดํน ์ฒด์ธ์ง๋ฅผ ๋ฐฉ์งํ๊ณ ๋ค๋ฅธ ํ๊ฒฝ์์ ์ผ๊ด๋ ๋์์ ๋ณด์ฅํ ์ ์์ต๋๋ค. ์ด๋ฅผ ์ํด lockfile(package-lock.json ๋๋ yarn.lock)์ ์ฌ์ฉํ๋ ๊ฒ์ด *ํ์์ *์ ๋๋ค.
- ์์กด์ฑ ๊ฐ์ฌ: ์ ๊ธฐ์ ์ผ๋ก ์์กด์ฑ์ ๋ณด์ ์ทจ์ฝ์ ๊ณผ ์ค๋๋ ํจํค์ง๋ฅผ ๊ฐ์ฌํ์ธ์. ์ด๋ ๋ณด์ ์ํ์ ๋ฐฉ์งํ๊ณ ์ต์ ๋ฒ์ ์ ์์กด์ฑ์ ์ฌ์ฉํ๊ณ ์๋์ง ํ์ธํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค.
npm audit์ด๋yarn audit๊ณผ ๊ฐ์ ๋๊ตฌ๊ฐ ๋์์ด ๋ ์ ์์ต๋๋ค.
4. ์ฝ๋ ์คํ๋ฆฌํ
์ฝ๋ ์คํ๋ฆฌํ ์ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ฅผ ํ์์ ๋ฐ๋ผ ๋ก๋ํ ์ ์๋ ์ฌ๋ฌ ๊ฐ์ ์์ ๋ฒ๋ค๋ก ๋๋๋๋ค. ์ด๋ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ํฌ๊ฒ ๊ฐ์ ํ๊ณ ๋ชจ๋ ๊ทธ๋ํ์ ์ ๋ฐ์ ์ธ ๋ณต์ก์ฑ์ ์ค์ผ ์ ์์ต๋๋ค.
- ๋ผ์ฐํธ ๊ธฐ๋ฐ ์คํ๋ฆฌํ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ๋ผ์ฐํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ๋ถํ ํ์ธ์. ์ด๋ฅผ ํตํด ์ฌ์ฉ์๋ ํ์ฌ ๋ผ์ฐํธ์ ํ์ํ ์ฝ๋๋ง ๋ค์ด๋ก๋ํ ์ ์์ต๋๋ค.
- ์ปดํฌ๋ํธ ๊ธฐ๋ฐ ์คํ๋ฆฌํ : ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค๋ฅธ ์ปดํฌ๋ํธ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ฝ๋๋ฅผ ๋ถํ ํ์ธ์. ์ด๋ฅผ ํตํด ์ปดํฌ๋ํธ๋ฅผ ํ์์ ๋ฐ๋ผ ๋ก๋ํ์ฌ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ์ค์ผ ์ ์์ต๋๋ค.
- ๋ฒค๋ ์คํ๋ฆฌํ : ๋ฒค๋ ์ฝ๋(์๋ํํฐ ๋ผ์ด๋ธ๋ฌ๋ฆฌ)๋ฅผ ๋ณ๋์ ๋ฒ๋ค๋ก ๋ถํ ํ์ธ์. ๋ฒค๋ ์ฝ๋๋ ์ ํ๋ฆฌ์ผ์ด์ ์ฝ๋๋ณด๋ค ๋ณ๊ฒฝ๋ ๊ฐ๋ฅ์ฑ์ด ์ ์ผ๋ฏ๋ก ๋ณ๋๋ก ์บ์ํ ์ ์์ต๋๋ค.
- ๋์ ์ํฌํธ(Dynamic Imports): ๋์ ์ํฌํธ(
import())๋ฅผ ์ฌ์ฉํ์ฌ ํ์์ ๋ฐ๋ผ ๋ชจ๋์ ๋ก๋ํ์ธ์. ์ด๋ฅผ ํตํด ๋ชจ๋์ด ํ์ํ ๋๋ง ๋ก๋ํ์ฌ ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ์ค์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๋ฐ์ ์ธ ์ฑ๋ฅ์ ํฅ์์ํฌ ์ ์์ต๋๋ค.
5. ํธ๋ฆฌ ์์ดํน
ํธ๋ฆฌ ์์ดํน์ ๋ฒ๋ค๋ง ๊ณผ์ ์์ ๋ฐ๋ ์ฝ๋(์ฌ์ฉ๋์ง ์๋ export)๋ฅผ ์ ๊ฑฐํฉ๋๋ค. ์ด๋ ์ต์ข ๋ฒ๋ค ํฌ๊ธฐ๋ฅผ ์ค์ด๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ ํฅ์์ํต๋๋ค.
- ES ๋ชจ๋ ์ฌ์ฉ: CommonJS ๋ชจ๋(
require๋ฐmodule.exports) ๋์ ES ๋ชจ๋(import๋ฐexport)์ ์ฌ์ฉํ์ธ์. ES ๋ชจ๋์ ์ ์ ์ผ๋ก ๋ถ์ํ ์ ์์ด ๋ฒ๋ค๋ฌ๊ฐ ํจ๊ณผ์ ์ผ๋ก ํธ๋ฆฌ ์์ดํน์ ์ํํ ์ ์์ต๋๋ค. - ๋ถ์ ํจ๊ณผ(Side Effects) ํผํ๊ธฐ: ๋ชจ๋์์ ๋ถ์ ํจ๊ณผ๋ฅผ ํผํ์ธ์. ๋ถ์ ํจ๊ณผ๋ ์ ์ญ ์ํ๋ฅผ ์์ ํ๊ฑฐ๋ ๋ค๋ฅธ ์๋ํ์ง ์์ ๊ฒฐ๊ณผ๋ฅผ ์ด๋ํ๋ ์์ ์ ๋๋ค. ๋ถ์ ํจ๊ณผ๊ฐ ์๋ ๋ชจ๋์ ํจ๊ณผ์ ์ผ๋ก ํธ๋ฆฌ ์์ดํน๋ ์ ์์ต๋๋ค.
- ๋ชจ๋์ ๋ถ์ ํจ๊ณผ ์์์ผ๋ก ํ์: ๋ถ์ ํจ๊ณผ๊ฐ ์๋ ๋ชจ๋์ด ์๋ ๊ฒฝ์ฐ
package.jsonํ์ผ์ ๊ทธ๋ ๊ฒ ํ์ํ ์ ์์ต๋๋ค. ์ด๋ ๋ฒ๋ค๋ฌ๊ฐ ๋ ํจ๊ณผ์ ์ผ๋ก ํธ๋ฆฌ ์์ดํน์ ์ํํ๋ ๋ฐ ๋์์ด ๋ฉ๋๋ค. package.json์"sideEffects": false๋ฅผ ์ถ๊ฐํ์ฌ ํจํค์ง์ ๋ชจ๋ ํ์ผ์ ๋ถ์ ํจ๊ณผ๊ฐ ์์์ ๋ํ๋ ๋๋ค. ์ผ๋ถ ํ์ผ์๋ง ๋ถ์ ํจ๊ณผ๊ฐ ์๋ ๊ฒฝ์ฐ"sideEffects": ["./src/hasSideEffects.js"]์ ๊ฐ์ด ๋ถ์ ํจ๊ณผ๊ฐ *์๋* ํ์ผ์ ๋ฐฐ์ด์ ์ ๊ณตํ ์ ์์ต๋๋ค.
6. ํด๋ง ๊ตฌ์ฑ ์ต์ ํ
๋ฒ๋ค๋ฌ ๋ฐ ๊ด๋ จ ๋๊ตฌ์ ๊ตฌ์ฑ์ ๋ชจ๋ ๊ทธ๋ํ์ ์ฑ๋ฅ์ ํฐ ์ํฅ์ ๋ฏธ์น ์ ์์ต๋๋ค. ๋น๋ ํ๋ก์ธ์ค์ ํจ์จ์ฑ์ ๋์ด๊ธฐ ์ํด ํด๋ง ๊ตฌ์ฑ์ ์ต์ ํํ์ธ์.
- ์ต์ ๋ฒ์ ์ฌ์ฉ: ๋ฒ๋ค๋ฌ ๋ฐ ๊ด๋ จ ๋๊ตฌ์ ์ต์ ๋ฒ์ ์ ์ฌ์ฉํ์ธ์. ์ต์ ๋ฒ์ ์๋ ์ข ์ข ์ฑ๋ฅ ๊ฐ์ ๋ฐ ๋ฒ๊ทธ ์์ ์ด ํฌํจ๋ฉ๋๋ค.
- ๋ณ๋ ฌ ์ฒ๋ฆฌ ๊ตฌ์ฑ: ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ณ๋ ฌํํ๊ธฐ ์ํด ์ฌ๋ฌ ์ค๋ ๋๋ฅผ ์ฌ์ฉํ๋๋ก ๋ฒ๋ค๋ฌ๋ฅผ ๊ตฌ์ฑํ์ธ์. ์ด๋ ํนํ ๋ฉํฐ์ฝ์ด ๋จธ์ ์์ ๋น๋ ์๊ฐ์ ํฌ๊ฒ ์ค์ผ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Webpack์์๋ ์ด ๋ชฉ์ ์ผ๋ก
thread-loader๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. - ๋ณํ ์ต์ํ: ๋น๋ ๊ณผ์ ์์ ์ฝ๋์ ์ ์ฉ๋๋ ๋ณํ ์๋ฅผ ์ต์ํํ์ธ์. ๋ณํ์ ๊ณ์ฐ ๋น์ฉ์ด ๋ง์ด ๋ค๊ณ ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ฆ์ถ ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, Babel์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๋ณํ์ด ํ์ํ ์ฝ๋๋ง ๋ณํํ์ธ์.
- ๋น ๋ฅธ Minifier ์ฌ์ฉ:
terser๋esbuild์ ๊ฐ์ ๋น ๋ฅธ minifier๋ฅผ ์ฌ์ฉํ์ฌ ์ฝ๋๋ฅผ ์์ถํ์ธ์. ์ฝ๋ ์์ถ์ ์ฝ๋ ํฌ๊ธฐ๋ฅผ ์ค์ฌ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ ์ ์์ต๋๋ค. - ๋น๋ ํ๋ก์ธ์ค ํ๋กํ์ผ๋ง: ์ ๊ธฐ์ ์ผ๋ก ๋น๋ ํ๋ก์ธ์ค๋ฅผ ํ๋กํ์ผ๋งํ์ฌ ์ฑ๋ฅ ๋ณ๋ชฉ ํ์์ ์๋ณํ๊ณ ํด๋ง ๊ตฌ์ฑ์ ์ต์ ํํ์ธ์.
7. ํ์ผ ์์คํ ์ต์ ํ
ํ์ผ ์์คํ ์ ์๋๋ ๋ชจ๋ ํ์ผ์ ์ฐพ๊ณ ์ฝ๋ ๋ฐ ๊ฑธ๋ฆฌ๋ ์๊ฐ์ ์ํฅ์ ์ค ์ ์์ต๋๋ค. ๋ชจ๋ ๊ทธ๋ํ์ ์ฑ๋ฅ์ ํฅ์์ํค๊ธฐ ์ํด ํ์ผ ์์คํ ์ ์ต์ ํํ์ธ์.
- ๋น ๋ฅธ ์ ์ฅ ์ฅ์น ์ฌ์ฉ: ํ๋ก์ ํธ ํ์ผ์ ์ ์ฅํ๊ธฐ ์ํด SSD์ ๊ฐ์ ๋น ๋ฅธ ์ ์ฅ ์ฅ์น๋ฅผ ์ฌ์ฉํ์ธ์. ์ด๋ ํ์ผ ์์คํ ์์ ์ ์๋๋ฅผ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค.
- ๋คํธ์ํฌ ๋๋ผ์ด๋ธ ํผํ๊ธฐ: ํ๋ก์ ํธ ํ์ผ์ ๋คํธ์ํฌ ๋๋ผ์ด๋ธ๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ํผํ์ธ์. ๋คํธ์ํฌ ๋๋ผ์ด๋ธ๋ ๋ก์ปฌ ์ ์ฅ์๋ณด๋ค ํจ์ฌ ๋๋ฆด ์ ์์ต๋๋ค.
- ํ์ผ ์์คํ ๊ฐ์์ ์ต์ ํ: ํ์ผ ์์คํ ๊ฐ์์๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ํ์ํ ํ์ผ๊ณผ ๋๋ ํ ๋ฆฌ๋ง ๊ฐ์ํ๋๋ก ๊ตฌ์ฑํ์ธ์. ๋๋ฌด ๋ง์ ํ์ผ์ ๊ฐ์ํ๋ฉด ๋น๋ ํ๋ก์ธ์ค๊ฐ ๋๋ ค์ง ์ ์์ต๋๋ค.
- RAM ๋์คํฌ ๊ณ ๋ ค: ๋งค์ฐ ํฐ ํ๋ก์ ํธ์ ์ฆ์ ๋น๋์ ๊ฒฝ์ฐ
node_modulesํด๋๋ฅผ RAM ๋์คํฌ์ ๋ฐฐ์นํ๋ ๊ฒ์ ๊ณ ๋ คํ์ธ์. ์ด๋ ํ์ผ ์ ๊ทผ ์๋๋ฅผ ๊ทน์ ์ผ๋ก ํฅ์์ํฌ ์ ์์ง๋ง, ์ถฉ๋ถํ RAM์ด ํ์ํฉ๋๋ค.
์ค์ ์ฌ๋ก
์ด๋ฌํ ์ต์ ํ ์ ๋ต์ด ์ด๋ป๊ฒ ์ ์ฉ๋ ์ ์๋์ง ์ค์ ์ฌ๋ก๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค:
์์ 1: Webpack์ผ๋ก React ์ ํ๋ฆฌ์ผ์ด์ ์ต์ ํ
React์ Webpack์ผ๋ก ๊ตฌ์ถ๋ ๋๊ท๋ชจ ์ ์์๊ฑฐ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋๋ฆฐ ๋น๋ ์๊ฐ์ ๊ฒช๊ณ ์์์ต๋๋ค. ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ถ์ํ ๊ฒฐ๊ณผ, ๋ชจ๋ ํด์์ด ์ฃผ์ ๋ณ๋ชฉ ํ์์์ด ๋ฐํ์ก์ต๋๋ค.
ํด๊ฒฐ์ฑ :
webpack.config.js์์ ๋ชจ๋ ๋ณ์นญ์ ๊ตฌ์ฑํ์ฌ import ๊ฒฝ๋ก๋ฅผ ๋จ์ํํ์ต๋๋ค.resolve.modules๋ฐresolve.extensions์ต์ ์ ์ต์ ํํ์ต๋๋ค.- Webpack์์ ์บ์ฑ์ ํ์ฑํํ์ต๋๋ค.
๊ฒฐ๊ณผ: ๋น๋ ์๊ฐ์ด 30% ๋จ์ถ๋์์ต๋๋ค.
์์ 2: Angular ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ํ ์์กด์ฑ ์ ๊ฑฐ
ํ Angular ์ ํ๋ฆฌ์ผ์ด์
์ด ์๊ธฐ์น ์์ ๋์๊ณผ ์ฑ๋ฅ ๋ฌธ์ ๋ฅผ ๊ฒช๊ณ ์์์ต๋๋ค. madge๋ฅผ ์ฌ์ฉํ ๊ฒฐ๊ณผ, ์ฝ๋๋ฒ ์ด์ค์ ์ฌ๋ฌ ์ํ ์์กด์ฑ์ด ์์์ด ๋ฐํ์ก์ต๋๋ค.
ํด๊ฒฐ์ฑ :
- ์ํ ์์กด์ฑ์ ์ ๊ฑฐํ๊ธฐ ์ํด ์ฝ๋๋ฅผ ๋ฆฌํฉํ ๋งํ์ต๋๋ค.
- ๊ณต์ ๊ธฐ๋ฅ์ ๋ณ๋์ ๋ชจ๋๋ก ์ฎ๊ฒผ์ต๋๋ค.
๊ฒฐ๊ณผ: ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฑ๋ฅ์ด ํฌ๊ฒ ํฅ์๋์๊ณ ์๊ธฐ์น ์์ ๋์์ด ํด๊ฒฐ๋์์ต๋๋ค.
์์ 3: Vue.js ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฝ๋ ์คํ๋ฆฌํ ๊ตฌํ
ํ Vue.js ์ ํ๋ฆฌ์ผ์ด์ ์ ์ด๊ธฐ ๋ฒ๋ค ํฌ๊ธฐ๊ฐ ์ปค์ ๋ก๋ ์๊ฐ์ด ๋๋ ธ์ต๋๋ค. ์ด๊ธฐ ๋ก๋ ์๊ฐ์ ๊ฐ์ ํ๊ธฐ ์ํด ์ฝ๋ ์คํ๋ฆฌํ ์ด ๊ตฌํ๋์์ต๋๋ค.
ํด๊ฒฐ์ฑ :
๊ฒฐ๊ณผ: ์ด๊ธฐ ๋ก๋ ์๊ฐ์ด 50% ๋จ์ถ๋์์ต๋๋ค.
๊ฒฐ๋ก
์๋ฐ์คํฌ๋ฆฝํธ ๋ชจ๋ ๊ทธ๋ํ๋ฅผ ์ต์ ํํ๋ ๊ฒ์ ๊ณ ์ฑ๋ฅ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ๊ณตํ๋ ๋ฐ ๋งค์ฐ ์ค์ํฉ๋๋ค. ๋ชจ๋ ๊ทธ๋ํ ์ฑ๋ฅ์ ์ํฅ์ ๋ฏธ์น๋ ์์ธ์ ์ดํดํ๊ณ , ๋น๋ ํ๋ก์ธ์ค๋ฅผ ๋ถ์ํ๋ฉฐ, ํจ๊ณผ์ ์ธ ์ต์ ํ ์ ๋ต์ ์ ์ฉํจ์ผ๋ก์จ ์์กด์ฑ ํด๊ฒฐ ์๋์ ์ ๋ฐ์ ์ธ ๋น๋ ์ฑ๋ฅ์ ํฌ๊ฒ ํฅ์์ํฌ ์ ์์ต๋๋ค. ์ด๋ ๋ ๋น ๋ฅธ ๊ฐ๋ฐ ์ฃผ๊ธฐ, ํฅ์๋ ๊ฐ๋ฐ์ ์์ฐ์ฑ, ๊ทธ๋ฆฌ๊ณ ๋ ๋์ ์ฌ์ฉ์ ๊ฒฝํ์ผ๋ก ์ด์ด์ง๋๋ค.
๋น๋ ์ฑ๋ฅ์ ์ง์์ ์ผ๋ก ๋ชจ๋ํฐ๋งํ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋ฐ์ ํจ์ ๋ฐ๋ผ ์ต์ ํ ์ ๋ต์ ์กฐ์ ํ๋ ๊ฒ์ ์์ง ๋ง์ธ์. ๋ชจ๋ ๊ทธ๋ํ ์ต์ ํ์ ํฌ์ํจ์ผ๋ก์จ ์๋ฐ์คํฌ๋ฆฝํธ ์ ํ๋ฆฌ์ผ์ด์ ์ด ๋น ๋ฅด๊ณ , ํจ์จ์ ์ด๋ฉฐ, ํ์ฅ ๊ฐ๋ฅํ๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.