발행-구독 패턴 (Publish-Subscribe 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
'지식 > 디자인패턴' 카테고리의 다른 글
| Head First Design Patterns : Singleton Pattern (1) | 2024.01.01 |
|---|---|
| Head First Design Patterns : Factory Pattern (0) | 2023.12.31 |
| Head First Design Patterns : Decorator Pattern (1) | 2023.12.20 |
| Head First Design Patterns : Observer Pattern (1) | 2023.12.10 |
| Head First Design Patterns : Strategy Pattern (0) | 2023.11.29 |