피드로 돌아가기
Dev.toFrontend
원문 읽기
Web Components와 Native Federation 기반의 다중 프레임워크 통합 아키텍처 설계
The Frankenstein Meeting Room: How to Stitch Angular, React, and Svelte Into One App
AI 요약
Context
기업 내 M&A 및 팀별 선호도 차이로 인해 Angular, React, Svelte 등 서로 다른 기술 스택이 혼재하는 파편화 상황 발생. 전면 재작성(Rewrite) 방식의 막대한 비용과 시간 소모 및 개발 주기 중 프레임워크 트렌드 변화로 인한 리스크를 해결해야 하는 과제 직면.
Technical Solution
- Host-Remote 역할 분리를 통한 책임 모델 설계: Host는 Business Context와 Persistence를 관리하고 Remote는 특정 기능(Capability) 렌더링만 담당하는 구조 채택
- Web Components 기반의 Island Architecture 구현: 프레임워크 간 의존성을 제거하기 위해 Custom Element로 Remote 앱을 래핑하여 브라우저 표준 기반의 통합 계약 체결
- 단일 Event Bus를 통한 통신 채널 단일화: 속성(Properties) 전달 방식을 배제하고 context:request, event:selected 등 4가지 핵심 이벤트만으로 상태 동기화 구현
- Native Federation v4 도입: ESM 및 Import Map을 활용하여 런타임에 프레임워크 독립적인 번들 로딩 및 공유 의존성 최적화 수행
- esbuild 기반의 프레임워크 불가지론적 빌드 파이프라인 구축: Vite 등의 특정 도구 의존성을 제거하고 build.mjs 스크립트를 통한 일관된 Remote 번들링 프로세스 적용
실천 포인트
1. 프레임워크 간 상태 공유 시 Props 대신 Event Bus를 통한 단방향 통신 구조 검토
2. 서로 다른 스택 통합 시 최하위 공통 분모인 Web Components 인터페이스 채택 고려
3. Host-Remote 구조 설계 시 Remote가 상태나 라우팅을 소유하지 않도록 제약 조건 설정
4. Native Federation을 통한 런타임 번들 로딩으로 배포 독립성 확보 여부 확인