카테고리 없음

바벨(Babel)

cheon seung hyeon 2024. 9. 23. 15:46

바벨(Babel)이란?

자바스크립트 컴파일러로, 최신 자바스크립트 문법을 구형 브라우저나 오래된 환경에서도 실행될 수 있도록 구버전의 자바스크립트 코드로 변환(트랜스파일) 해주는 도구

 

1. 바벨의 역할과 목적

  • 최신 자바스크립트 문법 사용 가능: 최신 ECMAScript 표준을 지원하지 않는 브라우저에서도 최신 문법을 사용할 수 있게 해줍니다.
  • 코드 호환성 유지: 구형 브라우저나 Node.js의 오래된 버전에서도 코드가 실행될 수 있도록 도와줍니다.
  • 트랜스파일러: 바벨은 ES6+, JSX, TypeScript 등 다양한 문법을 ES5(구버전의 자바스크립트)로 변환하여 호환성을 높입니다.

2. 바벨의 주요 기능

  1. 문법 변환:
    • 최신 자바스크립트 문법(ES6+, ES7, ES8 등)을 ES5와 같은 구문으로 변환합니다.
    • 예를 들어, let, const, 화살표 함수, 클래스, 모듈(import/export) 등을 지원하지 않는 환경에서도 사용할 수 있게 변환합니다.
  2. 폴리필 제공:
    • 바벨은 최신 자바스크립트 기능을 구현하기 위해 core-js 같은 폴리필을 추가해줍니다. 폴리필은 최신 기능을 구형 환경에서도 사용할 수 있도록 구현한 코드입니다.
    • 예를 들어, Promise, Array.prototype.includes와 같은 최신 API를 지원하지 않는 브라우저에서도 사용할 수 있게 합니다.
  3. 코드 최적화:
    • 바벨은 트랜스파일링 과정에서 코드 최적화와 최적의 구문으로 변환하여 성능 향상을 도와줍니다.

3. 바벨의 구성 요소

바벨은 주로 플러그인과 프리셋을 통해 기능을 확장하고 다양한 트랜스파일링을 수행합니다.

  1. 프리셋(Presets):
    • 프리셋은 여러 플러그인을 묶어 제공하는 설정 모음입니다. 가장 많이 사용하는 프리셋으로는 @babel/preset-env가 있으며, 최신 자바스크립트 문법을 적절히 변환해줍니다.
  2. 플러그인(Plugins):
    • 플러그인은 특정 문법을 변환하는 기능을 제공합니다. 예를 들어, JSX를 변환하는 @babel/plugin-transform-react-jsx나 클래스 문법을 변환하는 @babel/plugin-transform-classes 등이 있습니다.
  3. 폴리필(Polyfills):
    • 바벨은 필요한 경우 특정 기능을 에뮬레이션하는 폴리필을 추가하여, 최신 자바스크립트 API를 사용할 수 있도록 합니다.

 

5. 바벨을 사용하는 이유

  • 개발자 생산성 향상: 최신 문법을 사용하여 더 간결하고 효율적인 코드를 작성할 수 있습니다.
  • 브라우저 호환성 문제 해결: 다양한 환경에서도 일관된 코드 실행을 보장합니다.
  • React, Vue, Angular와 같은 프레임워크 사용: JSX 문법이나 최신 자바스크립트 기능을 쉽게 사용할 수 있도록 도와줍니다.