๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Studying Web Development/Front-end

Babel, Webpack์ด๋ž€? ์“ฐ๋Š” ์ด์œ  ์š”์•ฝ ์ •๋ฆฌ

by Esoolgnah 2022. 8. 10.
728x90

 

๐Ÿ“Œ Babel์ด๋ž€?

๋ฐ”๋ฒจ(Babel)์ด๋ž€, ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ๋ชจ๋‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ์ธ ์ปดํŒŒ์ผ๋Ÿฌ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋ฒจ์€ ์ตœ์‹  ๋ฒ„์ „์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๊ฐ€ ์‹คํ–‰๋˜์ง€ ์•Š๋Š” ๊ตฌ ๋ฒ„์ „์˜ ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ์ •์ƒ์ ์œผ๋กœ ์‹คํ–‰๋˜๋„๋ก ๋ณ€ํ™˜ํ•ด์ค๋‹ˆ๋‹ค. (์ตœ์‹  ๋ฒ„์ „์˜ JavaScript ์ฝ”๋“œ๋ฅผ ES5๋ฒ„์ „์˜ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” Node.jsํŒจํ‚ค์ง€) ํ˜„์žฌ๋Š” ๋ฐ”๋ฒจ์„ ์ด์šฉํ•˜์—ฌ JSX ๋ฌธ๋ฒ•, ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ(TypeScript)์™€ ๊ฐ™์€ ์ •์ ํƒ€์ž…์˜ ์–ธ์–ด์™€ ์ฝ”๋“œ ์••์ถ• ๋“ฑ์˜ ๋ฌธ๋ฒ•์„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

babel์„ ์“ฐ๋Š” ์ด์œ 

  • ํฌ๋กœ์Šค ๋ธŒ๋ผ์šฐ์ง•
    • JavaScript (ES6) -> JavaScript(ES5)๋กœ ๋ณ€ํ™˜ํ•ด์ค๋‹ˆ๋‹ค. (๋ธŒ๋ผ์šฐ์ € ํ•˜์œ„ ํ˜ธํ™˜์„ฑ์„ ์ƒ๊ฐ)
    • ๊ฐ ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค JavaScript ์—”์ง„์ด ๋‹ค๋ฅด์ง€๋งŒ, ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ž‘ํ•˜๋„๋ก ํ˜ธํ™˜์„ฑ์„ ์ง€์ผœ์ค๋‹ˆ๋‹ค.
  • ํด๋ฆฌํ•„(polyfill)
    • ํด๋ฆฌํ•„์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ํŠน์ • ๊ธฐ๋Šฅ์ด ์ง€์›๋˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์ด๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
    • ํด๋ฆฌํ•„์€ ํ”„๋กœ๊ทธ๋žจ์ด ์ฒ˜์Œ์— ์‹œ์ž‘๋  ๋•Œ ํ˜„์žฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ•จ์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•ด์„œ ๊ฐ object์˜ prototype์— ๋ถ™์—ฌ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿ“Œ Webpack์ด๋ž€?

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

 

Webpack์„ ์“ฐ๋Š” ์ด์œ 

  • ๋ชจ๋“ˆ๊ฐ„ ์˜์กด์„ฑ ๋ฌธ์ œ ํ•ด๊ฒฐ
    • ์›นํŒฉ์ด ๋ชจ๋“ˆ๊ฐ„์˜ ์˜์กด์„ฑ์„ ๊ณ„์‚ฐํ•˜์—ฌ ๋ฒˆ๋“ค๋งํ•ด์ค๋‹ˆ๋‹ค.
  • ๋„คํŠธ์›Œํฌ ๋ณ‘๋ชฉ์„ ์ค„์—ฌ์คŒ
    • <script> ํƒœ๊ทธ๋ฅผ ์—ฌ๋Ÿฌ๊ฐœ ์“ฐ๋ฉด ๋„คํŠธ์›Œํฌ ๋ณ‘๋ชฉํ˜„์ƒ์ด ์ƒ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฐ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•˜๋‚˜์˜ jsํŒŒ์ผ๋กœ ๋กœ๋“œํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์‹ค์ œ๋กœ ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ jsํŒŒ์ผ์— ์ž‘์„ฑํ•˜๋ฉด ๊ฐ€๋…์„ฑ์ด๋‚˜ ์ „์—ญ๊ณต๊ฐ„์˜ ์˜ค์—ผ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋ฏ€๋กœ ์›นํŒฉ์„ ์จ์„œ ์—ฌ๋Ÿฌ๊ฐœ์˜ ํŒŒ์ผ์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด์ฃผ๋Š” ๋ฐฉ๋ฒ•์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
  • ๋ชจ๋“ˆ๋‹จ์œ„์˜ ๊ฐœ๋ฐœ ๊ฐ€๋Šฅ
    • ๊ฐ€๋…์„ฑ, ์œ ์ง€๋ณด์ˆ˜ ํšจ์œจ์„ ๋†’์ž…๋‹ˆ๋‹ค. ์Šค์ฝ”ํ”„๋ฅผ ์‹ ๊ฒฝ์“ฐ์ง€ ์•Š๊ณ , ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ„ ์ข…์† ๋ฌธ์ œ๋ฅผ ๊ณ ๋ฏผํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. (์›นํŒฉ์ด ๊ณ„์‚ฐ)
  • ์ฝ”๋“œ ์••์ถ•, ์ตœ์ ํ™”
  • es6+ ์Šคํฌ๋ฆฝํŠธ ์ง€์›
    • ๋ฐ”๋ฒจ๋กœ๋”๋กœ ๋ฐ”๋ฒจ ์‚ฌ์šฉ

 

 

 

 

์ฐธ๊ณ 

 

 

(ํ”„๋ก ํŠธ์—”๋“œ์˜ ์ฒซ๊ฑธ์Œ) ๋ฐ”๋ฒจ(Babel) ์ด๋ž€?

๋ฐ”๋ฒจ (Babel) ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๋งŽ์ด ๋“ค์—ˆ๋˜ ๋‹จ์–ด๊ฐ€ ๋ฐ”๋กœ ๋ฐ”๋ฒจ(Babel) ์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋ฐ”๋ฒจ์€ ๋ฌด์—‡์ผ๊นŒ? ๋ฐ”๋ฒจ(Babel)์ด๋ž€, ์ž…๋ ฅ๊ณผ ์ถœ๋ ฅ์ด ๋ชจ๋‘ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ(JavaScript) ์ฝ”๋“œ์ธ ์ปดํŒŒ

rypro.tistory.com

 

 

[Node.js] Babel (๋ฐ”๋ฒจ) ์ด๋ž€? / ์‚ฌ์šฉ๋ฒ•

babel ์ด๋ž€? ์ตœ์‹  ES6, ES7 ๋ฒ„์ „์˜ javascript์ฝ”๋“œ๋ฅผ, ES5๋ฒ„์ „์˜ ์ฝ”๋“œ๋กœ ๋ฐ”๊พธ์–ด์ฃผ๋Š” Node.js ํŒจํ‚ค์ง€ babel์˜ ํ•„์š”์„ฑ / ์“ฐ๋Š” ๊ณณ ์ž์ฃผ๋ณ€ํ•˜๋Š” javascript ์ตœ์‹  ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ•˜๋Š” ์›น ๋ธŒ๋ผ์šฐ์ €์—์„œ๋„ ํŽ˜์ด์ง€์—

defineall.tistory.com

 

 

ํ”„๋ก ํŠธ์—”๋“œ ํ•„์ˆ˜ Webpack์ด๋ž€?

ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ผ๋ฉด ๊ผญ ์•Œ์•„์•ผ ํ•˜๋Š” ๊ธฐ์ˆ  ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค.Webpack = ๋ชจ๋“ˆ ๋ฒˆ๋“ค๋ง์ด๋ผ๊ณ  ํ•œ๋‹ค.html ํŒŒ์ผ์— ๋“ค์–ด๊ฐ€๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋“ค์„ ํ•˜๋‚˜์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ๋กœ ๋งŒ๋“ค์–ด์ฃผ๋Š” ๋ฐฉ์‹

velog.io

 

 

 

์›นํŒฉ ๋ฐ”๋ฒจ ์š”์•ฝ

github.com/doonguk/webpack-boilerplate doonguk/webpack-boilerplate Webpack, Babel ๋ฅผ ์ด์šฉํ•œ ํ”„๋ก ํŠธ์—”๋“œ ๊ฐœ๋ฐœํ™˜๊ฒฝ ์…‹ํŒ…. Contribute to doonguk/webpack-boilerplate development by creating an account on..

coding0.tistory.com

 

 

 

 

TypeScript + Webpack + Babel ์„ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ 

ํ”„๋ŸฐํŠธ์—”๋“œ ๊ฐœ๋ฐœ์„ ํ•˜๋ฉด ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋”ฐ๋ผ์˜ค๋Š” ๊ฒƒ๋“ค์ด ์žˆ๋‹ค. TypeScript, Webpack, Babel ์ด์ „ ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ๊ต์œก์„ ๋ฐ›์œผ๋ฉฐ ์‚ฌ์šฉํ–ˆ๋˜ ๊ฒƒ๋“ค์ด๋‹ค. (์ด๊ฒƒ ๋ง๊ณ ๋„ ๋งŽ๊ฒ ์ง€๋งŒ...) ๊ทธ๋Ÿฐ ๋Š๋‚Œ์ด ์žˆ๋‹ค ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค

codermun-log.tistory.com

 

 

๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€