Pub-Sub(발행-구독) 패턴은 소프트웨어 아키텍처에서 메시징을 통해 컴포넌트 간의 통신을 관리하는 디자인 패턴입니다. 이 패턴은 두 가지 주요 역할인 발행자(Publisher)와 구독자(Subscriber)로 구성됩니다.
Pub-Sub 패턴의 구성요소
Publisher(발행자): 이벤트나 메시지를 생성하고 발행하는 역할을 합니다. 발행자는 메시지를 누구에게 보낼지 신경 쓰지 않고, 단지 메시지를 발행하면 됩니다. 발행자는 구독자가 누구인지 알 필요가 없습니다.
Subscriber(구독자): 특정 유형의 이벤트나 메시지를 수신하고, 그에 따라 동작을 수행합니다. 구독자는 발행자가 누구인지 알 필요가 없고, 특정 이벤트를 구독하기만 하면 됩니다.
Event Broker(이벤트 브로커) 또는 Message Broker(메시지 브로커): 발행자와 구독자 사이의 중개자 역할을 합니다. 발행자가 발행한 메시지를 받아서, 해당 메시지에 관심 있는 모든 구독자에게 전달합니다. 이 브로커가 중간에 존재함으로써 발행자와 구독자가 서로의 존재를 몰라도 되며, 시스템의 결합도를 낮출 수 있습니다.
Event Broker와 Message Broker 비교
Event Borker
이벤트 브로커는 주로 이벤트 기반 아키텍처에서 사용되며, 특정 이벤트가 발생했을 때 이를 감지하고 해당 이벤트를 구독한 컴포넌트에 전달합니다.
특징
비동기성: 이벤트 발생 후 즉시 반응하지 않고, 구독자가 해당 이벤트를 수신할 때까지 대기합니다.
상태 비저장: 이벤트 브로커는 이벤트의 상태를 저장하지 않으며, 이벤트가 발생할 때마다 실시간으로 전파합니다.
이벤트 중심: 특정한 이벤트에 대한 처리를 중점적으로 다루며, 이벤트의 생명 주기에 따라 처리됩니다.