IPC(Inter Process Communication)는 프로세스 간 통신이라는 프로세스들 사이에서 서로 데이터를 주고받는 행위 또는 그에 대한 방법이나 경로를 뜻하는 용어다.
애플리케이션이 여러개의 서비스로 구성되는 마이크로서비스 아키텍처에서 필수적이다. 보통은 JSON 기반의 REST가 많이 사용되지만 MSA가 아닌 일반적인 상황에서 여러가 지옵션을 잘 선택해야한다.
- 일대일: 각 클라이언트 요청은 정확한 한 서비스가 처리
- 일대다: 각 클라이언트 요청을 여러 서비스가 협동하여 처리
- 동기: 클라이언트는 서비스가 제시간에 응답하는 것을 가정하고 대기 도중 블로킹할 수 있음
- 비동기: 클라이언트가 블로킹하지 않고, 응답은 즉시 전송되지 않아도 된다.
- 요청/응답, 비동기 요청/응답, 단방향 알림
- 발행/구독, 발행/비동기 응답