마이크로 프론트엔드 특징
- 독립적으로 제공 가능한 프론트엔드 애플리케이션이 더 큰 전체로 구성되는 아키텍처 스타일
- 전통적인 모놀리식 웹 애플리케이션 아키텍처를 보완하기 위해 사용되는 개발 패턴
- 애플리케이션을 작은 독립적인 서브 애플리케이션으로 분할하고, 서브 애플리케이션을 모아 하나의 애플리케이션으로 구성하는 방법
- 독립된 기술 스택을 가지며, 개발, 테스트 및 배포가 독립적으로 이루어질 수 있다.
- 서로 다른 애플리케이션에 느슨하게 결합되어, 하나의 애플리케이션에서 변경을 할 때 다른 부분에 미치는 영향을 최소화한다.
- 큰 규모의 애플리케이션을 더 쉽게 관리하고 확장할 수 있다.
장점
- 덜 복잡하고, 적은 양의 코드를 관리하여 코드의 품질을 높일 수 있다.
- 배포의 범위가 줄어들어 빌드 및 배포 시간이 줄고, 장애 파급 범위가 작아진다.
- 단일 장애 위험을 피할 수 있다.
- 커뮤니케이션 비용이 줄어든다.
- 점진적으로 업그레이드 하기에 용이하다.
- 애플리케이션을 자유롭게 조립하여 제공할 수 있다.
- 서비스 별로 주도적으로 자유롭게 기술 스택을 선택할 수 있다.
- 서비스 별로 독립적으로 작업 할 수 있기 때문에 개발 주기가 빨라진다.
단점
- 전체적인 리소스의 크기가 커져서 성능 저하에 주의해야 한다.
- 중복된 코드가 발생할 수 있다.
- 초기 구축 비용이 발생한다.
- 다양한 마이크로 프론트엔드 간의 통합 과정에서 추가적인 복잡성이 발생할 수 있다.
- 런타임에 동적으로 통합하는 관정에서 문제가 발생할 수 있다.
마이크로 프론트 도입 체크
- 프로젝트 규모가 클 경우
- 코드를 수정한 후 사이드 이펙트로 인한 버그가 발생한다.
- 새로운 기능을 위해 기존 코드를 활용하기 어렵다.
- 간단한 수정 사항을 적용하기 위한 통합, 테스트, 빌드 및 배포 시간이 점점 길어질경우
- 작업을 위한 커뮤니케이션이 많아질 경우
- 동일한 기능 개발을 위해 여러 곳의 작업자가 필요한 경우
- 기능적으로 마이크로 앱으로 분해가 가능한 경우
- 런타임에 여러 가지 마이크로 앱을 선택적으로 조립해서 제공해야 하는 경우
'MSA' 카테고리의 다른 글
[MFA] Node 패키지 매니저, 워크스페이스 개념(soft-navigation,hard-navigation) (0) | 2023.11.19 |
---|---|
[MFA] 모노레포(Mono Repo)란? 장단점 (2) | 2023.10.28 |
[MSA] Prometheus, Grafana 란? Grafana연동Example (1) | 2023.05.16 |
[MSA] Spring Boot - Micrometer란? Micrometer Timer example (0) | 2023.05.15 |
[MSA] Spring Boot - Zipkin 이란? Spring Cloud Sleuth Example (0) | 2023.05.14 |