본문 바로가기
지식/디자인패턴

Publish-Subscribe Pattern

by CodeRain 2023. 12. 11.

발행-구독 패턴 (Publish-Subscribe Pattern)

  • 소프트웨어 아키텍처에서 사용되는 패턴 중 하나로 시스템의 다양한 구성 요소 간에 효율적으로 메시지를 교환하도록 도와주는 방식

pub-sub pattern

 

적용하기에 적합한 상황

  • 실시간 채팅
  • 비동기 통신 필요한 경우
  • 분산 시스템(분산 캐싱, 분산 로깅 등)
  • Backend와 FrentEnd 실시간 동기화 필요한 상황

 

적용하기에 부적합한 상황

  • 단순한 시스템과 소규머 애플리케이션
  • 오디오 및 비디오 스트리밍
  • 정기적인 작업이나 백그라운드 작업
  • 비이벤트 중심 시스템 및 동기식 통신이 필요한 경우

 

Observer Pattern 비교

유사점

  • 애플리케이션이나 웹 사이트의 한 구성 요소에서 다른 구성 요소로 데이터를 전송하는 것을 목표
  • 두 디자인 모두 이벤트를 생성하는 생산자와 생성된 이벤트를 소비하는 소비자를 다룸.

 

차이점

  • Observer Pattern은 Subject가 Observer를 아는 광범위하고 사용하기 쉬운 메시징 방법. 단일 애플리케이션의 구성 요소 간에 데이터 교환을 수행. 그리고 동기 통신에 사용
  • Pub-Sub Pattern의 경우 게시자와 구독자가 서로를 알지 못함. 동일하거나 다른 애플리케이션의 여러 서비스 간의 비동기 데이터 교환에 적합

 

 

참조

https://ably.com/topic/pub-sub

https://ably.com/blog/pub-sub-pattern-examples

https://learn.microsoft.com/en-us/azure/architecture/patterns/publisher-subscriber

https://medium.com/building-the-open-data-stack/observer-versus-pub-sub-design-patterns-48b1dbc83916