이진 메시지 포맷
이진 포맷은 종류가 다양하지만 프로토콜 버퍼7와 아브로8가 유명합니다. 이 두 포맷은 메시지 구조 정의에 필요한 타입 IDL을 제공하며, 컴파일러는 메시지를 직렬화/역직렬화하는 코드를 생성합니다. 따라서 서비스를 API 우선 접근 방식으로 설계할 수밖에 없습니다! 그리고 정적 타입 언어로 클라이언트를 작성할 경우, 클라이언트가 API를 올바르게 사용하는지 컴파일러로 확인할 수 있습니다.
하지만 아브로 컨슈머는 스키마를 알고 있어야 메시지를 해석할 수 있기 때문에 API 발전 측면에서는 프로토콜 버퍼가 더 용이합니다. 스리프트(Thrift), 프로토콜 버퍼, 아브로를 비교 분석한 블로그 게시글9도 있으니 참고하세요.
RPI(Remote Procedure Invocation, 원격 프로시저 호출) 패턴부터 하나씩 메시지를 실어 나르는 IPC를 자세히 살펴봅시다.