기타 개발 관련
[Design Pattern] Publisher-Subscriber 패턴
문군_
2024. 12. 13. 20:38
Publisher-Subscriber 패턴
비동기 메시징 패러다임
발행자와 구독자가 있고, 그 사이에 브로커(큐)가 존재하는 형태
특징
- 발행자 메시지의 수신자가 정해져 있지 않음
- 메시지는 정해진 범주에 따라 구독을 신청한 수신자에게 전달
- 수신자는 발행자에 대한 정보 없이, 원하는 메시지 수신 가능
- 메시지 큐 패러다임과 형제같은 관계, 대형 메시지 지향 미들웨어 솔루션의 일부
발행자와 구독자의 특징
- 발행자가 구독자의 선언 위치나 존재를 알 필요가 없다.
- 메시지 큐와 같은 브로커 역할을 하는 중간 지점에 메시지를 던져 두기만 하면, 브로커가 알아서 처리한다.
- 구독자 역시 발행자의 선언 위치나 존재를 알 필요가 없다.
- 브로커에 할당된 작업만을 모니터링하고, 원하는 작업이 발생하면 할당받아 작업을 수행한다.
⇒ 발행자와 구독자는 서로 알 필요가 없고, 브로커와의 통신을 수행할 수 있으면 된다.
느슨한 결합
객체 내부에서 객체를 직접적으로 사용하는 의존성(강한 결합)을 줄이려는 시도.
강한 결합은 객체의 유연성과 코드 재사용성을 떨어뜨린다.