React-Native/javaScript

[JS] Babel 이란?

TrueSik 2023. 5. 28. 17:45

Babel이란?

Babel 자바스크립트의 최신 버전을 이전 버전과 호환되는 형태로 변환해 주는 도구입니다. 최신 자바스크립트 문법과 기능을 사용하여 코드를 작성할 있으며, Babel 이를 이전 버전의 자바스크립트로 변환하여 구형 브라우저와의 호환이 되게 해주는 컴파일러 입니다.

// Babel Input: ES2015 arrow function
[1, 2, 3].map(n => n + 1);

// Babel Output: ES5 equivalent
[1, 2, 3].map(function(n) {
  return n + 1;
});

Babel의 주요 기능

- 문법 변환 (Syntax Transformation)

Babel은 최신 자바스크립트 문법을 지원하지 않는 환경에서도 코드를 실행할 수 있게 합니다. 예를 들어, 화살표 함수, 템플릿 리터럴, 클래스 등과 같은 ES6+ 문법을 구형 브라우저에서도 사용할 수 있도록 변환해 줍니다.

 

- 플러그인 (Plugins)

Babel은 다양한 플러그인을 제공하여 개발자가 필요에 따라 원하는 기능을 추가하거나 사용하지 않을 기능을 제거할 수 있습니다. 플러그인은 Babel의 동작을 확장하며, 자신만의 변환 규칙을 작성하여 사용할 수도 있습니다.

 

- 폴리필 (Polyfill)

Babel 폴리필(polyfill) 지원합니다. 폴리필은 구형 브라우저에서 지원되지 않는 기능을 구현하는 코드로, 자바스크립트의 기능을 확장하여 구형 브라우저에서도 동작하도록 합니다. Babel 필요한 폴리필을 자동으로 추가하거나 사용자가 직접 선택할 있도록 도와줍니다.

 

JS에서 Babel을 사용하는 이유

javascript는 컴파일러가 아닌 인터프리터로 동작합니다. 그래서 기계어로 변환하는 속도적인 면에서 조금 느릴 수 있습니다.

그리고 Babel을 사용하는 이유는 위의 Babel에서 제공되는 주요 기능들을 확장해서 사용할 수 있기 때문입니다.

 

참고

https://babeljs.io/docs/

 

What is Babel? · Babel

Babel is a JavaScript compiler

babeljs.io

https://velog.io/@suyeon9456/Babel

 

Babel 직접 적용하며 이해하기

🤔 Babel이란? 바벨은 자바스크립트 컴파일러이다. > Babel is a JavaScript compiler Babel 공식페이지 🔎 컴파일러란? 컴파일러는 특정 프로그래밍 언어로 작성된 코드를 다른 프로그래밍 언어나 컴퓨터

velog.io