"Publisher"와 "Subscriber"

KKH_94·2023년 8월 29일
0

Reactive_Programming

목록 보기
4/18

리액티브 프로그래밍은 데이터 스트림과 이벤트 기반 프로그래밍을 다루는 패러다임입니다. 이 패러다임에서 "Publisher"와 "Subscriber"는 중요한 개념입니다.

Subscriber가 Publisher를 Subscribe 해야 할거 같지만,
Publisher가 Subscriber를 Subscribe 한다.

아래에서 이 둘의 관계에 대해 설명하겠습니다.

Publisher (발행자)

Publisher는 데이터 스트림이나 이벤트 스트림을 생성하고 발행하는 주체입니다. 이는 데이터의 변화나 이벤트를 생성하여 이를 구독자들에게 전달합니다. Publisher는 데이터의 변화를 감지하거나 외부 이벤트와 상호 작용하여 새로운 데이터나 이벤트를 생성합니다. Publisher는 데이터를 생성하고 이를 구독자들에게 보내는 역할을 수행합니다.

Subscriber (구독자)

Subscriber는 Publisher가 생성하는 데이터 스트림이나 이벤트 스트림을 구독하는 주체입니다. 구독자는 Publisher로부터 새로운 데이터나 이벤트를 받아들이고 이에 대한 처리를 수행합니다. 데이터나 이벤트의 도착에 따라 Subscriber는 미리 정의된 동작을 수행하거나 해당 데이터를 처리합니다.

Publisher와 Subscriber 간의 관계는 다음과 같은 특징을 가지고 있습니다

구독 (Subscription) : Subscriber는 Publisher의 스트림을 구독하기 위해 해당 스트림에 대한 구독 요청을 보냅니다. 이로써 구독자는 Publisher로부터 데이터를 수신할 수 있게 됩니다.

알림 (Notification) : Publisher는 새로운 데이터나 이벤트를 생성할 때마다 이를 구독자들에게 알립니다. 이를 통해 구독자들은 필요한 작업을 수행하거나 데이터를 처리할 수 있습니다.

비동기성 (Asynchronicity) : 리액티브 프로그래밍에서 Publisher와 Subscriber 간의 상호작용은 비동기적으로 이루어집니다. Publisher가 데이터를 생성하더라도 Subscriber는 그에 맞춰 비동기적으로 처리를 수행합니다.

백 프레셔 (Backpressure) : 구독자는 데이터 처리가 느려질 경우, Publisher로부터 더 많은 데이터를 받지 않도록 제어할 수 있는 백 프레셔 메커니즘이 있습니다. 이는 구독자의 부하를 관리하고 데이터 유실을 방지하는데 도움을 줍니다.

요약하면, Publisher는 데이터를 생성하고 발행하며, Subscriber는 Publisher가 생성한 데이터를 구독하고 처리합니다. Publisher와 Subscriber 간의 이러한 상호작용을 통해 리액티브 시스템은 효율적이고 반응성 있는 방식으로 데이터를 다룰 수 있습니다.

profile
_serendipity

0개의 댓글