Spring/Webflux

Creating a new sequence

blockbuddy93 2024. 3. 4. 16:04

목적에 맞는 Operator 분류

Creating a new sequence : 리액트 시퀀스를 새롭게 생성할때

Transforming an exisiting sequence : 이미 존재하는 시퀀스를 가공할때

Filtering a sequence : 특정 조건에 맞춰 emit 되는 데이터를 필터링 할 때

Peeking into a sequence : 내부에서 보내는 Signal을 엿볼 수 있는 api

Handling error : 에러 다루는것

Working with time : 시간 가지고 작업하는 오퍼레이터

Splittting a Flux : Emit 되는 데이터들을 나눌수 있는것

Multicasting a Flux to several Subscribers : 다수의 Subscriber 에게 한번에 데이터를 전달하는것

 

Creating a new sequence

justOrEmpty

Mono 에서만 사용하는 연산자.

emit할 데이터가 null이 아닐 경우 해당 데이터를 emit하는 Mono를 생성한다.

emit할 데이터가 null일 경우 onComplete singal을 emit한다.

 

fromIterable

Iterable에 포함된 데이터를 emit하는 Flux를 생성한다.

즉 Java에서 제공하는 Iterable을 상속한 Collection의 구현객체를 fromIterable파라메터로 받는다.

 

fromStream

Stream에 포함된 데이터를 emit하는 Flux를 생성한다.

Stream은 재사용할 수 없으며, cancel, error, complete 시에 종료된다.

 

range

n부터 1씩 증가한 연속된 수를 m개 emit하는 Flux를 생성한다.

명령형 언어의 for문 처럼 특정 횟수 만큼 어떤 작업을 처리하고자 할 경우에 주로 사용된다.

 

defer

operator를 선언한 시점에 데이터를 emit하는 것이 아니라 구독하는 시점에 데이터를 emit한다.

즉 데이터 emit을 지연시키므로, 꼭 필ㅇ료한 시점에 데이터를 emit하게 하여 불필요한 프로세스를 줄일 수 있다.

 

using

파라미터로 입력받은 resource를 emit하는 Flux를 생성한다.

onComplelete 또는 onError 후에 원본 resource를 해제할 수 있다.

 

generate

프로그래밍 방식으로 Signal 이벤트를 생성하고자 할 경우 사용된다.

동기적으로 데이터를 하나씩 순차적으로 emit하고자 할 경우 사용된다.

 

create

프로그래밍 방식으로 Signal 이벤트를 생성하고자 할 경우 사용된다.

여러건의 데이터를 비동기적으로 emit 하고자 할 경우 사용된다.