옵저버 패턴(observer pattern)
![](https://velog.velcdn.com/images%2Frnjsrntkd95%2Fpost%2F9d9daf00-4861-490b-9ac7-5db780f8166d%2Fimage.png)
- 옵저버의 목록을 관찰자(Subject)가 갖고 있는다.
- 관찰자에 변화가 생기면 옵저버들에게 직접 통지한다.
발행-구독 패턴 (Pub-Sub Pattern)
![](https://velog.velcdn.com/images%2Frnjsrntkd95%2Fpost%2Fa3ba3f04-1f02-4eec-97c2-8fd7311b1dd8%2Fimage.png)
- 발신자(Publisher)의 메시지는 특별한 수신자가 정해져있지 않다.
- 발행된 메시지는 정해진 범주에 따라 구독을 신청한 Subscriber들에게 전달된다.
- 수신자는 발신자를 모르더라도 원하는 메시지를 얻을 수 있고, 발신자도 특정 수신자를 지정하지 않았음에도 필요한 Subscriber가 메시지를 가져간다.
옵저버 패턴과 발행-구독 패턴의 가장 큰 차이는 송신자와 수신자가 직접적으로 메시지를 송수신하지 않는다는 것이다. 서로의 존재를 몰라도 Event Channel에 의해 전달된다.
메시지 큐를 이용한 비동기 처리
![](https://velog.velcdn.com/images%2Frnjsrntkd95%2Fpost%2F030f2a8f-c7d7-44c8-ac91-773c61b0dd93%2Fimage.png)