Barbel

์ด์ „์— ์˜ฌ๋ ธ๋˜ ์›นํŒฉ ํฌ์ŠคํŒ…์— ์ด์–ด์„œ ์ด๋ฒˆ์—” ๋ฐ”๋ฒจ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž

๊ณต์‹์‚ฌ์ดํŠธ์— ํ•œ๋ฒˆ ๋“ค์–ด๊ฐ€ ์†Œ๊ฐœ ๋ฌธ์„œ๋ฅผ ์ฝ์–ด๋ณด์ž. Babel์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. ECMAScript 2015+ ์ฝ”๋“œ๋ฅผ ํ˜„์žฌ ๋ฐ ์ด์ „ ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ด์ „๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” Javascript ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉํšŒ๋“  ํˆด์ฒด์ธ์ž…๋‹ˆ๋‹ค.

์ด ๋ฌธ์žฅ์„ ํ•˜๋‚˜ํ•˜๋‚˜ ์‚ดํŽด๋ณด๋„๋ก ํ•˜์ž.

๋จผ์ € ECMAScript๋ผ๋Š” ๋ง์ด ๋‚˜์™”๋Š”๋ฐ ์ด๊ฒŒ ๋ฌด์Šจ ์˜๋ฏธ์˜ ๋‹จ์–ด์ผ๊นŒ


ECMAScript

์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ๋„ท์Šค์ผ€์ดํ”„๋ผ๋Š” ํšŒ์‚ฌ์—์„œ ๊ฐœ๋ฐœ๋œ ์–ธ์–ด์ด๋‹ค. ์ดํ›„, Micro Soft๊ฐ€ Jscript์–ธ์–ด๋ฅผ ๊ฐœ๋ฐœํ•˜์—ฌ ์ต์Šคํ”Œ๋กœ๋Ÿฌ์— ํƒ‘์žฌํ•˜์˜€๋Š”๋ฐ ์ด ๋‘ ์–ธ์–ด๊ฐ€ ์„œ๋กœ ํ˜ธํ™˜๋˜์ง€ ์•Š์•„ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๊ธฐ๋Šฅ์ด ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜์ง€ ์•Š๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์˜€๋‹ค.

์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ECMA๋ผ๋Š” ๋น„์˜๋ฆฌ ํ‘œ์ค€๊ธฐ๊ตฌ๊ฐ€ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ผํ•œ ๋™์ž‘์„ ํ•˜๊ฒŒ๋” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋ฅผ ํ‘œ์ค€ํ™” ์‹œํ‚จ๊ฒƒ์ด ๋ฐ”๋กœ ECMAScript์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ๋งŽ์ด ๋“ค์–ด๋ณธ ๋‹จ์–ด์ธ ES5, ES6 ๋ชจ๋‘ ECMAScript์˜ ๋‹ค๋ฅธ ๋ฒ„์ „์„ ๊ฐ€๋ฆฌํ‚ค๋Š” ๋‹จ์–ด์ธ ๊ฒƒ์ด๋‹ค.

ํ—ท๊ฐˆ๋ฆด์ˆ˜ ์žˆ์ง€๋งŒ, ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ๋Š” ์–ธ์–ด ๊ทธ ์ž์ฒด์ด๊ณ , ECMAScript๋Š” ๊ทœ๊ฒฉ, ํ‘œ์ค€์„ ์˜๋ฏธํ•œ๋‹ค.


๊ทธ๋Ÿผ ์—ฌ๊ธฐ์„œ ์กฐ๊ธˆ๋งŒ ๋” ์ƒ๊ฐํ•ด๋ณด์ž. ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €์—์„œ ๋™์ผํ•˜๊ฒŒ ๋™์ž‘ํ•˜๊ฒŒ๋” ECMAScipt๋ผ๋Š” ํ‘œ์ค€์„ ๋งŒ๋“ค์—ˆ๋Š”๋ฐ ๊ทธ๋Ÿผ ๋ฒ„์ „์ด ์—…๊ทธ๋ ˆ์ด๋“œ ๋ ๋•Œ๋งˆ๋‹ค ๊ตฌ ๋ฒ„์ „์„ ์“ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๋Š” ์–ด๋–ป๊ฒŒ ๋˜๋Š”๊ฒƒ์ผ๊นŒ?

์‹ค์ œ๋กœ ํ˜„์žฌ๋„ ๋ชจ๋“  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ตœ์‹  ECMAScript ๋ฒ„์ „์„ ์ง€์›ํ•˜๊ณ  ์žˆ์ง€ ์•Š๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๋ฌธ๋ฒ•์„ ๊ตฌํ˜• ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ž‘๋™ํ• ์ˆ˜ ์žˆ๋„๋ก ๋ณ€๊ฒฝํ•ด์ฃผ๋Š” ์ž‘์—…์ด ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ์ด ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•ด ์ฃผ๋Š”๊ฒƒ์ด ๋ฐ”๋กœ Babel์ด๋‹ค.

์œ„์—์„œ ์–ธ๊ธ‰ํ•œ Babel์˜ ์ •์˜๋ฅผ ๋‹ค์‹œ ํ•œ๋ฒˆ ๋ณด์ž Babel์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ปดํŒŒ์ผ๋Ÿฌ์ด๋‹ค. ECMAScript 2015+ ์ฝ”๋“œ๋ฅผ ํ˜„์žฌ ๋ฐ ์ด์ „ ๋ธŒ๋ผ์šฐ์ € ๋˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ด์ „๋ฒ„์ „๊ณผ ํ˜ธํ™˜๋˜๋Š” Javascript ๋ฒ„์ „์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋Š”๋ฐ ์ฃผ๋กœ ์‚ฌ์šฉํšŒ๋“  ํˆด์ฒด์ธ์ž…๋‹ˆ๋‹ค.

๋งค์šฐ ์ •ํ™•ํ•œ ์„ค๋ช…์ด๋‹ค. ECMAScript 2015 ์ดํ›„์— ์—…๋ฐ์ดํŠธ๋œ ์ตœ์‹  ์ฝ”๋“œ๋ฅผ ๊ตฌ๋ฒ„์ „์˜ ๋ธŒ๋ผ์šฐ์ €์™€ Node ํ™˜๊ฒฝ์—์„œ ํ˜ธํ™˜๋˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๋‹ค๋ฅธ ์ฝ”๋“œ๋กœ๋ฐ”๊ฟ”์ฃผ๋Š” ์ปดํŒŒ์ผ๋Ÿฌ ๋ผ๋Š” ๋œป์œผ๋กœ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ์ตœ์‹  ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋ฅผ ์ด์ „ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ฃผ๊ธฐ์— TransFiler๋ผ๊ณ ๋„ ํ•œ๋‹ค.

๊ทธ๋Ÿฌ๋‚˜ ์ด๋ ‡๊ฒŒ ์ด์ „์ฝ”๋“œ๋กœ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ์—๋„ ํ•œ๊ณ„๊ฐ€ ์กด์žฌํ•œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด

const test = () => {
	return;
}

var test = function Test(){
	return;
}

์ด๋Ÿฐ์‹์œผ๋กœ ํ™”์‚ดํ‘œ ํ•จ์ˆ˜๋Š” ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ๋ณ€ํ™˜์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ES6์ด์ƒ ๋ฒ„์ „์—์„œ ์ถ”๊ฐ€๋œ Promise, map, set๋“ฑ์˜ ๋ฉ”์„œ๋“œ๋“ค์€ ์ ์šฉํ• ์ˆ˜ ์—†๋‹ค.

๋”ฐ๋ผ์„œ Babel์€ polyfill์„ ์‚ฌ์šฉํ•ด ์ด๋Ÿฌํ•œ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•œ๋‹ค. Babel์€ ์ตœ์‹  ๋ฌธ๋ฒ•์„ ์ด์ „ ๋ฌธ๋ฒ•์œผ๋กœ ๋ณ€ํ™˜์‹œ์ผœ ์ฃผ๋Š” ์—ญํ• ์ด๋ผ๋ฉด, polyfill์€ ์ด์ „ ๋ฌธ๋ฒ•์— ์ •์˜๋˜์–ด ์žˆ์ง€ ์•Š์€ ๋ฉ”์„œ๋“œ/๊ฐ์ฒด๋“ค์„ ์ •์˜ํ•ด์ฃผ๋Š” ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

Last updated