====== Micro Frontend Architecture ====== > 마이크로 프론트엔드 아키텍처는 하나의 거대한 프론트엔드 애플리케이션을 여러 개의 작고 독립적인 모듈로 나누어 개발하고 배포하는 구조로, 마이크로서비스 아키텍처(MSA)의 개념을 프론트엔드에 적용한 것. 각 모듈은 독립적으로 개발, 테스트, 배포될 수 있으며, 서로 다른 기술 스택을 사용하거나 여러 팀이 병렬로 작업할 수 있어 대규모 애플리케이션 개발의 생산성과 유지보수성을 높임. ==== 핵심 특징 ==== * **독립적 개발 및 배포**: 각 프론트엔드 모듈이 독립적인 단위로 존재하여, 전체 애플리케이션에 영향을 주지 않고 업데이트하거나 배포할 수 있음. * **기술 다양성**: 서로 다른 프레임워크(React, Vue, Angular 등)나 기술 스택을 혼합하여 사용할 수 있음. * **팀 자율성**: 각 모듈을 담당하는 팀이 자율적으로 개발하여 개발 속도를 높일 수 있음. * **대규모 애플리케이션에 적합**: 복잡하고 큰 프론트엔드를 작게 분할하여 관리하기 용이. ==== 장점 ==== * **개발 속도 향상**: 독립적인 배포로 배포 주기가 짧아지고, 팀 간의 의존성이 줄어듬. * **유지보수 용이**: 특정 기능의 수정이 다른 부분에 영향을 덜 미치므로 유지보수가 쉬워짐. * **기술 부채 관리**: 점진적으로 기술을 업데이트하거나 교체하기 용이. ==== 고려사항 ==== * **통합 및 통신**: 여러 모듈 간의 데이터 통신 및 통합에 대한 전략이 필요. * **배포 복잡성**: 독립적인 배포 단위가 늘어나 배포 관리 및 설정이 복잡해질 수 있음. * **공통 라이브러리 관리**: 공통 컴포넌트나 라이브러리의 중복 사용을 피하고 효율적으로 관리해야 함.