피드로 돌아가기
Desconstruindo o Build: Como o Tree-Shaking realmente funciona (e por que o Bundle importa)
Dev.toDev.to
Frontend

Standalone Components 도입을 통한 Build Bundle 60% 이상 경량화

Desconstruindo o Build: Como o Tree-Shaking realmente funciona (e por que o Bundle importa)

Erick Gabriel dos Santos Alves2026년 6월 4일5intermediate

Context

Angular 16 기반의 YMS 시스템에서 NgModule 중심의 모듈화 구조로 인해 불필요한 의존성이 함께 번들링되는 오버헤드 발생. 특히 SharedModule과 같은 거대 모듈 사용 시 실제 사용하지 않는 코드까지 포함되어 Build Bundle 크기가 40MB에 달하는 병목 지점 형성.

Technical Solution

  • Angular Standalone Components 전환을 통한 의존성 관계의 명시적 정의
  • NgModule의 동적 주입 구조를 제거하여 Bundler의 정적 분석 정밀도 향상
  • Esbuild 및 Vite 기반의 최신 Bundler 채택으로 Tree-Shaking 효율 극대화
  • ESM(ES Modules)의 static import/export 구조를 활용한 Dependency Graph 최적화
  • 컴포넌트 단위의 직접적인 import 선언으로 Dead-code Elimination 범위 확대
  • 불필요한 레거시 로직 및 미사용 파일 정리를 통한 빌드 아티팩트 최적화

- 프로젝트 내 거대 SharedModule 존재 여부 확인 및 분리 검토 - source-map-explorer 등 분석 도구를 활용한 Bundle 내 Dead-code 비중 측정 - 동적 주입보다 정적 분석이 가능한 Standalone 구조로의 점진적 전환 고려 - 최신 Bundler(Esbuild, Vite 등)의 Tree-Shaking 지원 범위 확인

원문 읽기