더북(TheBook)

지금까지 서비스를 식별하고 각 서비스가 어떤 작업을 구현해야 할지 식별했습니다. 물론 아직 어떤 IPC 기술을 사용할지 정하지 않았기 때문에 아키텍처를 추상적으로 스케치한 것에 불과합니다. 또 ‘작업(operation)’이라는 용어의 느낌이 동기적 요청/응답 기반의 IPC를 떠올리게 하지만 마이크로서비스 아키텍처에서는 비동기 메시징이 중추적인 역할을 한다는 것을 곧 알게 될 것입니다. 여러 서비스가 서로 협동하는 방식에 영향을 미치는 아키텍처/설계 개념은 이 책 전반에 걸쳐 계속 나옵니다.

3장은 REST 같은 동기 통신 메커니즘, 메시지 브로커를 이용한 비동기 메시징 등 구체적인 IPC 기술을 다룹니다. 동기 통신이 가용성에 어떤 영향을 미치는지 알아보고, 다른 서비스를 동기 호출하지 않는 자기 완비형 서비스 개념을 소개합니다. 자기 완비형 서비스를 구현하는 방법이 바로 7장의 주제인 CQRS 패턴입니다. 이 패턴을 적용하면 주문 서비스는 음식점 서비스 데이터의 레플리카를 갖게 되어 일일이 음식점 서비스를 동기 호출해서 주문이 올바른지 확인할 필요가 없습니다. 음식점 서비스가 자신의 데이터를 업데이트할 때마다 발행한 이벤트를 주문 서비스가 구독하면 레플리카를 항상 최신으로 유지할 수 있죠.

4장은 사가 개념에 대해 소개하고 사가에 참여한 서비스를 조정하는 비동기 메시징의 활용 방법을 설명합니다. 사가는 여러 서비스에 흩어진 데이터를 확실하게 업데이트하고 자기 완비형 서비스를 구현하는 수단입니다. 그 예로 createOrder()를 사가로 구현해 볼 예정입니다. 이 작업은 비동기 메시징을 통해 소비자 서비스, 주방 서비스, 회계 서비스 등 타 서비스를 호출합니다.

8장은 API를 외부 클라이언트에 표출하는 API 게이트웨이 개념을 다룹니다. API 게이트웨이는 단순히 요청을 서비스로 넘기는 것뿐만 아니라, API 조합 패턴(7장)을 이용해서 쿼리 작업도 수행합니다. API 게이트웨이에 로직을 구현해서 여러 서비스를 호출한 후 그 결과를 조합하여 필요한 데이터를 한데 모으는 것입니다. 시스템 작업은 서비스가 아닌 API 게이트웨이에 배정되며, API 게이트웨이에 필요한 쿼리 작업은 서비스에 구현합니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.