
Webpack은 모던 자바스크립트 애플리케이션을 위한 정적 모듈 번들러
의존성이 있는 모듈들을 하나의 자바스크립트 파일로 번들링해주는 역할
코드 분할, 핫 모듈 교체, 다양한 로더 및 플러그인 지원 등 다양한 기능을 제공
브라우저에서 실행 가능한 형태로 모듈들을 묶어 성능과 통합 개발 환경을 개선할 수 있음
// 최신 JavaScript (ES6+)
const greet = (name) => {
console.log(`Hello, ${name}!`);
};
greet("React Developer");
// 트랜스파일링된 코드 (ES5)
"use strict";
var greet = function greet(name) {
console.log("Hello, " + name + "!");
};
greet("React Developer");
Babel은 최신 자바스크립트 문법을 구형 브라우저에서 실행 가능한 형태로 변환해주는 트랜스파일러
ES6 이상의 최신 자바스크립트 코드를 ES5 등 구버전으로 변환하여 크로스브라우징
(웹 페이지 제작 시 모든 브라우저에서 깨지지 않고 의도한 대로 호환성 좋게 나오게 하는 작업) 이슈를 해결할 수 있음
플러그인과 프리셋을 통해 다양한 환경에 맞게 코드 변환 규칙을 커스터마이징 할 수 있음.
Babel은 React 프로젝트에서 JSX와 최신 JavaScript 문법을 트랜스파일링하기 위해 많이 사용.
React 환경에서 Babel의 역할:
// JSX 코드
const App = () => <h1>Hello React</h1>;
// 변환 후
var App = function App() {
return React.createElement("h1", null, "Hello React");
};
폴리필(Polyfill)은 브라우저나 JavaScript 환경에서 지원하지 않는 최신 기능을 사용할 수 있도록 제공되는 추가 코드
Webpack은 모듈 번들링, Babel은 코드 트랜스파일링, Polyfill은 기능 패치 역할을 하여 자바스크립트 개발 환경에서 크로스브라우징 이슈를 해결하고 통합적인 개발 환경을 제공한다.