피드로 돌아가기
Dev.toFrontend
원문 읽기
Standalone Components 도입을 통한 Build Bundle 60% 이상 경량화
Desconstruindo o Build: Como o Tree-Shaking realmente funciona (e por que o Bundle importa)
AI 요약
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 지원 범위 확인