Webpack
- 주로 자바스크립트 애플리케이션을 위한 모듈 번들러
- 주요 역할
- 프로젝트에 포함된 모든 리소스(JS, CSS, 이미지 파일 등)를 모아서 하나 또는 여러 개의 파일로 합침
- 필요에 따라 최적화
- 다양한 로더(loader)를 사용하여 ES6, TypeScript, SASS 등 다양한 언어로 작성된 소스 코드를 일반적으로 JS 파일과 CSS 파일로 변환할 수 있다
- 결과적으로 의존성 관리와 함께 웹 자원을 효율적으로 로딩하기 위한 번들을 생성한다
Babel
- 자바스크립트 컴파일러
- 주로 최신 자바스크립트(ES6 이상) 문법을 사용하여 작성된 코드를 모든 브라우저에서 실행 가능한 이전 버전의 자바스크립트(ES5)로 변환하는 데 사용
- 개발자는 최신 문법과 기능을 사용하여 개발할 수 있다
- 변환 과정을 통해 코드의 호환성을 보장
- 플러그인 시스템을 기반으로 하며, 특정 자바스크립트 버전 또는 스테이지(stage)의 제안된 기능을 사용할 수 있도록 해준다
Polyfill
- 웹 개발에서 브라우저 간 호환성 문제를 해결하기 위해 사용되는 코드 조각 또는 플러그인
- 브라우저가 기본적으로 지원하지 않는 최신 API나 기능을 제공하는 데 사용됨
- Promise, fetch, Array.from과 같은 ES6 기능을 지원하지 않는 오래된 브라우저에서 해당 기능 사용할 수 있도록 해줌
- 모든 사용자에게 일관된 경험 제공 가능
- 최신 기능을 활용한 개발 가능
함께 사용하는 이유
Webpack, Babel, 그리고 Polyfill을 함께 사용하는 이점
- 최신 문법과 기능 사용
- Babel을 통해 최신 자바스크립트 문법을 사용하면서도, 모든 브라우저에서 코드가 작동하도록 할 수 있다
- 호환성
- Polyfill을 사용하여 브라우저가 지원하지 않는 최신 API를 사용할 수 있다
- 성능 최적화
- Webpack을 사용하여 애플리케이션의 모든 자원을 번들링하고 최적화함으로써 로딩 시간을 단축시킬 수 있다
- 모듈 관리
- Webpack을 통해 모듈 간의 의존성을 관리하고, 코드를 구조화하여 유지보수성을 높일 수 있다
'Frontend' 카테고리의 다른 글
쿠키, 세션, 웹 스토리지 차이 (0) | 2024.03.06 |
---|---|
CORS (0) | 2024.03.06 |
DNS (0) | 2024.03.06 |
브라우저에 www.google.com 입력 시 일어나는 일 (0) | 2024.03.06 |
브라우저 렌더링 과정 or 원리 (0) | 2024.03.06 |