더북(TheBook)

일대일 상호 작용도 종류는 다양합니다.

요청/응답(request/response): 클라이언트는 서비스에 요청을 하고 응답을 기다립니다. 클라이언트는 응답이 제때 도착하리라 기대하고 대기 도중 블로킹할 수 있습니다. 결과적으로 서비스가 서로 강하게 결합되는 상호 작용 스타일입니다.

비동기 요청/응답(asynchronous request/response): 클라이언트는 서비스에 요청을 하고 서비스는 비동기적으로 응답합니다. 클라이언트는 대기 중에 블로킹하지 않고, 서비스는 오랫동안 응답하지 않을 수 있습니다.

단방향 알림(one-way notification): 클라이언트는 서비스에 일방적으로 요청만 하고 서비스는 응답을 보내지 않습니다.

 

동기 요청/응답은 주로 IPC 기술에 직교적(orthogonal, 서로 연관성 없이 독립적)인 상호 작용 스타일입니다. 예를 들어 서비스는 REST나 메시징으로 요청/응답하는 다른 서비스와 소통할 수 있습니다. 2개의 서비스가 메시지 브로커를 통해 통신하는 경우에도 클라이언트 서비스는 응답을 기다리는 도중 블로킹될 수 있습니다. 그렇다고 두 서비스가 느슨하게 결합되었다는 뜻은 아닙니다. 이 문제는 3장 뒷부분에서 IPC가 가용성에 미치는 영향을 이야기할 때 다시 다룹니다.

일대다 상호 작용도 몇 가지 종류가 있습니다.

발행/구독(publish/subscribe): 클라이언트는 알림 메시지를 발행하고, 여기에 관심 있는 0개 이상의 서비스(즉, 관심 있는 서비스가 없는 경우도 있음)가 메시지를 소비합니다.

발행/비동기 응답(publish/async response): 클라이언트는 요청 메시지를 발행하고 주어진 시간 동안 관련 서비스가 응답하길 기다립니다.

 

각 서비스마다 이런 상호 작용 스타일을 조합해서 사용합니다. FTGO 애플리케이션은 대부분의 서비스가 동기/비동기 API를 모두 지원하며 이벤트도 발행합니다.

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