3.3.8 메시징 라이브러리/프레임워크
서비스가 메시지를 주고받으려면 라이브러리가 필요합니다. 메시지 브로커에도 클라이언트 라이브러리가 있지만 직접 사용하면 다음과 같은 문제가 있습니다.
• 메시지 브로커 API에 메시지를 발행하는 비즈니스 로직이 클라이언트 라이브러리와 결합됩니다.
• 메시지 브로커의 클라이언트 라이브러리는 대부분 저수준이고 메시지를 주고받는 코드가 꽤 긴 편입니다. 판박이 코드(boilerplate code, 틀에 박힌 단순 반복적인 코드)를 계속 복사 후 붙여넣기 하고 싶은 개발자는 없겠죠. 필자 역시 이 책의 저자로서 저수준 판박이 코드로 도배된 예제는 싫습니다.
• 메시지 브로커의 클라이언트 라이브러리는 기본적인 메시지 소통 수단일 뿐, 고수준의 상호 작용 스타일은 지원하지 않습니다.
따라서 저수준 세부를 감추고 고수준의 상호 작용 스타일을 직접 지원하는 고수준 라이브러리 또는 프레임워크가 필요합니다. 편의상 이 책은 필자가 개발한 이벤추에이트 트램 프레임워크를 사용해서 예제를 작성했습니다. 이 프레임워크의 자랑은 메시지 브로커의 사용 복잡성을 캡슐화한 간단하고 이해하기 쉬운 API입니다. 메시지를 주고받는 API 외에도 비동기 요청/응답 및 도메인 이벤트 발행 등 고수준 상호 작용 스타일도 함께 지원합니다.