๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

React

[ webpack ] React(๋ฆฌ์•กํŠธ)์™€ webpack(์›นํŒฉ)

 

์ถœ์ฒ˜ - https://webpack.js.org/

 

React.js๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜, ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ˜น์€ ํ”„๋ ˆ์ž„์›Œํฌ๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค๋ณด๋ฉด ํ•ญ์ƒ webpack๊ณผ ๊ฐ™์€ ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ ํˆด์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋œ๋‹ค. ์›นํŒฉ ๊ณต์‹ ์‚ฌ์ดํŠธ์—์„œ ์†Œ๊ฐœํ•˜๋Š” ์ปจ์…‰์€ ํ˜„๋Œ€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์„ ์œ„ํ•œ ์ •์  ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋ผ๊ณ  ๋งํ•œ๋‹ค. 

๋ชจ๋“ˆ ๋ฒˆ๋“ค๋Ÿฌ๋Š” ์—ฌ๋Ÿฌ ๋‹ค๋ฅธ ํŒŒ์ผ๋“ค(JavaScript, LESS, CSS, JSX, ESNext ๋“ฑ)์„ ๋ฐ›์•„์„œ ํ•˜๋‚˜์˜ ํŒŒ์ผ๋กœ ๋ฌถ์–ด์ค€๋‹ค

 

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

 

๋˜ ๋„คํŠธ์›Œํฌ ์„ฑ๋Šฅ์˜ ์ธก๋ฉด์—์„œ๋Š” ์˜์กด ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ ๋ฌถ์€ ๋ฒˆ๋“ค์„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ 1๋ฒˆ๋งŒ ์ฝ๊ธฐ ๋•Œ๋ฌธ์— ๋„คํŠธ์›Œํฌ์˜ ์„ฑ๋Šฅ์ด ์ข‹์•„์ง„๋‹ค. ๊ฐ script ํƒœ๊ทธ๊ฐ€ http ์š”์ฒญ์„ ๋งŒ๋“ค์–ด๋‚ด๋ฏ€๋กœ http ์š”์ฒญ๋งˆ๋‹ค ์•ฝ๊ฐ„์˜ ์‹œ๊ฐ„ ์ง€์—ฐ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ๋ชจ๋“  ์˜์กด ๊ด€๊ณ„๋ฅผ ํ•œ ํŒŒ์ผ์— ๋„ฃ์œผ๋ฉด ๋ชจ๋“  ํŒŒ์ผ์„ 1ํšŒ์˜ http ์š”์ฒญ์œผ๋กœ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์žˆ์–ด, ์ถ”๊ฐ€ ์‹œ๊ฐ„์ง€์—ฐ์„ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

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

 

 

 

 

์›นํŒฉ์˜ ํ•ต์‹ฌ ๊ฐœ๋…

  1. Entry
  2. Output
  3. Loaders
  4. Plugins
  5. Mode
  6. Browser Compatibility(๋ธŒ๋ผ์šฐ์ € ํ˜ธํ™˜์„ฑ)

 

 

 

 

์›นํŒฉ์˜ ์žฅ์ 

- ๋ชจ๋“ˆ์„ฑ : ๋ชจ๋“ˆ ํŒจํ„ด์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ชจ๋“ˆ์„ ์™ธ๋ถ€์— export ํ•˜๊ณ  ๋‚˜์ค‘์— ๊ทธ ๋ชจ๋“ˆ์„ ํ•„์š”ํ•œ ๊ณณ์— import ํ•˜์—ฌ ์‚ฌ์šฉํ•จ์œผ๋กœ์จ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ณด๋‹ค ๊ด€๋ฆฌํ•˜๊ธฐ ์‰ฌ์šด ๊ทœ๋ชจ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค.

 

- ์กฐํ•ฉ : ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ํšจ๊ณผ์ ์œผ๋กœ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ์ž‘๊ณ  ๋‹จ์ˆœํ•œ, ์žฌ์‚ฌ์šฉํ•˜๊ธฐ ์‰ฌ์šด ๋ฆฌ์•กํŠธ ์ปดํฌ๋„ŒํŠธ๋ฅผ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ปดํฌ๋„ŒํŠธ๊ฐ€ ์ž‘์•„์ง€๋ฏ€๋กœ ๋” ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ  ํ…Œ์ŠคํŠธ ํ•˜๊ธฐ ์‰ฌ์›Œ์ง„๋‹ค.

 

- ์†๋„ : ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋ชจ๋“ˆ๊ณผ ์˜์กด ๊ด€๊ณ„๋ฅผ ํ•˜๋‚˜์˜ ํด๋ผ์ด์–ธํŠธ ๋ฒˆ๋“ค๋กœ ๋ฌถ์Œ์œผ๋กœ์จ ์—ฌ๋Ÿฌ ํŒŒ์ผ์„ http ๋กœ ์š”์ฒญํ•˜์ง€ ์•Š๊ณ , 1ํšŒ์˜ http ์š”์ฒญ์„ ํ†ตํ•ด ์‹œ๊ฐ„ ์ง€์—ฐ์„ ์ค„์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋นจ๋ผ์ง„๋‹ค.

 

- ์ผ๊ด€์„ฑ : JSX๋‚˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ์ปดํŒŒ์ผํ•ด์ฃผ์–ด ํ”„๋กœ์ ํŠธ์—์„œ ์•„์ง ํ‘œ์ค€ํ™”๋˜์ง€ ์•Š์€ ์ตœ์‹  ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ”๋ฒจ์€ ๋‹ค์–‘ํ•œ ESNext ๋ฌธ๋ฒ•์„ ์ง€์›ํ•˜๋ฏ€๋กœ ์›นํŒฉ๊ณผ ๋ฐ”๋ฒจ์„ ์ด์šฉํ•˜์—ฌ ๊ฐœ๋ฐœ์— ๊ณ„์† ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

 

++ React์—์„œ CRA๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์…‹ํŒ…ํ–ˆ๋‹ค๋ฉด, webpack์ด ํฌํ•จ๋˜์–ด ์žˆ์œผ๋ฉฐ, ์ง์ ‘ ํ”„๋กœ์ ํŠธ์— ์›นํŒฉ ๊ธฐ๋Šฅ์„ ์…‹ํŒ…ํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๋‹ค.

 

 

 

 

 


 

๐ŸŒธ ์ถœ์ฒ˜ ๐ŸŒธ

 

webpack.org
Learning React