Skip to content

번들 분석

번들 분석(Bundle Analysis)은 번들의 크기와 구성 요소를 시각화해 불필요한 코드와 라이브러리를 제거하는 최적화 방법이에요.

번들이 크면 로딩이 느려지고 성능이 떨어지기 때문에, 번들 분석을 사용해 문제를 찾고 성능을 높일 수 있어요.

사전 준비: 번들 분석 도구 설치

먼저 번들 분석 도구를 설치해 볼게요.

도구를 설치하고 설정을 완료했다면, 실제로 번들을 분석한 결과를 확인할 수 있어요.
분석 결과를 보면, 어떤 모듈이 번들 크기에 많이 기여하고 있는지, 중복되거나 최적화되지 않은 부분이 있는지를 한눈에 파악할 수 있어요.

번들 분석 결과 활용하기

분석 결과를 바탕으로, 번들 크기를 줄이고 성능을 개선하는 방법을 살펴볼게요.

불필요한 라이브러리 제거하기

가벼운 라이브러리 사용

전체 기능을 다 쓰지 않는 큰 라이브러리는 가벼운 라이브러리로 바꾸세요.

bash
# moment.js → dayjs, date-fns로 교체
npm install dayjs date-fns

# lodash → es-toolkit으로 교체
npm install es-toolkit

중복 모듈 제거하기

중복 설치된 모듈을 제거해 번들 크기를 줄이세요.

bash
# npm 사용 시
npm dedupe

# yarn 사용 시 (Yarn v2 이상)
yarn dedupe

설치 전 패키지 크기 확인하기

Bundle Phobia에서 패키지 크기를 확인하고 설치를 결정하세요.

부수 효과(side-effect) 관리하기

부수 효과가 있는 모듈은 트리 셰이킹 대상에서 제외돼요. 순수 모듈만 남겨 번들을 최적화하세요.

  • 웹팩의 webpack-cli --json 또는 StatsWriterPlugin을 이용해 Side Effect 모듈을 찾으세요.
  • package.jsonsideEffects: false 필드를 설정해 Side Effect가 없는 모듈만 남기세요.