-
Cold Sequence와 Hot SequenceIT 서적/스프링으로 시작하는 리액티브 프로그래밍 2024. 2. 24. 14:11
Cold Sequence Seuqnece는 Publisher가 emit하는 데이터의 연속적인 흐름을 정의해 놓은 것으로 코드로 표현하면 Operator 체인 형태로 정의됩니다. Cold Sequence는 Subscribe가 구독할 때마다 데이터 흐름이 처음부터 다시 시작되는 Sequence입니다. 즉, Subsriber의 구독 시점이 달라도 구독을 할 때마다 Publisher가 데이터를 emit하는 과정을 처음부터 다시 시작하는 데이터의 흐름을 Cold Sequence라고 부릅니다. public static void main(String[] args) throws InterruptedException { Flux coldFlux = Flux.fromIterable(Arrays.asList("KOREA",..
-
Reactor 개요IT 서적/스프링으로 시작하는 리액티브 프로그래밍 2024. 2. 20. 20:22
Reactor란? 리액티브 스트림즈의 구현체로 리액티브 프로그래밍을 위한 라이브러리이다. 세부 구성요소 Flux: Publisher의 두 가지 타입 중 하나이다. Flux[N]은 N개의 데이터를 emit한다는 것을 의미한다. Mono[0|1]: Mono 역시 Reactor에서 지원하는 Publisher 타입인데, Mono가 데이터를 한 건도 emit하지 않거나 단 한 건만 emit하는 단발성 데이터 emit에 특화된 publisher이기 때문이다. Backpressure-ready network: Reactor는 Publisher로부터 전달받은 데이터를 처리하는 데 있어 과부하가 걸리지 않도록 제어하는 BackPressuer를 지원한다. Flux 예시 소스 @SpringBootApplication pub..
-
리액티브 스트림즈(Reactive Streams)IT 서적/스프링으로 시작하는 리액티브 프로그래밍 2024. 2. 16. 17:10
# 리액티브 스트림즈란? 리액티브 라이브러리를 어떻게 구현할지 정의해 놓은 별도의 표준 사양이 있는데, 이것을 리액티브 스트림즈라고 부른다. 한마디로, 데이터 스트림을 Non-Blocking이면서 비동기적인 방식으로 처리하기 위한 리액티브 라이브러리의 표준 사양이라고 표현할 수 있다. # 리액티브 스트림즈의 컴포넌트인 Publisher와 Subscriber 간에 데이터가 전달되는 동작 과정 그림상으로는 Publisher와 Subscriber가 마치 같은 스레드에서 동기적으로 상호작용하는 것처럼 보이지만 실제로 Publisher와 Subscriber는 각각 다른 스레드에서 비동기적으로 상호작용하는 경우가 대부분이다. Publisher의 속도가 빠르다면 Subscriber에서 데이터를 처리하는 속도가 느려지..
-
리액티브 시스템과 리액티브 프로그래밍IT 서적/스프링으로 시작하는 리액티브 프로그래밍 2024. 2. 16. 16:32
리액티브 시스템이란? 리액티브 시스템이란? 반응을 잘하는 시스템이다. 주요 특징 비동기 메시지 기반의 통신을 주로한다. 시스템의 작업량이 변화하더라도 일정한 응답을 유지한다. 시스템에 장애가 발생하더라도 응답성을 유지한다. 리액티브 프로그래밍이란? 리액티브 프로그래밍은 리액티브 시스템을 구축하는 데 필요한 프로그래밍 모델이다 리액티브 프로그래밍 코드 구성 Publisher 입력으로 들어오는 데이터를 제공하는 역할을 Publisher라고 한다. 발행자, 게시자, 생산자, 방출자 등 여러 가지 용어로 해석된다. Subscriber Publisher가 데이터를 제공하는 역할을 한다면, Subscriber는 Publisher가 제공한 데이터를 전달받아서 사용하는 주체이다. 구독자라고도 불리며 생산자의 의미와 반..