Domain/Reactive Programming 3

ObserveOn(), SubscribeOn(), PublishOn() Reactive Programming에서 작업 스레드 관리는 보통 두가지 연산자를 사용하여 처리됩니다. 아래는 그 두 예시입니다. 또 대표적으로 사용되는 ReactiveX와 Reactor의 관점에서 보겠습니다. subscribeOn() ReactiveX의 관점에서의 SubscribeOn은 데이터를 생성하고, I/O 작업을 수행하는 스레드를 지정합니다. 즉, Observable을 실행할 스레드를 결정하는 메함수로 Observable이 Subscribe 되었을 때, 어떤 Thread에서 실행할지를 결정하는 역할을 합니다. 이를 통해, CPU 작업과 I/O 작업이 동시에 일어나는 비동기 처리를 가능케 합니다. 이때, 지정되는 Thread는 ReactiveX의 Schedulers에서 선택할 수 있습니다. Rea.. Domain/Reactive Programming 2023. 5. 12.
Hot vs Cold Reactive Programming에서는 Data Stream을 "Hot" 또는 "Cold"로 분류할 수 있습니다. 여기서 사용하는 Library에 따라 Observable(ReactiveX의 관점)과 Sequence(Reactor의 관점)로 용어가 나뉠 수 있습니다. 따라서 아래의 내용에서 Stream이라는 내용이 나온다면 Observable 또는 Sequence라고 이해하시면 될 것 같습니다. Cold Observable/Sequence 발행자(Publisher)가 구독자(Subscriber)가 등록될 때마다 데이터 스트림을 처음부터 다시 시작하는 방식으로 동작합니다. 이 스트림은 데이터를 새롭게 다시 발행할 수 있으며, 새로운 구독자가 등록될 때마다 데이터의 처음부터 끝까지 모든 항목을 발행합니다.. Domain/Reactive Programming 2023. 5. 12.
Reactive Programming? Reactive Programming은 시스템이 외부 이벤트에 적절하게 대응할 수 있도록 하는 프로그래밍 모델로, 이벤트나 데이터 변화에 반응하여 데이터 처리를 수행합니다. 이 때, 데이터 처리를 비동기적으로 수행하여 높은 성능과 확장성을 제공합니다. Reactive Programming은 이벤트 기반 아키텍처, 즉 마이크로서비스와 같은 분산 시스템에서 많이 사용됩니다. Reactive Programming은 이벤트 스트림을 처리하고, 이벤트 간의 의존성과 관계를 파악하여 다음에 수행할 작업을 예측할 수 있도록 합니다. 이를 통해 시스템의 반응성(Responsiveness)을 향상시키고, 시스템 전체의 성능을 개선할 수 있습니다. Reactive Programming은 비동기적으로 데이터를 처리하고 이벤.. Domain/Reactive Programming 2023. 5. 12.