기타 개발 관련

[Design Pattern] Publisher-Subscriber 패턴

문군_ 2024. 12. 13. 20:38

Publisher-Subscriber 패턴

비동기 메시징 패러다임

발행자와 구독자가 있고, 그 사이에 브로커(큐)가 존재하는 형태

특징

  1. 발행자 메시지의 수신자가 정해져 있지 않음
  2. 메시지는 정해진 범주에 따라 구독을 신청한 수신자에게 전달
  3. 수신자는 발행자에 대한 정보 없이, 원하는 메시지 수신 가능
  4. 메시지 큐 패러다임과 형제같은 관계, 대형 메시지 지향 미들웨어 솔루션의 일부

발행자와 구독자의 특징

  1. 발행자구독자의 선언 위치나 존재를 알 필요가 없다.
    • 메시지 큐와 같은 브로커 역할을 하는 중간 지점에 메시지를 던져 두기만 하면, 브로커가 알아서 처리한다.
  2. 구독자 역시 발행자의 선언 위치나 존재를 알 필요가 없다.
    • 브로커에 할당된 작업만을 모니터링하고, 원하는 작업이 발생하면 할당받아 작업을 수행한다.

발행자구독자는 서로 알 필요가 없고, 브로커와의 통신을 수행할 수 있으면 된다.

느슨한 결합

객체 내부에서 객체를 직접적으로 사용하는 의존성(강한 결합)을 줄이려는 시도.

강한 결합은 객체의 유연성과 코드 재사용성을 떨어뜨린다.