<aside> 💡

백엔드의 MSA(Micro Service Architecture)를 프론트엔드에 이식한 것

</aside>

1. 마이크로 프론트엔드 개요


마이크로 프론트엔드는 대규모 웹 애플리케이션의 프론트엔드 개발을 위한 아키텍처 패턴이다. 이는 웹사이트나 웹 애플리케이션을 “독립적인 팀이 소유한 기능의 구성”으로 본다. 애플리케이션을 작고 독립적인 모듈로 분할하며, 이 모듈은 개별로 개발, 배포, 유지 관리하는 게 기본 아이디어이다.

즉, 마이크로 프론트엔드는 프론트엔드를 애플리케이션의 특정 기능이나 특징을 각각 담당하는 여러 독립적인 모듈로 나누는데 예를 들어, 쇼핑몰 웹사이트에 마이크로프론트엔드를 적용하면 상품 목록, 로그인, 회원가입, 장바구니, 결제 등 기능을 별도 프론트엔드 모듈로 분리할 수 있다.

2. 마이크로 프론트엔드 특징


모듈식 접근방식을 취하기 때문에 유연성, 확장성, 독립적 개발에 도움이 된다.

핵심 특징은 다음과 같다.

  1. 파트는 세분화 되고, 도메인 경계는 두텁다. 이에 각 기능은 각 마이크로프론트엔드 안에서 작동한다.
  2. 애플리케이션이 느슨하게 결합된다. 따라서 모든 컴포넌트를 독립적으로 구축,배포,확장할 수 있으며, 이는 독립적으로 실패할 수도 있는 위험이 생기기도 한다.
  3. 팀은 자율적으로 운영된다. 이에 기술 스택을 자유롭게 채택하고, 다른 개발팀과 릴리즈(배포)를 조율할 필요가 없어진다.
  4. 각 팀의 애플리케이션 코드가 분리된다. 같은 프레임워크를 사용할 때도 여러 작업팀 간에 런타임은 공유되지 않는다. 애플리케이션에 글로벌 변수나 공유 상태가 없다.
  5. 각 마이크로프론트엔드를 하나의 페이지에서 응집력 있는 형태로 결합한다.