MSA

[MFA] 마이크로 프론트엔드 아키텍처 특징 장,단점

차노도리 2023. 10. 22. 23:33

마이크로 프론트엔드 특징

  • 독립적으로 제공 가능한 프론트엔드 애플리케이션이 더 큰 전체로 구성되는 아키텍처 스타일
  • 전통적인 모놀리식 웹 애플리케이션 아키텍처를 보완하기 위해 사용되는 개발 패턴
  • 애플리케이션을 작은 독립적인 서브 애플리케이션으로 분할하고, 서브 애플리케이션을 모아 하나의 애플리케이션으로 구성하는 방법
  • 독립된 기술 스택을 가지며, 개발, 테스트 및 배포가 독립적으로 이루어질 수 있다.
  • 서로 다른 애플리케이션에 느슨하게 결합되어, 하나의 애플리케이션에서 변경을 할 때 다른 부분에 미치는 영향을 최소화한다.
  • 큰 규모의 애플리케이션을 더 쉽게 관리하고 확장할 수 있다.

 

장점

  • 덜 복잡하고, 적은 양의 코드를 관리하여 코드의 품질을 높일 수 있다.
  • 배포의 범위가 줄어들어 빌드 및 배포 시간이 줄고, 장애 파급 범위가 작아진다.
  • 단일 장애 위험을 피할 수 있다.
  • 커뮤니케이션 비용이 줄어든다.
  • 점진적으로 업그레이드 하기에 용이하다.
  • 애플리케이션을 자유롭게 조립하여 제공할 수 있다.
  • 서비스 별로 주도적으로 자유롭게 기술 스택을 선택할 수 있다.
  • 서비스 별로 독립적으로 작업 할 수 있기 때문에 개발 주기가 빨라진다.

 

단점

  • 전체적인 리소스의 크기가 커져서 성능 저하에 주의해야 한다.
  • 중복된 코드가 발생할 수 있다.
  • 초기 구축 비용이 발생한다.
  • 다양한 마이크로 프론트엔드 간의 통합 과정에서 추가적인 복잡성이 발생할 수 있다.
  • 런타임에 동적으로 통합하는 관정에서 문제가 발생할 수 있다.

 

마이크로 프론트 도입 체크

  • 프로젝트 규모가 클 경우
    • 코드를 수정한 후 사이드 이펙트로 인한 버그가 발생한다.
    • 새로운 기능을 위해 기존 코드를 활용하기 어렵다.
    • 간단한 수정 사항을 적용하기 위한 통합, 테스트, 빌드 및 배포 시간이 점점 길어질경우
    • 작업을 위한 커뮤니케이션이 많아질 경우
    • 동일한 기능 개발을 위해 여러 곳의 작업자가 필요한 경우
  • 기능적으로 마이크로 앱으로 분해가 가능한 경우
  • 런타임에 여러 가지 마이크로 앱을 선택적으로 조립해서 제공해야 하는 경우