[javascript] Webpack으로 코드 분할하기

코드 분할(code splitting)은 웹 애플리케이션의 성능을 개선하는 중요한 기술 중 하나입니다. 웹팩(Webpack)은 코드 분할을 편리하게 구현할 수 있는 강력한 도구입니다. 이번 글에서는 웹팩을 사용하여 코드를 분할하는 방법에 대해 알아보겠습니다.

개요

코드 분할은 애플리케이션의 코드를 여러 개의 번들로 나누는 작업을 의미합니다. 이렇게 분할된 코드는 사용자가 애플리케이션을 방문할 때 필요한 시점에 동적으로 로드됩니다. 이를 통해 초기 번들의 크기를 줄이고, 필요한 코드만 로드해서 효율적으로 애플리케이션을 실행할 수 있습니다.

웹팩 설정

웹팩으로 코드를 분할하기 위해 다음과 같이 optimization.splitChunks 옵션을 설정합니다:

// webpack.config.js

module.exports = {
  // ...
  optimization: {
    splitChunks: {
      chunks: 'all',
    },
  },
};

위 설정은 모든 종류의 청크에 대해 코드 분할을 활성화합니다. chunks: 'all' 옵션은 자동으로 공통 의존성을 추출하여 별도의 청크로 분할합니다.

동적 임포트

코드 분할을 위해 사용할 수 있는 하나의 방법은 동적 임포트(dynamic import)입니다. 동적 임포트는 ES6 모듈의 import() 함수를 사용하여 모듈을 동적으로 임포트하는 것을 의미합니다. 이를 통해 웹팩은 해당 모듈을 동적으로 로드하여 필요한 코드를 분할할 수 있습니다.

// app.js

import("./module")
  .then((module) => {
    // 모듈 사용
    module.foo();
  })
  .catch((error) => {
    // 에러 처리
  });

위 예시에서 app.js 파일은 module.js 모듈을 동적으로 임포트하고 사용하는 방법을 보여줍니다.

코드 분할 확인

코드 분할이 제대로 동작하는지 확인하기 위해 웹팩 번들 분석 도구를 사용할 수 있습니다. 예를 들어, webpack-bundle-analyzer 플러그인을 사용하면 번들의 구성을 시각화할 수 있습니다.

// webpack.config.js

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

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

위 설정으로 웹팩 번들 분석 결과를 확인할 수 있습니다.

마무리

이번 글에서는 웹팩을 사용하여 코드를 분할하는 방법에 대해 알아보았습니다. 코드 분할은 애플리케이션의 성능을 향상시키고 초기 로딩 속도를 개선하는데 매우 유용한 테크닉입니다. 웹팩을 통해 코드 분할을 적용하여 애플리케이션을 더욱 효율적으로 만들어보세요.

참고 자료