본문 바로가기

728x90

Spring Boot/Webflux

(4)
Context Context란?일반적으로 문맥이라고도 알려져 있는 Context는 어떤 상황에서 그 상황을 처리하기 위해 필요한 정보를 의미합니다.Reactor에서의 ContextOperator 체인에 전파되는 키와 값 형태의 저장소입니다. ThreadLocal에서 스레드마다 생성 저장소가 생성되듯이, Context는 구독이 발생할 때마다 생성됩니다. 즉, Context는 Subscriber 와 매핑되어, 해당 Subscribe(구독)과 연결된 하나의 Context가 생깁니다. 아래 예시 코드로 Reactor의 Context를 자세히 알아보겠습니다.예시public class Main { public static void main(String[] args) throws InterruptedException { ..
Scheduler Reactor의 Scheduler비동기 프로그래밍을 위해 사용되는 스레드, 즉 Reactor Sequence에서 사용되는 스레드를 관리해 주는 관리자 역할을 합니다. Reactor의 Scheduler는 관리자의 역할로서 어떤 스레드에서 무엇을 처리할지 제어합니다. 자바에서 멀티 스레드를 관리하는 것은 까다롭습니다. 스레드 간의 경쟁 조건 등을 신중하게 고려해서 코드를 작성해야 하는데 이를 통해 예상치 못한 오류 발생할 가능성 높습니다.Reactor의 Scheduler를 통해서 이런 문제를 최소화할 수 있습니다. 우선, Reactor의 Scheduler를 사용하면 코드 자체가 매우 간결해집니다. 그리고, Scheduler가 스레드의 제어를 대신해 주기 때문에 개발자가 직접 스레드를 제어해야 하는 부담이 적..
Cold sequence와 Hot sequence Cold와 HotCold sequence와 Hot sequence를 알기 전에 Cold와 Hot의 의미를 아래와 같이 정리하고 시작합시다. Cold는 무언가를 새로 시작하고, Hot은 무언가를 새로 시작하지 않는다. SequenceSequence란, Publisher가 emit 하는 데이터의 연속적인 흐름을 정의해 놓은 것으로, 코드로 표현하면 Operator 체인 형태로 정의됩니다.즉, Cold를 Sequence에 적용해 보면 Sequence가 새로 시작된다 로 생각해 볼 수 있고, Hot을 Sequence에 적용해 보면 Sequence가 새로 시작되지 않는다라고 생각할 수 있겠습니다. Cold sequence란?Cold sequence는 Subscriber 가 구독할 때마다 데이터 흐름이 처음부터 다..
Reactor란? Reactor란?Reactor는 RxJava와 함께 Reactive Stream(리액티브 스트림) 사양을 구현한 Reactive 라이브러리입니다. 공식문서: https://projectreactor.io/  Reactive Stream 관련 내용은 아래 블로그에서도 설명이 잘되어 있어서 참고하시면 되겠습니다. https://velog.io/@korea3611/%EB%A6%AC%EC%95%A1%ED%8B%B0%EB%B8%8C-%EC%8A%A4%ED%8A%B8%EB%A6%BC%EC%A6%88Reactive-Streams%EB%9E%80 리액티브 스트림즈(Reactive Streams)란?이 글은 인프런의 Kevin의 알기 쉬운 RXJava 1부를 참고합니다.데이터를 생성해서 내보는 쪽 : 생산자생산자가 데이..

728x90
반응형