์ƒˆ์†Œ์‹

FrontEnd/JavaScript

๋ฒˆ๋“ค(bundle)๊ณผ ๋ฒˆ๋“ค๋ง(bundling)

  • -

๐Ÿฃ ๋ฒˆ๋“ค(bundle)๊ณผ ๋ฒˆ๋“ค๋ง(bundling) ๊ทธ๋ฆฌ๊ณ  ๋ชจ๋“ˆ(module)


ํ˜น์‹œ ๋ฒˆ๋“ค๋ง๊ณผ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ์— ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์„๊นŒ? ๋จธ๋ญ‡๊ฑฐ๋ ธ๋‹ค๋ฉด ์ •๋ฆฌ๋œ ๊ธ€์„ ํ†ตํ•ด ๋ฒˆ๋“ค๋ง๊ณผ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ์— ๋Œ€ํ•ด์„œ ํ•œ ๋ฒˆ ์‚ดํŽด๋ณด์ž. ๊ทธ๋ฆฌ๊ณ  ์ด์–ด์„œ ์›นํŒฉ(Webpack), ๋ฐ”๋ฒจ(Babel), ํด๋ฆฌํ•„(Polyfill) ๊ทธ๋ฆฌ๊ณ  ๋น„ํŠธ(Vite)๊นŒ์ง€ ์ˆœ์„œ๋Œ€๋กœ ์ฐจ๋ก€์ฐจ๋ก€ ์ •๋ฆฌํ•ด๋ณผ ๊ฒƒ์ด๋‹ค. (๋ฌผ๋ก  ์ด์ „์— Notion ์ •๋ฆฌํ–ˆ๋˜ ๊ฐœ๋…๋“ค์„ ๋˜ ๋‹ค์‹œ ๊ธ์–ด์™€์„œ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ..!) ์˜ค๋Š˜๋„ ๋ ˆ์ธ ๊ผฌ์šฐ!
 

https://velog.velcdn.com/images%2Fsyoung125%2Fpost%2F2531e32c-b82c-40cf-8df1-522785202a3a%2Fimage.png

 

 

๐Ÿฃ ๋ฒˆ๋“ค(bundle)


1. ๊ฐœ๋…

"๋ฒˆ๋“ค"์€ ์—ฌ๋Ÿฌ ๋ฆฌ์†Œ์Šค(์˜ˆ: JavaScript, CSS, ์ด๋ฏธ์ง€ ๋“ฑ)๋ฅผ ๋ณด๋‹ค ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ํ˜•์‹์œผ๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ๋‹จ์ผ ํŒŒ์ผ ๋˜๋Š” ํŒŒ์ผ ์„ธํŠธ๋ฅผ ์˜๋ฏธ. ๋ฒˆ๋“ค์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋กœ๋“œํ•˜๊ธฐ ์œ„ํ•ด ๋ธŒ๋ผ์šฐ์ €์— ์ œ๊ณต.

 

๐Ÿฃ ๋ฒˆ๋“ค๋ง(bundling)


1. ๊ฐœ๋…

์‚ฌ์ „์  ์˜๋ฏธ๋Š” '์–ด๋–ค ๊ฒƒ์„ ๋ฌถ๋‹ค, ๋ชจ์œผ๋‹ค' . ์›น ๊ฐœ๋ฐœ์—์„œ ๋ฒˆ๋“ค๋ง์€ ์—ฌ๋Ÿฌ ์ฝ”๋“œ์™€ ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋žจ์„(JavaScript ํŒŒ์ผ, CSS ํŒŒ์ผ, ์ด๋ฏธ์ง€ ๋“ฑ)์„ ๊ฐ€์ ธ์™€ ๋‹จ์ผ ํŒŒ์ผ ๋˜๋Š” ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค. ์ด ํ”„๋กœ์„ธ์Šค๋Š” ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋กœ๋”ฉ ์‹œ๊ฐ„์„ ์ตœ์ ํ™”ํ•˜๊ณ  ์ข…์†์„ฑ์„ ๋ณด๋‹ค ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€. ๋ฒˆ๋“ค๋ง์€ ๋นŒ๋“œ ๊ณผ์ • ์ค‘ ํ•˜๋‚˜๋กœ, ์ตœ์ข…์ ์œผ๋กœ ๋ฒˆ๋“ค๋ง๋œ ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์‹คํ–‰ํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰. 
* ๋นŒ๋“œ, ๋ฒˆ๋“ค๋ง, ๋ณ€ํ™˜ ์ด ์„ธ ๋‹จ์–ด ๋ชจ๋‘ ๊ฐ™์€ ์˜๋ฏธ

์—ฌ๋Ÿฌ ์ฝ”๋“œ์™€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฌถ์–ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต

์ฐธ๊ณ ๋กœ ์›นํŒฉ ๋“ฑ์„ ๋ฒˆ๋“ค๋ง ๋„๊ตฌ๋“ค์„ ์‚ดํŽด๋ณด๊ธฐ ์ „์— ๋ฒˆ๋“ค๋ง ๊ฐœ๋… ์ž์ฒด๋กœ๋งŒ ๋ดค์„ ๋•Œ๋Š” ์—ฌ๋Ÿฌ JavaScript ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐํ•œ๋‹ค.
 

2. ๋ฒˆ๋“ค๋ง์ด ์ค‘์š”ํ•œ ์ด์œ ๋Š”?

์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ํ•˜๋‚˜ ๋˜๋Š” ๋ช‡ ๊ฐœ์˜ ํŒŒ์ผ๋กœ ๊ฒฐํ•ฉํ•˜์—ฌ HTTP ์š”์ฒญ ์ˆ˜๋ฅผ ์ค„์—ฌ ๋กœ๋“œ ์‹œ๊ฐ„์„ ํ–ฅ์ƒ. ์ข…์†์„ฑ ๊ด€๋ฆฌ๋ฅผ ๋‹จ์ˆœํ™”ํ•˜๊ณ  ํ•„์š”ํ•œ ๋ชจ๋“  ๋ชจ๋“ˆ์ด ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ํฌํ•จ๋˜๋„๋ก ๋ณด์žฅ. ํ•จ๊ป˜ ๋ฌถ์„ ์ˆ˜ ์žˆ๋Š” ๋” ์ž‘๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ๋ชจ๋“ˆ๋กœ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ๋ฐ ๋„์›€.

  2-1. ํŒŒ์ผ ํฌ๊ธฐ 

๋ฒˆ๋“ค๋ง์€ ๊ฒฐ๊ณผ๋ฌผ ํŒŒ์ผ๋“ค์„ ์••์ถ•ํ•˜์—ฌ ํฌ๊ธฐ๋ฅผ ์ค„์ž„. ๋ฒˆ๋“ค ํŒŒ์ผ์€ ๋ฒˆ๋“ค๋ง๋˜์ง€ ์•Š์€ ์›๋ณธ ํŒŒ์ผ๋ณด๋‹ค ์ž‘์•„์ง€๊ณ , ์‹คํ–‰ ์†๋„์™€ ๋กœ๋”ฉ ์†๋„๋„ ํ–ฅ์ƒ. 

  2-2. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ž„์˜ ์กฐ์ž‘ ๋ฐฉ์ง€

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

  2-3. ํŒŒ์ผ ๋‹จ์œ„ ๋ชจ๋“ˆ ๊ด€๋ฆฌ

JavaScript๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ „์—ญ ๋ฒ”์œ„๋ฅผ ๊ฐ€์ง€๋ฏ€๋กœ ์—ฌ๋Ÿฌ ๊ฐœ์˜ JavaScript ํŒŒ์ผ์ด ์žˆ์„ ๋•Œ ๋ณ€์ˆ˜ ์ถฉ๋Œ ๋“ฑ์˜ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Œ. ๋ฒˆ๋“ค๋ง ๋„๊ตฌ์ธ Webpack์€ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋ง์„ ํ†ตํ•ด ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ.
 

3. ๋ฒˆ๋“ค๋ง๊ณผ ๋ชจ๋“ˆ

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

4. ๋ฒˆ๋“ค๋ง ๋„๊ตฌ? 

 
๋ฒˆ๋“คํฌ๊ธฐ๋ฅผ ์ตœ์†Œํ™” ํ•˜์—ฌ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ฑ๋Šฅ์„ ํ–ฅ์ƒ์‹œํ‚ค๊ณ , ์ฝ”๋“œ์œ ์ง€ ๊ด€๋ฆฌ๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•˜๋Š”๋ฐ ๋„์›€์„ ์ฃผ๋Š” ๋„๊ตฌ๋“ค

  • Webpack
  • Parcel
  • Rollup

 

๐Ÿฃ ๋ชจ๋“ˆ(module)๊ณผ ๋ฒˆ๋“ค๋Ÿฌ


1. ๊ฐœ๋…

๋ชจ๋“ˆ์€ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ ๋‹จ์œ„. ๋ฒˆ๋“ค๋ง์ด๋ž€ ๋ชจ๋“ˆ๋“ค์˜ ์˜์กด์„ฑ์„ ํŒŒ์•…ํ•˜์—ฌ ๊ทธ๋ฃนํ™” ์‹œ์ผœ์ฃผ๋Š” ๊ฒƒ์ด๊ณ , ๋ฐ˜๋Œ€๋˜๋Š” ๊ฐœ๋…์œผ๋กœ์„ ๋ชจ๋“ˆ(module)์ด๋ผ ํ•  ์ˆ˜ ์žˆ์Œ. ๋ถ„๋ฆฌ๋˜์–ด ์žˆ๋Š” ๋ชจ๋“ˆ์„ ํ•˜๋‚˜๋กœ ํ•ฉ์ณ์ฃผ๋Š” ๊ฒƒ์ด ๋ฒˆ๋“ค(bundle)์ด๋ผ๋Š” ๊ฐœ๋…์ด๊ณ , ์—ฌ๋Ÿฌ ๋ชจ๋“ˆ๋กœ ๋‚˜๋ˆ„์–ด export๋กœ ๋‚ด๋ณด๋‚ด๊ธฐ๋„ ํ•˜๊ณ , import๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ๋„ ํ•จ. 
 

2.  ๋ชจ๋“ˆ ๋ฐ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ?

ES6 ๋ชจ๋“ˆ: ํ•จ์ˆ˜, ๊ฐ์ฒด ๋˜๋Š” ํ”„๋ฆฌ๋ฏธํ‹ฐ๋ธŒ๋ฅผ ๊ฐ€์ ธ์˜ค๊ธฐ ๋ฐ ๋‚ด๋ณด๋‚ด๊ธฐํ•  ์ˆ˜ ์žˆ๋Š” JavaScript์˜ ๊ธฐ๋ณธ ๋ชจ๋“ˆ ์‹œ์Šคํ…œ. CommonJS: require๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์ด ๋™๊ธฐ์ ์œผ๋กœ ๋กœ๋“œ๋˜๋Š” Node.js์—์„œ ์‚ฌ์šฉ.
 

3. ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ

'๋ชจ๋“ˆ' ๊ณผ '๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ'์˜ ์ฐจ์ด์— ๋Œ€ํ•ด์„œ ๋จผ์ € ์‚ดํŽด๋ณด๋ฉด!
 
๋ชจ๋“ˆ

๊ฒฐํ•ฉํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋… ๋ฐ ํ”„๋กœ์„ธ์Šค.

์—ฌ๋Ÿฌ ์ฝ”๋“œ์™€ ํ”„๋กœ๊ทธ๋žจ์„ ๋ฌถ์–ด ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ œ๊ณต. ๊ฒฐํ•ฉํ•˜๋Š” ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋… ๋ฐ ํ”„๋กœ์„ธ์Šค. ํŒŒ์ผ ๊ฒฐํ•ฉ์˜ ์ตœ์ข… ๊ฒฐ๊ณผ. ์ˆ˜๋™์œผ๋กœ ํŒŒ์ผ ๊ฒฐํ•ฉ(์—ฌ๋Ÿฌ JavaScript ํŒŒ์ผ์„ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ์ˆ˜๋™์œผ๋กœ ์—ฐ๊ฒฐ)
 
๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ

๋ฒˆ๋“ค๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํŠน์ • ๋„๊ตฌ ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด

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

  • Webpack : ํ’๋ถ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„๋ฅผ ๊ฐ–์ถ˜ ๊ณ ๋„๋กœ ๊ตฌ์„ฑ ๊ฐ€๋Šฅํ•œ ๋„๊ตฌ
  • Parcel : ES6 ๋ชจ๋“ˆ์— ์ค‘์ ์„ ๋‘๊ณ  ๋” ์ž‘์€ ๋ฒˆ๋“ค์„ ์ƒ์„ฑ
  • Rollup : ์‚ฌ์šฉ ๋ฐ ์„ค์ •์ด ์‰ฌ์šด ์ œ๋กœ ๊ตฌ์„ฑ ๋ฒˆ๋“ค๋Ÿฌ

 

4. Webpack์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ

๋ฒˆ๋“ค๋Ÿฌ๊ฐ€ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„ ์ƒ์„ฑ์„ ์‹œ์ž‘ํ•˜๋Š” ์‹œ์ž‘์ . ์˜ˆ๋ฅผ ๋“ค์–ด Webpack ๊ตฌ์„ฑ์—์„œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ง„์ž…์ ์„ ์ •์˜.

module.exports = {
  entry: './src/index.js',
  // other configurations
};

 

5. ์ •๋ฆฌํ•ด๋ณด์ž๋ฉด

๋ฒˆ๋“ค๋ง์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์ตœ์ ํ™”ํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ๋ฐฉ๋ฒ•. ์ž์‚ฐ์„ ๋ช‡ ๊ฐœ์˜ ๋ฒˆ๋“ค๋กœ ๊ฒฐํ•ฉํ•˜๋ฉด ๋กœ๋“œ ์‹œ๊ฐ„์ด ํ–ฅ์ƒ๋˜๊ณ  ์ข…์†์„ฑ์„ ๋” ์‰ฝ๊ฒŒ ๊ด€๋ฆฌ ๊ฐ€๋Šฅ. ์ฝ”๋“œ ๋ถ„ํ•  ๋ฐ ํŠธ๋ฆฌ ์‰์ดํ‚น๊ณผ ๊ฐ™์€ ๊ฐœ๋…๊ณผ ํ•จ๊ป˜ Webpack, Rollup ๋˜๋Š” Parcel๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์ดํ•ดํ•˜๊ณ  ํ™œ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœ ์›Œํฌํ”Œ๋กœ์šฐ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ฑ๋Šฅ์„ ํฌ๊ฒŒ ํ–ฅ์ƒ ๊ฐ€๋Šฅ!

 

๐Ÿฃ ์ •๋ฆฌ : ๋ฒˆ๋“ค(bundle) ยท ๋ฒˆ๋“ค๋ง(bundling) ยท ๋ชจ๋“ˆ(module)


๋ฒˆ๋“ค(bundle) 

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

๋ฒˆ๋“ค๋ง(bundling) 

๋ฒˆ๋“ค๋ง์€ ๋‹ค์–‘ํ•œ ๋ฆฌ์†Œ์Šค๋“ค์„ ํ•˜๋‚˜ ์ด์ƒ์˜ ๋ฒˆ๋“ค๋กœ ๊ฒฐํ•ฉํ•˜๋Š” ํ”„๋กœ์„ธ์Šค. ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด HTTP ์š”์ฒญ ์ˆ˜๋ฅผ ์ค„์ด๊ณ  ์ข…์†์„ฑ์„ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋ฉฐ ๋ธŒ๋ผ์šฐ์ €์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ์ „๋‹ฌ์„ ์ตœ์ ํ™”.
 

๋ชจ๋“ˆ(module) 

๋ชจ๋“ˆ์€ ์ฝ”๋“œ๋ฒ ์ด์Šค์˜ ๊ฐœ๋ณ„ ๊ธฐ๋Šฅ ๋‹จ์œ„๋กœ, ์ข…์ข… ์ž์ฒด ํŒŒ์ผ์— ์บก์Аํ™”. ๋ชจ๋“ˆ์€ ํŠน์ • ๊ธฐ๋Šฅ, ๊ฐœ์ฒด ๋˜๋Š” ๊ฐ’์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ ํ•„์š”์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ๋ชจ๋“ˆ์—์„œ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์Œ. ์ด ๋ชจ๋“ˆ์‹ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ฝ”๋“œ๋ฅผ ๊ตฌ์„ฑํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์„ ์ด‰์ง„ํ•˜๋ฉฐ ์ข…์†์„ฑ์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ๋„์›€. ์˜ˆ๋กœ๋Š” ES6 ๋ชจ๋“ˆ(import ๋ฐ export ์‚ฌ์šฉ) ๋ฐ CommonJS ๋ชจ๋“ˆ(require ์‚ฌ์šฉ)์ด ์žˆ์Œ.
 

๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ(module bundler) 

๋ฒˆ๋“ค๋ง ํ”„๋กœ์„ธ์Šค๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ํŠน์ • ๋„๊ตฌ ๋˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด. ํ”„๋กœ์ ํŠธ์˜ ์ข…์†์„ฑ ๊ทธ๋ž˜ํ”„๋ฅผ ๋ถ„์„ํ•˜๊ณ , ์ด๋Ÿฌํ•œ ์ข…์†์„ฑ์„ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฒˆ๋“ค ํŒŒ์ผ์„ ์ถœ๋ ฅํ•˜๋Š” ๊ฒƒ. ํ•„์š”ํ•œ ๋ชจ๋“  ๋ชจ๋“ˆ์ด ์˜ฌ๋ฐ”๋ฅธ ์ˆœ์„œ๋กœ ํฌํ•จ๋˜๊ณ  ์„ฑ๋Šฅ์ด ์ตœ์ ํ™”๋˜๋„๋ก ๋ณด์žฅ. ์›นํŒฉ(Webpack) 
 


 

๋ฒˆ๋“ค/๋ฒˆ๋“ค๋ง/๋ชจ๋“ˆ/๋ชจ๋“ˆ๋ฒˆ๋“ค๋Ÿฌ

 

 

์ถœ์ฒ˜:
https://parodev.tistory.com/58
https://strap.tistory.com/entry/๋ฒˆ๋“ค์ด๋ž€-bundle
https://humanwater.tistory.com/2
https://joshua1988.github.io/webpack-guide/webpack/what-is-webpack.html#%EC%9B%B9%ED%8C%A9%EC%97%90%EC%84%9C%EC%9D%98-%EB%AA%A8%EB%93%88

Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.