React · 2026-02-19

React 번들 분석과 시각화 방법

React 프로젝트의 번들 크기 원인 진단과 최적화 결정을 위한 도구 소개, 설치·실행 예제, 번들 시각화 방법 및 해석과 개선 전략을 정리한 자료

작성일 : 2026-02-19 ㆍ 작성자 : 관리자
post
목차

개요

번들 크기는 사용자 경험과 배포 비용에 직접적인 영향을 준다. 초보자도 이해할 수 있도록 번들 분석의 목적과 절차를 차근히 설명한다. 이 글에서는 react 번들 분석 도구 선택, 설치·실행 예제, 시각화 결과 해석, 그리고 실제 최적화 방법을 다룬다.

왜 번들 분석이 필요한가

번들이 커지면 초기 로딩 시간이 늘고, 모바일 환경에서 비용이 발생한다. 또한 불필요한 라이브러리 포함이나 잘못된 코드 분할이 문제일 수 있다. 따라서 번들 시각화 방법을 통해 어느 파일이 공간을 차지하는지 확인하는 것이 우선이다.

주요 도구 소개

webpack bundle analyzer

webpack bundle analyzer는 트리맵 형태로 번들 구성과 크기를 보여준다. 시각적으로 큰 모듈을 빠르게 찾아낼 수 있다. 대부분의 webpack 기반 React 프로젝트에 쉽게 통합된다.

source-map-explorer

source-map-explorer는 소스맵을 기반으로 어떤 소스 파일가 번들 크기를 차지하는지 명확히 보여준다. 라이브러리 내부 코드 비중 확인에 유용하다.

크롬 DevTools와 Lighthouse

브라우저 기반 도구로서 네트워크 요청과 번들 로딩 타임을 확인할 때 사용된다. Lighthouse는 성능 지표를 함께 제공하므로 최종 사용자 관점에서의 영향을 파악하는 데 도움된다.

설치 및 실행 예제

여기서는 webpack bundle analyzer와 source-map-explorer의 설치와 간단한 실행 방법을 예로 든다.

webpack bundle analyzer 설치 및 스크립트

npm install --save-dev webpack-bundle-analyzer

// package.json 예시
{
  "scripts": {
    "build": "webpack --mode production",
    "analyze": "ANALYZE=true npm run build"
  }
}

webpack 설정에서 플러그인으로 등록하면 빌드 후 자동으로 시각화가 열린다.

const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin;

module.exports = {
  // ...other config
  plugins: [
    new BundleAnalyzerPlugin()
  ]
};

source-map-explorer 사용법

npm install -g source-map-explorer

# 빌드 후 실행 예시
source-map-explorer build/static/js/*.js

출력된 결과에서 각 모듈이 차지하는 크기를 확인한다.

React 코드에서 코드 스플리팅 예시

const LazyComp = React.lazy(() => import('./HeavyComponent'));

// 렌더링 예시
// <Suspense fallback={<div>로딩 중...</div>}>
//   <LazyComp />
// </Suspense>

위 예시는 동적 import를 통해 초기 번들에서 해당 컴포넌트를 분리한다.

분석 결과 읽는 법

트리맵에서 박스 크기는 번들 내 파일 크기를 의미한다. 색과 그룹은 모듈 소속(예: node_modules vs src)을 나타낸다. 큰 박스가 있다면 그 모듈을 의심한다.

  • node_modules에 큰 블록이 있다면 외부 라이브러리 영향
  • src 내부의 큰 블록은 코드 구조 문제나 중복 임포트
  • 맵에서 중복된 코드가 보이면 번들러가 중복 제거를 못하는 경우

번들 축소를 위한 실무 전략

분석 결과를 바탕으로 다음과 같은 방법을 적용한다.

  • 코드 스플리팅으로 초기 번들 분리
  • 동적 import로 사용 빈도가 낮은 컴포넌트 늦게 로드
  • 불필요한 폴리필과 중복 라이브러리 제거
  • 라이브러리의 경량 대체품 고려(예: lodash 일부 기능 대신 native API)
  • tree shaking 지원을 위한 모듈 형식 유지(ESM 사용 권장)
  • 이미지·폰트 같은 정적 자원 최적화 및 CDN 활용

실행 후 점검 체크리스트

  • 프로덕션 빌드로 분석을 수행했는지 확인
  • 소스맵이 생성되어 정확한 매핑이 가능한지 확인
  • 트리맵에서 큰 항목의 실제 사용 여부를 코드 레벨에서 검증
  • 변경 후 다시 분석해 변화량을 수치로 기록

마무리

정기적인 번들 분석은 성능 유지의 핵심 활동이다. webpack bundle analyzer react 통합과 source-map-explorer 사용을 통해 문제 지점을 시각적으로 파악할 수 있다. 번들 시각화 방법을 익히면 우선순위를 정해 효율적으로 최적화할 수 있다. 마지막으로 변경 사항을 버전 관리와 성능 지표로 기록하면 장기적으로 더 안정적인 결과를 얻는다.

react 번들 분석 도구 webpack bundle analyzer react 번들 시각화 방법 번들 분석 react 번들 최적화 webpack 분석 번들 크기 줄이기 코드 스플리팅