Bundler
Frontend Bundler๋ ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฌ๋ฌ ์์ฐ(HTML, CSS, JavaScript ํ์ผ ๋ฑ)์ ํ๋์ ํ์ผ ๋๋ ๋ช ๊ฐ์ ํ์ผ๋ก ๋ฌถ์ด์ฃผ๋ ๋๊ตฌ์ ๋๋ค. ์ด๋ฌํ ๊ณผ์ ์ ํตํด ์น ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ก๋ ์๋๋ฅผ ๊ฐ์ ํ๊ณ , ์ฝ๋ ๊ด๋ฆฌ๋ฅผ ์ฝ๊ฒ ํ ์ ์์ต๋๋ค.
์ฃผ์ ๊ธฐ๋ฅ
-
๋ชจ๋ํ: Bundler๋ ์ฝ๋์ ๋ชจ๋ํ๋ฅผ ์ง์ํ์ฌ, ๊ฐ๋ฐ์๊ฐ ํ์ํ ํ์ผ๋ง ์ ํ์ ์ผ๋ก ๋ถ๋ฌ์ฌ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ์ ์ง๋ณด์์ฑ๊ณผ ๊ฐ๋ ์ฑ์ ๋์ ๋๋ค.
-
์ต์ ํ: Bundler๋ ์์ฐ ํ์ผ์ ํฌ๊ธฐ๋ฅผ ์ค์ด๊ธฐ ์ํด ์ฌ๋ฌ ์ต์ ํ ๊ธฐ๋ฅ(์์ถ, ๋๋ ํ ๋ฑ)์ ์ ๊ณตํฉ๋๋ค. ์ด๋ฅผ ํตํด ํ์ด์ง ๋ก๋ฉ ์๊ฐ์ ๋จ์ถํ ์ ์์ต๋๋ค.
-
์์กด์ฑ ๊ด๋ฆฌ: Bundler๋ ํ๋ก์ ํธ์ ์์กด์ฑ์ ์๋์ผ๋ก ๊ด๋ฆฌํฉ๋๋ค. ํ์ํ ํจํค์ง๋ฅผ ์ค์นํ๊ณ , ์ด๋ฅผ ํ๋ก์ ํธ์ ํตํฉํ๋ ๊ณผ์ ์ ๊ฐ์ํํฉ๋๋ค.
-
ํ์ผ ํ์ ์ง์: JavaScript ์ธ์๋ CSS, ์ด๋ฏธ์ง, ํฐํธ ๋ฑ ๋ค์ํ ํ์ผ ํ์์ ์ง์ํ์ฌ, ๋ชจ๋ ์์ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
์ธ๊ธฐ ์๋ Frontend Bundler
-
Webpack: ๊ฐ์ฅ ๋๋ฆฌ ์ฌ์ฉ๋๋ Bundler ์ค ํ๋๋ก, ๋ค์ํ ํ๋ฌ๊ทธ์ธ๊ณผ ๋ก๋๋ฅผ ํตํด ์ปค์คํฐ๋ง์ด์ง์ด ๊ฐ๋ฅํฉ๋๋ค. ๋ณต์กํ ์ค์ ์ด ํ์ํ ์ ์์ง๋ง, ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
-
Parcel: ์ค์ ์์ด ์ฌ์ฉํ ์ ์๋ Bundler๋ก, ์ฆ์ ์ฌ์ฉํ ์ ์๋ ๊ธฐ๋ณธ ์ค์ ์ ์ ๊ณตํฉ๋๋ค. ์ด๋ณด์์๊ฒ ์ ํฉํ๋ฉฐ, ๋น ๋ฅธ ๋น๋ ์๋๋ฅผ ์๋ํฉ๋๋ค.
-
Rollup: ์ฃผ๋ก ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ๋ชจ๋์ ๋ง๋ค ๋ ์ฌ์ฉ๋๋ฉฐ, ์ต์ ํ๋ ๋ฒ๋ค ์์ฑ์ ์ง์ํฉ๋๋ค. ES ๋ชจ๋์ ๊ธฐ๋ฐ์ผ๋ก ํ ์ฝ๋๋ฅผ ๋ค๋ฃจ๋ ๋ฐ ๊ฐ๋ ฅํฉ๋๋ค.
-
Vite: ํ๋์ ์ธ ์น ๊ฐ๋ฐ์ ์ํ ๋๊ตฌ๋ก, ๋น ๋ฅธ ๊ฐ๋ฐ ์๋ฒ์ ๋น๋๋ฅผ ์ง์ํฉ๋๋ค. ES ๋ชจ๋์ ์ฌ์ฉํ์ฌ ๋ ๋น ๋ฅธ ํซ ๋ฆฌ๋ก๋๋ฅผ ์ ๊ณตํฉ๋๋ค.
์ฌ์ฉ ์ฌ๋ก
- ์น ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ: ๋ณต์กํ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์ ์ฌ๋ฌ ์์ฐ์ ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌํ๊ธฐ ์ํด Bundler๋ฅผ ์ฌ์ฉํฉ๋๋ค.
- ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ฐฐํฌ: ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ ํจํค์ง๋ฅผ ๋ฐฐํฌํ ๋, ๋ค์ํ ํ์์ผ๋ก ๋ฒ๋ค๋งํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๊ณตํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ ์ต์ ํ: ์ฌ์ฉ์ ๊ฒฝํ์ ๊ฐ์ ํ๊ธฐ ์ํด ์น ํ์ด์ง์ ๋ก๋ ์๊ฐ์ ์ต์ํํ๋ ๋ฐ ๊ธฐ์ฌํฉ๋๋ค.
๊ฒฐ๋ก
Frontend Bundler๋ ํ๋ ์น ๊ฐ๋ฐ์์ ํ์์ ์ธ ๋๊ตฌ์ ๋๋ค. ์ฝ๋ ๊ด๋ฆฌ, ์ฑ๋ฅ ์ต์ ํ, ์์กด์ฑ ๊ด๋ฆฌ๋ฅผ ํตํด ๊ฐ๋ฐ์๋ค์ด ํจ์จ์ ์ผ๋ก ์์ ํ ์ ์๋๋ก ๋์์ค๋๋ค. ๊ฐ๊ฐ์ Bundler๋ ํน์ง์ด ๋ค๋ฅด๋ฏ๋ก, ํ๋ก์ ํธ์ ์๊ตฌ ์ฌํญ์ ๋ง์ถฐ ์ ์ ํ ๋๊ตฌ๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค.