개요

Babel은 Javascript의 컴파일러(Compiler) 입니다.
자바스크립트는 컴파일 없이 (주로) 브라우저의 자바스크립트 엔진(Javascript Engine)에 의해 인터프리터 형식으로 실행되는데, 어째서 컴파일러가 필요한가에 대해 의문을 가지실 분이 있으실 것입니다.

저의 경우 Babel을 React.js 를 배우다가 Babel을 처음 접하게 되었는데, Babel에 대해 자세히 설명해 놓은 문서를 찾기 힘들었을 뿐만 아니라, Babel의 최신 버전인 Babel7에 대한 문서는 더더욱 찾기 힘들었기 때문에 이 문서를 작성하게 되었습니다.

이제 Babel이 어떤 역할을 하는지, 그리고 어떻게 사용 해야 하는지 아래 글을 통해 알아봅시다.


ECMAScript

자바스크립트는 크게 세 가지로 나누어집니다.
첫 번째는 자바스크립트의 코어 역할을 하는 ECMAScript입니다. ECMAScript는 자바스크립트의 문법을 담당한다고 생각하시면 됩니다.
두 번째는 DOM(Document Object Model)입니다. (주로) 브라우저에서 구조화된 문서를 표현하는 방식입니다.
세 번째는 BOM(Browser Object Model)입니다. 브라우저와 관련된 모델입니다.


Babel이 하는 일

Babel은 앞서 말하였듯, Javascript를 컴파일 하는 역할을 수행합니다.
Javascript를 실행하는 자바스크립트 엔진(Javascript Engine)은 각 엔진(또는 엔진의 버전) 별로 실행할 수 있는 자바스크립트의 문법이 다릅니다.