
144
2부
구조
통상적으로 사용자 인터페이스는 프런트엔드와 백엔드 사이에 커플링 지점을 만든다. 또한 백
엔드가 제 기능을 하지 못하면 프런트엔드도 작동하지 않는 경우가 대부분이다.
모든 서비스가 하나의 사용자 인터페이스를 상대로 협력하는 아키텍처는 설계하기도 쉽지 않
다. 성능, 확장성, 탄력성, 신뢰성 등의 운영 아키텍처 특성을 서비스마다 다른 수준으로 설정
하기 어렵기 때문이다. (동기 호출의 경우는
5
.
2
.
4
절 ‘동적 퀀텀 커플링’을 참고하기 바란다. )
따라서 아키텍트는 프런트엔드와 백엔드 사이에 커플링을 생성하지 않는 비동기 방식으로 사
용자 인터페이스를 설계한다. 마이크로서비스 아키텍처의 사용자 인터페이스 부분에
마이크로
프런트엔드
6
프레임워크를 적용하는 것이 최근의 추세다. 이러한 아키텍처는 서비스와 상호작
용하는 사용자 인터페이스 요소를 서비스가 자체적으로 생성한다. 이때 사용자 인터페이스 표
면은 인터페이스가 그려질 도화지 역할을 하는 동시에 컴포넌트 사이의 느슨한 통신을 지원한
다. 통신은 주로 이벤트 방식으로 진행된다. [그림
5
-
8
]은 이러한 아키텍처를 묘사하고 있다.
사용자 인터페이스
API 계층
그림
5-8
서비스+사용자 인터페이스 컴포넌트로 구성된 마이크로프런트엔드 아키텍처
[그림
5
-
8
]에서 빗금 친
4
개의 서비스와 각각에 연결된 마이크로프런트엔드는 ...