최근에 react 프로젝트와 typescript 프로젝트를 거치면서 webpack 을 자주 써보고 세팅해보게 되었습니다.
처음에는 동작의 원리보다 `요즘 잘나가는 프론트엔드 개발 환경 만들기`라는 목표로 세팅 하였으나
점점 처음부터 차근 차근 만지면서, 내가 이걸 몰랐구나 이게 이런 뜻이었구나 새삼 느끼게 되었습니다.
webpack 에 대한 설명은 이미 많이 있으니 이번에는 babel 에 대해서 글을 적어보도록 하겠습니다.
babel 이란?
먼저 공식 사이트 소개를 가져오자면 아래와 같습니다.
Babel is a JavaScript compiler.
그렇습니다. 바로 `자바스크립트 컴파일러` 입니다. 왜 인터프리터 언어에 컴파일러가 필요하지? 라고 생각하시는 분들도 있으실 껍니다.
정확히는 babel 은 javascript 로 결과물을 만들어주는 컴파일러입니다. `소스 대 소스 컴파일러 (transpiler)`
라고 불립니다.
그렇다면 왜 javascript 로 변환하는 과정이 필요할까요?
ESNext and Legacy... Legacy...
지금도 프론트엔드는 너무나도 빠르게 발전되고 있습니다.
심지어 최신 브라우져 조차도 지원하지 못하는 문법과 여러 기술들이 출연하고 있습니다.