Module Federation 버전별 발전과 미래: 1.0, 1.5, 2.0 핵심 변화 분석
🤖 AI 추천
Module Federation의 버전별 발전 과정을 이해하고, 각 버전의 특징과 장단점을 파악하여 자신의 프로젝트에 가장 적합한 아키텍처를 선택하고자 하는 프론트엔드 개발자, 백엔드 개발자, 그리고 소프트웨어 아키텍트에게 추천합니다.
🔖 주요 키워드
핵심 기술
본 콘텐츠는 웹 개발 생태계에서 Micro Frontend 아키텍처 구현을 위한 핵심 기술인 Module Federation의 1.0, 1.5, 2.0 버전별 주요 변화와 발전 과정을 심층적으로 분석합니다. 각 버전에서 도입된 새로운 기능, 개념, 그리고 아키텍처상의 변화를 중심으로 설명하여 실질적인 이해를 돕습니다.
기술적 세부사항
- Module Federation 1.0 (Webpack 5 기반, 2020년 10월 출시):
- 핵심 개념 정의: Container, Container References, Omnidirectional Host, Shared Dependencies.
- 빌드 설정(Build Config) 단에서 런타임 통합할 모듈들의 참조 관계 명시를 권장.
- Webpack 런타임 청크에 강하게 결합되어, Webpack 외 다른 번들러 지원 미비.
- 현재는 이터레이션이 중단되어 1.5 또는 2.0 사용 권장.
- Module Federation 1.5 (Rspack 0.5.0 등에서 지원, 2024년 1월 릴리즈):
runtimePlugins
: 런타임 모듈 생명주기에 개입 가능한 인터페이스 제공 (예:beforeInit
,beforeLoadShare
).shareStrategy
: 공유 의존성 로딩 전략 (버전 우선version-first
또는 로드 우선loaded-first
) 설정 가능.- 점진적인 마이그레이션 지원 가능성 증대 (예: Webpack Container와 Rspack Container 공존).
- Module Federation 2.0 (2024년 4월 공식 발표):
Federation Runtime
도입: 런타임 통합 도구가 빌드 시점 처리에서 자유로워짐.init
,loadRemote
함수 사용.- 번들러와의 결합 완화: 다양한 번들러(Webpack, Vite 등)에서 동일한 런타임 사용 시 통합 가능성 증대.
Manifest Protocol
도입:mf-manifests.json
파일을 통해 모듈 정보(shared, exposes, assets 등) 제공.assets
필드를 통한 청크 제어 용이성 증대 및 실시간 타입 지원 (types
필드).- 높은 수준의 기능과 유연성 제공, 일부 기능은 직관적이지 않거나 추가적인 학습 필요.
개발 임팩트
Module Federation의 버전별 발전은 아키텍처 설계의 유연성을 크게 향상시켰습니다. 번들러 종속성 감소, 런타임 통합의 용이성 증대, 그리고 명확한 메타데이터 제공을 통해 Micro Frontend 아키텍처를 보다 안정적이고 효율적으로 구축할 수 있게 되었습니다. 특히 2.0 버전의 Federation Runtime
과 Manifest Protocol
은 다양한 기술 스택을 활용하는 환경에서도 일관된 Micro Frontend 경험을 제공할 잠재력이 큽니다.
커뮤니티 반응
콘텐츠에서는 커뮤니티 드리븐으로 발전해왔음을 언급하며, 초기에는 Webpack 구현체 외에 써볼 만한 것이 적었으나 점차 Vite, Rspack 등 다양한 번들러에서 지원이 확대되고 있음을 설명합니다. 또한, 1.0에서 1.5로의 마이그레이션이 점진적 마이그레이션을 가능하게 하여 커뮤니티에서의 수용도가 높을 것으로 예상됩니다.