3.1.1 상호 작용 스타일
서비스 API에 알맞은 IPC를 선택하기 전에 클라이언트/서비스 간 상호 작용 스타일을 잘 살펴보면, 요건에서 벗어나는 일 없이 특정 IPC 기술의 세부 내용에 빠져 헤매는 일을 방지할 수 있습니다. 상호 작용 스타일의 선택은 전체 애플리케이션의 가용성에 영향을 끼치며(3.4절), 적합한 통합 테스트 전략을 수립하는 데에도 도움이 됩니다.
클라이언트/서비스 상호 작용 스타일은 다양하지만 두 가지 기준으로 분류할 수 있습니다(표 3-1).
첫째, 일대일/일대다 여부입니다.
• 일대일(one-to-one): 각 클라이언트 요청은 정확히 한 서비스가 처리합니다.
• 일대다(one-to-many): 각 클라이언트 요청을 여러 서비스가 협동하여 처리합니다.
둘째, 동기/비동기 여부입니다.
• 동기(synchronous): 클라이언트는 서비스가 제시간에 응답하리라 기대하고 대기 도중 블로킹할 수 있습니다.
• 비동기(asynchronous): 클라이언트가 블로킹하지 않습니다. 응답은 즉시 전송되지 않아도 됩니다.
▼ 표 3-1 상호 작용은 일대일/일대다, 동기/비동기 여부에 따라 분류
서비스 |
작업 |
협동자 |
동기 |
요청/응답 |
- |
비동기 |
비동기 요청/응답 단방향 알림 |
발행/구독 발행/비동기 응답 |