Web Basic · Bundling

Webpack 번들링 파이프라인

Webpack은 파일을 하나로 합치는 도구를 넘어, 모듈 그래프를 만들고 loader와 plugin을 통과시켜 브라우저가 받을 산출물을 만드는 빌드 시스템이다.

01

진입점 선택

앱이 처음 import하는 파일에서 의존성 그래프를 따라간다.

02

모듈 변환

TypeScript, CSS, 이미지 같은 파일이 loader를 통해 처리된다.

03

청크 분리

초기 로드와 지연 로드에 맞춰 공통 코드와 라우트 코드를 나눈다.

04

산출물 생성

파일명 hash, source map, asset 경로를 포함한 배포 파일을 만든다.

Entry
빌드 시작점 단일 앱, multi page, admin bundle 등 목적별 시작점
불필요한 entry 증가는 중복 가능
Loader
파일 단위 변환 babel-loader, css-loader, asset module 등이 사용
적용 순서가 중요
Plugin
빌드 전체 제어 HTML 생성, CSS 추출, define 값 주입, 압축
환경별 설정 분리 필요
Chunk
전송 단위 vendor, route, async import 기준으로 분할
너무 잘게 쪼개도 요청 비용 증가

Source map · Cache · Tree shaking 점검

Source map 운영에서는 노출 범위와 디버깅 필요를 함께 결정한다.
Cache contenthash가 바뀐 파일만 새로 받도록 구성한다.
Tree shaking ES module과 sideEffects 설정이 최적화를 방해하지 않는다.
분석 bundle analyzer로 큰 의존성과 중복 모듈을 확인한다.