1.4.4 FTGO 마이크로서비스 아키텍처
앞으로 FTGO 애플리케이션을 마이크로서비스 아키텍처로 전환하는 과정을 자세히 살펴볼 것입니다. 그 전에 먼저 이 애플리케이션에 Y축 확장을 적용하면 어떻게 되는지 짚어 봅시다. 그림 1-7을 보면 기능별로 분해된 여러 프런트엔드/백엔드 서비스가 애플리케이션을 이루고 있습니다. 이 모습으로 런타임에 X축/Z축 확장을 하면 서비스마다 인스턴스가 여럿 존재할 것입니다.
프런트엔드 서비스는 API 게이트웨이(8장)와 음식점 웹 UI 같은 것들이 있습니다. 퍼사드(façade, 관문) 역할을 하는 API 게이트웨이는 소비자, 배달원의 모바일 앱이 접속하는 REST API를 제공합니다. 음식점 웹 UI에는 음식점 주인이 메뉴를 관리하거나 주문을 처리하는 웹 인터페이스가 구현되어 있습니다.
FTGO 애플리케이션의 비즈니스 로직은 REST API와 자체 프라이빗(private, 비공개) 데이터 저장소를 소유한 다양한 백엔드 서비스로 구성됩니다.
• 주문 서비스(Order Service): 주문을 관리합니다.
• 배달 서비스(Delivery Service): 음식점에서 소비자에 이르기까지 주문 배달을 관리합니다.
• 음식점 서비스(Restaurant Service): 음식점 관련 정보를 관리합니다.
• 주방 서비스(Kitchen Service): 주문한 음식을 준비하는 과정을 관리합니다.
• 회계 서비스(Accounting Service): 과금/지불을 처리합니다.