MaterialUI와 Tree Shaking을 이용해 React Webpack 번들 크기 줄이는 방법

리액트 웹팩 번들 사이즈: 큰 번들 사이즈 식별과 줄이기 리액트를 사용하여 웹사이트를 개발할 때는 성능과 사용자 경험을 향상시키기 위해 번들 사이즈를 최적화하는 것이 중요합니다. 이 블로그 포스트에서는 웹팩으로 번들링된 리액트 애플리케이션의 번들 사이즈를 식별하고 줄이는 …

title_thumbnail(MaterialUI와 Tree Shaking을 이용해 React Webpack 번들 크기 줄이는 방법)

리액트 웹팩 번들 사이즈: 큰 번들 사이즈 식별과 줄이기

리액트를 사용하여 웹사이트를 개발할 때는 성능과 사용자 경험을 향상시키기 위해 번들 사이즈를 최적화하는 것이 중요합니다. 이 블로그 포스트에서는 웹팩으로 번들링된 리액트 애플리케이션의 번들 사이즈를 식별하고 줄이는 방법을 살펴보겠습니다.

번들 사이즈 문제 이해하기

번들 사이즈가 큰 주요 요인 중 하나는 최종 빌드에 불필요한 코드나 종속성이 포함되는 것입니다. 이는 Material-UI, lodash 또는 다른 외부 라이브러리와 같은 node_modules에서 패키지를 가져와 사용하는 결과일 수 있습니다.

웹팩-Bundle-Analyzer를 사용한 번들 사이즈 분석

먼저, 웹팩-Bundle-Analyzer라는 유용한 도구를 사용하여 번들 사이즈를 분석할 수 있습니다. 번들의 시각적 표현을 생성함으로써 어떤 종속성이나 모듈이 큰 공간을 차지하고 있는지 확인할 수 있습니다.

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

module.exports = {
  // 웹팩 설정 옵션
  plugins: [
    new BundleAnalyzerPlugin({
      generateStatsFile: true,
    }),
    // 다른 플러그인들
  ],
  // 다른 설정 옵션들
};

BundleAnalyzerPlugin을 추가하여 웹팩을 실행하면 번들 구성의 세부 분석이 표시되는 보고서를 얻을 수 있습니다.

번들 사이즈 줄이기 기법

번들 사이즈가 큰 모듈이나 종속성을 식별했다면, 다음과 같은 여러 기법을 사용하여 번들 사이즈를 줄일 수 있습니다:

1. 웹팩의 Tree Shaking

웹팩의 Tree Shaking 기능을 활용하여 최종 번들에서 사용되지 않는 코드를 제거합니다. Tree shaking은 코드에서 import와 export 문을 분석하고 도달할 수 없거나 참조되지 않는 코드를 제거합니다.

2. Material-UI와 Tree Shaking

Material-UI를 사용하는 경우, 번들 사이즈를 최소화하기 위해 Material-UI의 가이드를 따라야 합니다. Material-UI는 Tree Shaking을 지원하므로 필요한 구성요소만 가져올 수 있습니다. 전체 라이브러리를 가져오는 것이 아닌 특정 컴포넌트만 가져올 수 있습니다.

3. 특정 Lodash Imports

번들 사이즈를 더 줄이기 위해 전체 라이브러리 대신 특정 Lodash 함수를 가져오는 것을 고려해보세요. 예를 들어 필요한 함수만 가져오는 것입니다:

import groupBy from 'lodash/groupBy';

전체 라이브러리를 가져오는 것 대신:

import { groupBy } from 'lodash';

4. 리액트의 코드 분할

리액트 애플리케이션의 초기 로드 시간을 줄이기 위한 또 다른 기법은 코드 분할을 구현하는 것입니다. 코드 분할을 사용하면 번들을 작은 청크로 분할하고 필요할 때 필요로 하는 시점에 로드할 수 있습니다.

결론

웹팩으로 번들링된 리액트 애플리케이션의 번들 사이즈를 최적화하는 것은 성능과 사용자 경험을 향상시키기 위해 꼭 필요합니다. Webpack-Bundle-Analyzer와 트리 쉐이킹, 특정 Imports, 코드 분할과 같은 기법을 사용하여 번들 사이즈를 크게 줄이고 빠르게 로드되는 애플리케이션을 만들 수 있습니다.

새로운 종속성이나 코드를 리액트 애플리케이션에 추가할 때마다 번들 사이즈를 정기적으로 분석하고 최적화하는 것이 중요합니다. 이를 통해 최적의 성능을 보장하고 전반적인 최종 사용자 경험을 개선할 수 있습니다.

참고 자료 : 

reactjs

Leave a Comment