Barbel
Last updated
Last updated
์ด์ ์ ์ฌ๋ ธ๋ ์นํฉ ํฌ์คํ ์ ์ด์ด์ ์ด๋ฒ์ ๋ฐ๋ฒจ์ ๋ํด์ ์์๋ณด์
์ ํ๋ฒ ๋ค์ด๊ฐ ์๊ฐ ๋ฌธ์๋ฅผ ์ฝ์ด๋ณด์. Babel์ ์๋ฐ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ์ด๋ค. ECMAScript 2015+ ์ฝ๋๋ฅผ ํ์ฌ ๋ฐ ์ด์ ๋ธ๋ผ์ฐ์ ๋๋ ํ๊ฒฝ์์ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ Javascript ๋ฒ์ ์ผ๋ก ๋ณํํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ ํด์ฒด์ธ์
๋๋ค.
์ด ๋ฌธ์ฅ์ ํ๋ํ๋ ์ดํด๋ณด๋๋ก ํ์.
๋จผ์ ECMAScript๋ผ๋ ๋ง์ด ๋์๋๋ฐ ์ด๊ฒ ๋ฌด์จ ์๋ฏธ์ ๋จ์ด์ผ๊น
์๋ฐ์คํฌ๋ฆฝํธ๋ ๋ท์ค์ผ์ดํ๋ผ๋ ํ์ฌ์์ ๊ฐ๋ฐ๋ ์ธ์ด์ด๋ค. ์ดํ, Micro Soft๊ฐ Jscript์ธ์ด๋ฅผ ๊ฐ๋ฐํ์ฌ ์ต์คํ๋ก๋ฌ์ ํ์ฌํ์๋๋ฐ ์ด ๋ ์ธ์ด๊ฐ ์๋ก ํธํ๋์ง ์์ ๋ค๋ฅธ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ ๊ธฐ๋ฅ์ด ๋์ผํ๊ฒ ๋์ํ์ง ์๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ์๋ค.
์ด ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๊ธฐ ์ํด ECMA๋ผ๋ ๋น์๋ฆฌ ํ์ค๊ธฐ๊ตฌ๊ฐ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋์ผํ ๋์์ ํ๊ฒ๋ ์๋ฐ์คํฌ๋ฆฝํธ๋ฅผ ํ์คํ ์ํจ๊ฒ์ด ๋ฐ๋ก ECMAScript์ด๋ค. ์ฐ๋ฆฌ๊ฐ ๋ง์ด ๋ค์ด๋ณธ ๋จ์ด์ธ ES5, ES6 ๋ชจ๋ ECMAScript์ ๋ค๋ฅธ ๋ฒ์ ์ ๊ฐ๋ฆฌํค๋ ๋จ์ด์ธ ๊ฒ์ด๋ค.
ํท๊ฐ๋ฆด์ ์์ง๋ง, ์๋ฐ์คํฌ๋ฆฝํธ๋ ์ธ์ด ๊ทธ ์์ฒด์ด๊ณ , ECMAScript๋ ๊ท๊ฒฉ, ํ์ค์ ์๋ฏธํ๋ค.
๊ทธ๋ผ ์ฌ๊ธฐ์ ์กฐ๊ธ๋ง ๋ ์๊ฐํด๋ณด์. ๋ชจ๋ ๋ธ๋ผ์ฐ์ ์์ ๋์ผํ๊ฒ ๋์ํ๊ฒ๋ ECMAScipt๋ผ๋ ํ์ค์ ๋ง๋ค์๋๋ฐ ๊ทธ๋ผ ๋ฒ์ ์ด ์ ๊ทธ๋ ์ด๋ ๋ ๋๋ง๋ค ๊ตฌ ๋ฒ์ ์ ์ฐ๋ ๋ธ๋ผ์ฐ์ ๋ ์ด๋ป๊ฒ ๋๋๊ฒ์ผ๊น?
์ค์ ๋ก ํ์ฌ๋ ๋ชจ๋ ๋ธ๋ผ์ฐ์ ๊ฐ ์ต์ ECMAScript ๋ฒ์ ์ ์ง์ํ๊ณ ์์ง ์๋ค. ๋ฐ๋ผ์ ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ๋ฌธ๋ฒ์ ๊ตฌํ ๋ธ๋ผ์ฐ์ ์์ ์๋ํ ์ ์๋๋ก ๋ณ๊ฒฝํด์ฃผ๋ ์์ ์ด ํ์ํ ๊ฒ์ด๋ค. ์ด ์ญํ ์ ์ํํด ์ฃผ๋๊ฒ์ด ๋ฐ๋ก Babel์ด๋ค.
์์์ ์ธ๊ธํ Babel์ ์ ์๋ฅผ ๋ค์ ํ๋ฒ ๋ณด์ Babel์ ์๋ฐ์คํฌ๋ฆฝํธ ์ปดํ์ผ๋ฌ์ด๋ค. ECMAScript 2015+ ์ฝ๋๋ฅผ ํ์ฌ ๋ฐ ์ด์ ๋ธ๋ผ์ฐ์ ๋๋ ํ๊ฒฝ์์ ์ด์ ๋ฒ์ ๊ณผ ํธํ๋๋ Javascript ๋ฒ์ ์ผ๋ก ๋ณํํ๋๋ฐ ์ฃผ๋ก ์ฌ์ฉํ๋ ํด์ฒด์ธ์
๋๋ค.
๋งค์ฐ ์ ํํ ์ค๋ช ์ด๋ค. ECMAScript 2015 ์ดํ์ ์ ๋ฐ์ดํธ๋ ์ต์ ์ฝ๋๋ฅผ ๊ตฌ๋ฒ์ ์ ๋ธ๋ผ์ฐ์ ์ Node ํ๊ฒฝ์์ ํธํ๋๋๋ก ์ฝ๋๋ฅผ ๋ค๋ฅธ ์ฝ๋๋ก๋ฐ๊ฟ์ฃผ๋ ์ปดํ์ผ๋ฌ ๋ผ๋ ๋ป์ผ๋ก ์ดํดํ ์ ์๋ค. ์ต์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ฅผ ์ด์ ์๋ฐ์คํฌ๋ฆฝํธ ์ฝ๋๋ก ๋ฐ๊ฟ์ฃผ๊ธฐ์ TransFiler๋ผ๊ณ ๋ ํ๋ค.
๊ทธ๋ฌ๋ ์ด๋ ๊ฒ ์ด์ ์ฝ๋๋ก ๋ฐ๊ฟ์ฃผ๋ ๊ฒ์๋ ํ๊ณ๊ฐ ์กด์ฌํ๋ค. ์๋ฅผ ๋ค์ด
์ด๋ฐ์์ผ๋ก ํ์ดํ ํจ์๋ ์ผ๋ฐ ํจ์๋ก ๋ณํ์ด ๊ฐ๋ฅํ์ง๋ง ES6์ด์ ๋ฒ์ ์์ ์ถ๊ฐ๋ Promise
, map
, set
๋ฑ์ ๋ฉ์๋๋ค์ ์ ์ฉํ ์ ์๋ค.
๋ฐ๋ผ์ Babel์ polyfill
์ ์ฌ์ฉํด ์ด๋ฌํ ๋ฌธ์ ์ ์ ํด๊ฒฐํ๋ค. Babel์ ์ต์ ๋ฌธ๋ฒ์ ์ด์ ๋ฌธ๋ฒ์ผ๋ก ๋ณํ์์ผ ์ฃผ๋ ์ญํ ์ด๋ผ๋ฉด, polyfill์ ์ด์ ๋ฌธ๋ฒ์ ์ ์๋์ด ์์ง ์์ ๋ฉ์๋/๊ฐ์ฒด๋ค์ ์ ์ํด์ฃผ๋ ์ญํ ์ ์ํํ๋ค.