์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 
์ธํ”„๋Ÿฐ ์˜๋ฌธ ๋ธŒ๋žœ๋“œ ๋กœ๊ณ 

/

์‰ฝ๊ฒŒ ๋ฐฐ์šฐ๋Š” Webpack

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

Thumbnail

 

1. ๊ฐ•์ขŒ ์†Œ๊ฐœ

์ตœ์‹  ํ”„๋ก ํŠธ์—”๋“œ ํ”„๋ ˆ์ž„์›Œํฌ(React, Angular, Vue)์—์„œ ํ•„์ˆ˜๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋„๊ตฌ์ธ Webpack์˜ ๊ธฐ๋ณธ ๊ฐœ๋…์„ ํ•™์Šตํ•˜๋Š” ๊ฐ•์ขŒ์ž…๋‹ˆ๋‹ค. Webpack์— ๋ง‰์—ฐํ•œ ๋‘๋ ค์›€์„ ๊ฐ€์ง€๊ณ  ๊ณ„์‹  ํ”„๋ก ํŠธ์—”๋“œ ์ž…๋ฌธ ๊ฐœ๋ฐœ์ž, ์›น ๊ฐœ๋ฐœ์ž๋ฅผ ๋Œ€์ƒ์œผ๋กœ ํ•ฉ๋‹ˆ๋‹ค. ๋ณธ ์ˆ˜์—…์„ ํ†ตํ•ด Webpack์˜ ๋ฐฐ๊ฒฝ๊ณผ ์‚ฌ์ƒ์— ๋Œ€ํ•ด ์ดํ•ดํ•˜๊ณ , Webpack ์„ค์ • ํŒŒ์ผ์„ ์‰ฝ๊ฒŒ ๋ถ„์„ํ•˜๊ณ  ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ๊ฐ€๋Šฅํ•˜๋„๋ก ์ˆ˜๊ฐ•์ƒ์˜ ์—ญ๋Ÿ‰์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ˆ˜์—…์„ ๋ชฉํ‘œ ๋กœํ•ฉ๋‹ˆ๋‹ค. ๋ณต์žกํ•˜๊ธฐ๋กœ ์•…๋ช… ๋†’์€ Webpack์˜ ์„ค์ •์„ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด, ๊ฐ ์†์„ฑ๋“ค์˜ ์—ญํ•  ๊ฐ„๋‹จํžˆ ์„ค๋ช… -> ๊ฐ•์‚ฌ๊ฐ€ ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ -> ์ค€๋น„๋œ ์˜ˆ์ œ๋กœ ์ˆ˜๊ฐ•์ƒ์ด ์‹ค์Šตํ˜•ํƒœ๋กœ ์ˆ˜์—…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค. Webpack์˜ ์ฃผ์š” ์†์„ฑ์ธ Entry, Output, Loader, Plugin, Resolve ๋“ฑ์„ ๋‹ค๋ฃจ๊ณ , ์›นํŒฉ์„ ์ด์šฉํ•œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ ๋ฐฉ๋ฒ•๊ณผ ๊ธฐํƒ€ ์›น ์ž๋™ํ™” ๋„๊ตฌ์™€์˜ ์—ฐ๋™ ๋ฐฉ๋ฒ• ๋“ฑ์„ ํ•™์Šตํ•˜์—ฌ ๊ธฐ๋ณธ ๊ฐœ๋…๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ์‹ค์ œ๋กœ ์„œ๋น„์Šค์™€ ์‹ค๋ฌด์— ์ ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ๋” ๊ต๊ณผ๊ณผ์ •์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค.

์›นํŒฉ ํ•ธ๋“œ๋ถ ์‚ฌ์ดํŠธ ์†Œ๊ฐœ

์œ„ ์‚ฌ์ดํŠธ๋Š” ๊ฐ•์˜๋ฅผ ๋“ค์œผ์‹ค ๋•Œ ํ•จ๊ป˜ ๋ณด๋ฉด ์ข‹์Šต๋‹ˆ๋‹ค ๐Ÿ˜ (ํด๋ฆญํ•˜๋ฉด ์‚ฌ์ดํŠธ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค)

 

2. ๋ˆ„๊ตฌ์—๊ฒŒ ๋„์›€์ด ๋˜๋‚˜์š”?

  • Webpack์ด ๋ญ”์ง€ ๋ชจ๋ฅด์‹œ๋Š” ๋ถ„
  • Webpack์€ ๋“ค์–ด๋ดค์œผ๋‚˜ ์„ค์ • ํŒŒ์ผ์„ ์—ด๋ฉด ๊ฒ์„ ๋จน๋Š” ๋ถ„
  • Webpack ๊ณต์‹ ๋ฌธ์„œ๋ฅผ ๋ณด๋‹ค๊ฐ€ ๋งˆ์šฐ์Šค ๋˜์ง€์‹  ๋ถ„
  • Webpack์„ ๋ฐฐ์šฐ๊ณ  ์‹ถ์€๋ฐ ๋งˆ๋•…ํ•œ ์ฐธ๊ณ  ์ž๋ฃŒ๊ฐ€ ์—†์œผ์‹  ๋ถ„
  • ์ด ์ด๋ฏธ์ง€๋ฅผ ๋ณด๊ณ  ๋ญ” ์†Œ๋ฆฌ์ธ์ง€ ๋ชจ๋ฅด์‹œ๊ฒ ๋‹ค๋Š” ๋ถ„๋“ค์€ ๋‹ค ๋“ค์œผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

3. ์–ด๋–ค ๊ฑธ ๋ฐฐ์šฐ๋‚˜์š”?

Webpack ์ฃผ์š” ์†์„ฑ Webpack ๊ฐœ๋ฐœํ™˜๊ฒฝ ๊ตฌ์„ฑ ๋ถ€๋ก
  • Entry
  • Output
  • Loader
  • Plugin
  • Resolve
  • Webpack Dev Server
  • Webpack Dev Middleware
  • ๊ฐœ๋ฐœ์ž ๋„๊ตฌ ์—ฐ๋™
  • Gulp์™€ ์—ฐ๋™
  • NPM(Node Package Manager) ์†Œ๊ฐœ ๋ฐ ์‚ฌ์šฉ๋ฒ•
  • ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆํ™”
  • Node Path API

4. ๊ฐ•์ขŒ ํŠน์ง•

์„ค์ •์ด ๋ณต์žกํ• ์ˆ˜๋ก ์ž‘์€ ๋‹จ์œ„๋ถ€ํ„ฐ ์ฐจ๋ก€์ฐจ๋ก€ ํ•™์Šต์„ ํ•˜์…”์•ผ ํฐ ๊ทธ๋ฆผ์„ ๊ทธ๋ฆด ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ์ฃผ์š” ์†์„ฑ๋“ค์— ๋Œ€ํ•ด์„œ ๊ฐ„๋‹จํžˆ ์„ค๋ช… ํ›„ ๊ฐ•์‚ฌ์˜ ๋ผ์ด๋ธŒ ์ฝ”๋”ฉ -> ์ค€๋น„๋œ ์˜ˆ์ œ์— ๋”ฐ๋ผ ์ˆ˜๊ฐ•์ƒ์ด ์‹ค์Šตํ•˜๋„๋ก ๊ต๊ณผ๊ณผ์ •์„ ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋ฐฉ์‹์œผ๋กœ ์ˆ˜๊ฐ•์ƒ๋ถ„๋“ค์ด ์‰ฝ๊ณ  ๋น ๋ฅด๊ฒŒ Webpack์„ ๋”ฐ๋ผ ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ตฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ, ๋งŽ์ด๋“ค ๊ถ๊ธˆํ•ดํ•˜๋Š” ์›นํŒฉ์„ ์™œ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š”๊ฐ€? ์›นํŒฉ์˜ ๋ฐฐ๊ฒฝ, ์›นํŒฉ ์‚ฌ์šฉ์— ํ•„์š”ํ•œ ์„ ์ˆ˜์ง€์‹(NPM, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ชจ๋“ˆํ™”)๊ณผ ๊ธฐํƒ€ ๊ธฐ์ˆ ๋“ค(Node.js, Gulp)์„ ๋ฏธ๋ฆฌ ๋‹ค ์„ค๋ช…๋“œ๋ฆฌ๊ณ , ์ž์„ธํ•œ ์„ค์ •์„ ์‚ดํŽด๋ณด๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ํŽธ์˜ ์ด์•ผ๊ธฐ์™€ ๊ฐ™์€ ์ˆ˜์—…์ž…๋‹ˆ๋‹ค.

5. ๊ฐ•์‚ฌ ์†Œ๊ฐœ

์žฅ๊ธฐํšจ (์บกํ‹ดํŒ๊ต)


[ํ”„๋กœํ•„]

  ์ธํ”„๋Ÿฐ์ด ๋งŒ๋‚œ ์‚ฌ๋žŒ #02 | ์žฅ๊ธฐํšจ๋‹˜ ์ธํ„ฐ๋ทฐ ๋ณด๋Ÿฌ๊ฐ€๊ธฐ

์•ˆ๋…•ํ•˜์„ธ์š”
์žฅ๊ธฐํšจ(์บกํ‹ดํŒ๊ต)์ž…๋‹ˆ๋‹ค.

47,299

๋ช…

์ˆ˜๊ฐ•์ƒ

4,531

๊ฐœ

์ˆ˜๊ฐ•ํ‰

3,812

๊ฐœ

๋‹ต๋ณ€

4.9

์ 

๊ฐ•์˜ ํ‰์ 

17

๊ฐœ

๊ฐ•์˜

์ธํ”„๋Ÿฐ์—์„œ 8๋…„์งธ ์ง€์‹์„ ๊ณต์œ ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ  ๊ธฐ์ˆ ๋ธ”๋กœ๊ทธ, ๐Ÿ“ฃ ํŠธ์œ„ํ„ฐ, ๐Ÿ’ป ๊นƒํ—™

๐Ÿ“— Do it! Vue.js ์ž…๋ฌธ, ์‰ฝ๊ฒŒ ์‹œ์ž‘ํ•˜๋Š” ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ, ๋‚˜๋Š” ๋„ค์ด๋ฒ„ ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž์ž…๋‹ˆ๋‹ค. ์ฑ… 3๊ถŒ ์ง‘ํ•„
๐Ÿ“– Cracking Vue.js, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ ํ•ธ๋“œ๋ถ, ์›นํŒฉ ํ•ธ๋“œ๋ถ. ์˜จ๋ผ์ธ ๋ฌด๋ฃŒ ๊ฐ€์ด๋“œ๋ถ 3๊ถŒ ์ง‘ํ•„
๐Ÿ‘จโ€๐Ÿ’ป ์บกํ‹ดํŒ๊ต์˜ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์œ ํŠœ๋ธŒ ์ฑ„๋„ ์šด์˜ - ์ทจ์ค€์ƒ, ์ฃผ๋‹ˆ์–ด ๊ฐœ๋ฐœ์ž๋“ค์˜ ๊ณ ๋ฏผ์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ
๐Ÿฅค ์บกํ‹ดํŒ๊ต์˜ ์นด์นด์˜คํ†ก ์˜คํ”ˆ ์ฑ„ํŒ…๋ฐฉ ์šด์˜ - ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ ์ตœ์‹  ์ •๋ณด์™€ ์—…๊ณ„ ๋™๋ฃŒ๋“ค์˜ ์ƒ๊ฐ๊ณผ ๊ณ ๋ฏผ์„ ๋“ค์„ ์ˆ˜ ์žˆ๋Š” ๊ณณ

๋”๋ณด๊ธฐ

์ปค๋ฆฌํ˜๋Ÿผ

์ „์ฒด

51๊ฐœ โˆ™ (3์‹œ๊ฐ„ 26๋ถ„)

๊ฐ•์˜ ๊ฒŒ์‹œ์ผ: 
๋งˆ์ง€๋ง‰ ์—…๋ฐ์ดํŠธ์ผ: 

์ˆ˜๊ฐ•ํ‰

์•„์ง ์ถฉ๋ถ„ํ•œ ํ‰๊ฐ€๋ฅผ ๋ฐ›์ง€ ๋ชปํ•œ ๊ฐ•์˜์ž…๋‹ˆ๋‹ค.
๋ชจ๋‘์—๊ฒŒ ๋„์›€์ด ๋˜๋Š” ์ˆ˜๊ฐ•ํ‰์˜ ์ฃผ์ธ๊ณต์ด ๋˜์–ด์ฃผ์„ธ์š”!

๊ณต๊ฐœํ•˜์ง€ ์•Š๋Š” ๊ฐ•์˜๋กœ ์ˆ˜๊ฐ•์ด ์ œํ•œ๋ฉ๋‹ˆ๋‹ค.