[Javascript] Babel

kanteยท2020๋…„ 12์›” 24์ผ
1

๐ŸŽ„2020 12 24๐ŸŽ„

(์œˆ๋„์šฐ์—์„œ ์ด๋ชจ์ง€ ๋‹จ์ถ•ํ‚ค๊ฐ€ Windows + . ์ด๋ž˜์š” ใ…‹ใ…‹)

React๋‚˜ Vue๋ฅผ ๊ณต๋ถ€ํ•˜๋‹ค๊ฐ€ ๋ณด๋ฉด Babel์ด๋ž€ ๋‹จ์–ด๋ฅผ ๋ชป ๋“ค์–ด๋ดค์„ ์ˆ˜๊ฐ€ ์—†๋‹ค. Babel์€ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๊ณ  ์™œ ํ•„์š”ํ•œ์ง€ ์•Œ์•„๋ณด์ž


ํ•„์š”ํ•œ ์ด์œ 

ES6(ECMA Script๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ ํ‘œ์ค€์ด๋ฉฐ ์ฝ”์–ด์ž„) ์ด๋‚˜ ๊ทธ ์ด์ƒ ๋ฒ„์ „์„ ์‚ฌ์šฉํ•ด์„œ ๋นŒ๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ ค๋ฉด ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๊ตฌ์ถ•์„ ์ž˜ ํ•ด์•ผํ•œ๋‹ค.

React๋ฅผ ๊ฐœ๋ฐœํ•  ๋•Œ

const foo = require('foo')

๊ฐ™์ด ์‚ฌ์šฉํ•˜๋Š” ๊ฑธ ๋ณธ ์ ๋„ ์žˆ๊ณ 

import foo from 'foo'

๊ฐ™์€ ๊ฒƒ๋„ ๋ณธ ์ ์ด ์žˆ์„ ๊ฒƒ์ด๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ์— ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฒ„์ „์ด ๋งž์ง€ ์•Š๋‹ค๋ฉด ์•„๋ž˜์˜ ์ฝ”๋“œ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜๊ฐ€ ์—†์„ ๊ฒƒ์ด๋‹ค.

์ •๋ฆฌํ•˜์ž๋ฉด

Babel์€ ์ตœ์‹ ์˜ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ด์ „ ๋‹จ๊ณ„๋ฅผ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ณ€ํ™˜ ๊ฐ€๋Šฅํ•˜๊ฒŒ ํ•ด์ฃผ๋Š” ๋„๊ตฌ์ด๋‹ค. ES6+๋กœ ์ž‘์„ฑ๋œ ์ฝ”๋“œ๋ฅผ IE๋‚˜ ์•„๋‹ˆ๋ฉด ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋ฌธ์ œ ์—†์ด ์ž‘๋™ํ•˜๊ฒŒ ํ•˜๋ ค๋ฉด Babel์„ ์‚ฌ์šฉํ•˜๋ฉด ๋œ๋‹ค. ์ฆ‰ ํ˜ธํ™˜์„ฑ ์„ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค.

Babel ๊ธฐ๋Šฅ

  • ๊ตฌ๋ฌธ ๋ณ€ํ™˜
  • Polyfill ๊ธฐ๋Šฅ
  • ์†Œ์Šค์ฝ”๋“œ ๋ณ€ํ™˜

ES6

ES6 ๋Š” ES5์— ๋น„ํ•ด์„œ ์ƒ๋‹นํžˆ ๋งŽ์ด ๋ฐ”๋€Œ์—ˆ๋‹ค. ์ฝ”๋”ฉ์— ์œ ์šฉํ•˜๊ฒŒ ๋ฐ”๋€Œ์—ˆ๋Š”๋ฐ, ๊ฐ„๋‹จํ•œ ๋ช‡ ๊ฐ€์ง€๋งŒ ์‚ดํŽด๋ณด๋ฉด

Arrow Function

arr.forEach(item => {
    console.log(item)
})

ํ•จ์ˆ˜ ์„ ์–ธ์„ ๋งค์šฐ ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋‹ค.

Classes

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜ ์–ธ์–ด๋ผ ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ํ•˜์ง€๋งŒ ES6 ๋ถ€ํ„ฐ๋Š” ํ”„๋กœํ† ํƒ€์ž…์„ ํด๋ž˜์Šค์ฒ˜๋Ÿผ ๊ตฌํ˜„ํ•˜์—ฌ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

let, const

์›๋ž˜๋Š” var์„ ์‚ฌ์šฉํ–ˆ์—ˆ์ง€๋งŒ, ES6 ๋ถ€ํ„ฐ๋Š” ์ˆ˜์ • ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋Š” let, ๋ถˆ๊ฐ€๋Šฅํ•œ ๋ณ€์ˆ˜๋Š” const์ด๋‹ค.(Swift์—์„œ๋Š” let์ด ์ˆ˜์ • ๋ถˆ๊ฐ€๋Šฅ.. ์•„ ํ—ท๊น”๋ ค)


์ฐธ์กฐ

https://brunch.co.kr/@topherlee/29

profile
๊ฒฝํ—˜๋งŽ์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋˜์ž

0๊ฐœ์˜ ๋Œ“๊ธ€