더북(TheBook)

2.2.6 서비스 API 정의

시스템 작업과 서비스 후보를 목록화했으니 다음은 각 서비스별 API(작업과 이벤트)를 정의할 차례입니다. 서비스 API 작업은 외부 클라이언트 또는 타 서비스가 호출하는 시스템 작업과 서비스 간 협동을 지원하기 위해 타 서비스 호출 전용으로 만든 작업, 둘 중 하나입니다.

서비스 이벤트는 주로 타 서비스와 협동하기 위해 발행합니다. 이벤트를 활용해서 사가를 구현하고 서비스 간 데이터 일관성을 유지하는 방법은 4장에서, 이벤트를 이용해서 CQRS 뷰를 업데이트하고 쿼리를 효과적으로 지원하는 기법은 7장에서 다룹니다. 이벤트는 애플리케이션이 외부 클라이언트에 알림을 보내는 용도로도 쓰입니다(예: 웹 소켓을 통해 브라우저에 이벤트 전달).

서비스 API를 정의하려면 우선 각각의 시스템 작업을 서비스로 매핑한 후, 그 시스템 작업을 구현하려면 어느 서비스가 서로 협동해야 할지 파악해야 합니다. 협동이 필요한 서비스가 있으면 어느 서비스가 어느 API를 타 서비스에 제공해야 할지도 정해야죠. 우선 시스템 작업을 서비스로 배정하는 작업부터 시작합시다.

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