์ž‘์„ฑ: 2024-11-27 06:30:34
    ์ˆ˜์ •: 2024-11-27 06:30:34

    Bundler

    Frontend Bundler๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์—ฌ๋Ÿฌ ์ž์‚ฐ(HTML, CSS, JavaScript ํŒŒ์ผ ๋“ฑ)์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ ๋˜๋Š” ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๋“œ ์†๋„๋ฅผ ๊ฐœ์„ ํ•˜๊ณ , ์ฝ”๋“œ ๊ด€๋ฆฌ๋ฅผ ์‰ฝ๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ฃผ์š” ๊ธฐ๋Šฅ

    1. ๋ชจ๋“ˆํ™”: Bundler๋Š” ์ฝ”๋“œ์˜ ๋ชจ๋“ˆํ™”๋ฅผ ์ง€์›ํ•˜์—ฌ, ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ์„ ํƒ์ ์œผ๋กœ ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์œ ์ง€๋ณด์ˆ˜์„ฑ๊ณผ ๊ฐ€๋…์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.

    2. ์ตœ์ ํ™”: Bundler๋Š” ์ž์‚ฐ ํŒŒ์ผ์˜ ํฌ๊ธฐ๋ฅผ ์ค„์ด๊ธฐ ์œ„ํ•ด ์—ฌ๋Ÿฌ ์ตœ์ ํ™” ๊ธฐ๋Šฅ(์••์ถ•, ๋‚œ๋…ํ™” ๋“ฑ)์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ํŽ˜์ด์ง€ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ๋‹จ์ถ•ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    3. ์˜์กด์„ฑ ๊ด€๋ฆฌ: Bundler๋Š” ํ”„๋กœ์ ํŠธ์˜ ์˜์กด์„ฑ์„ ์ž๋™์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ํŒจํ‚ค์ง€๋ฅผ ์„ค์น˜ํ•˜๊ณ , ์ด๋ฅผ ํ”„๋กœ์ ํŠธ์— ํ†ตํ•ฉํ•˜๋Š” ๊ณผ์ •์„ ๊ฐ„์†Œํ™”ํ•ฉ๋‹ˆ๋‹ค.

    4. ํŒŒ์ผ ํ˜•์‹ ์ง€์›: JavaScript ์™ธ์—๋„ CSS, ์ด๋ฏธ์ง€, ํฐํŠธ ๋“ฑ ๋‹ค์–‘ํ•œ ํŒŒ์ผ ํ˜•์‹์„ ์ง€์›ํ•˜์—ฌ, ๋ชจ๋“  ์ž์‚ฐ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ธ๊ธฐ ์žˆ๋Š” Frontend Bundler

    1. Webpack: ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” Bundler ์ค‘ ํ•˜๋‚˜๋กœ, ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ๋กœ๋”๋ฅผ ํ†ตํ•ด ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์„ค์ •์ด ํ•„์š”ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ๊ฐ•๋ ฅํ•œ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    2. Parcel: ์„ค์ • ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” Bundler๋กœ, ์ฆ‰์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋ณธ ์„ค์ •์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ดˆ๋ณด์ž์—๊ฒŒ ์ ํ•ฉํ•˜๋ฉฐ, ๋น ๋ฅธ ๋นŒ๋“œ ์†๋„๋ฅผ ์ž๋ž‘ํ•ฉ๋‹ˆ๋‹ค.

    3. Rollup: ์ฃผ๋กœ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ๋ชจ๋“ˆ์„ ๋งŒ๋“ค ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, ์ตœ์ ํ™”๋œ ๋ฒˆ๋“ค ์ƒ์„ฑ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ES ๋ชจ๋“ˆ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•œ ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฐ ๊ฐ•๋ ฅํ•ฉ๋‹ˆ๋‹ค.

    4. Vite: ํ˜„๋Œ€์ ์ธ ์›น ๊ฐœ๋ฐœ์„ ์œ„ํ•œ ๋„๊ตฌ๋กœ, ๋น ๋ฅธ ๊ฐœ๋ฐœ ์„œ๋ฒ„์™€ ๋นŒ๋“œ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ES ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋” ๋น ๋ฅธ ํ•ซ ๋ฆฌ๋กœ๋“œ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

    ์‚ฌ์šฉ ์‚ฌ๋ก€

    • ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ: ๋ณต์žกํ•œ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์—ฌ๋Ÿฌ ์ž์‚ฐ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด Bundler๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐฐํฌ: ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ๋ฐฐํฌํ•  ๋•Œ, ๋‹ค์–‘ํ•œ ํ˜•์‹์œผ๋กœ ๋ฒˆ๋“ค๋งํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
    • ์„ฑ๋Šฅ ์ตœ์ ํ™”: ์‚ฌ์šฉ์ž ๊ฒฝํ—˜์„ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์›น ํŽ˜์ด์ง€์˜ ๋กœ๋“œ ์‹œ๊ฐ„์„ ์ตœ์†Œํ™”ํ•˜๋Š” ๋ฐ ๊ธฐ์—ฌํ•ฉ๋‹ˆ๋‹ค.

    ๊ฒฐ๋ก 

    Frontend Bundler๋Š” ํ˜„๋Œ€ ์›น ๊ฐœ๋ฐœ์—์„œ ํ•„์ˆ˜์ ์ธ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. ์ฝ”๋“œ ๊ด€๋ฆฌ, ์„ฑ๋Šฅ ์ตœ์ ํ™”, ์˜์กด์„ฑ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœ์ž๋“ค์ด ํšจ์œจ์ ์œผ๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค. ๊ฐ๊ฐ์˜ Bundler๋Š” ํŠน์ง•์ด ๋‹ค๋ฅด๋ฏ€๋กœ, ํ”„๋กœ์ ํŠธ์˜ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋งž์ถฐ ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.