리액티브 프로그래밍이란?
모든 데이터가 수신될때까지 기다리지 않고,
스트림 데이터에서 원하는 조건을 감지해
그에 맞는 처리를 해주는 프로그래밍
Reactive Streams 란?
Java에서
논블로킹(비동기) 방식으로,
Stream데이터를 다룰 수 있도록 해주는 기술 (리액티브 프로그래밍)
ReactiveStreams 핵심 요소 4가지
Subscriber(구독자) - 퍼블리셔를 구독(감시)
Publisher(퍼블리셔) - 구독자에게 받은 Request 처리
Subscription - 퍼블리셔와, 구독자가 연결된 관계
Processor - 현재 처리중인 작업
Reactor
Spring WebFlux에서 지원되는, 기본 ReativeStreams Class( 구현체 )
Flux - rx연산자가 있는 Publisher
N개의 요소를 내보낸다음 결과를 반환한다.
Mono - 기본 rx연산자가 있는 Publisher
1개의 요소를 내보낸다음 결과를 반환한다 ( onNext, onComplete, onError )
RxJava란?
Java로 스트림데이터를 다루는 라이브러리 ( 리액티브 프로그래밍 )
public void reactive() {
// PublishSubject.create() - 스트림 생성
PublishSubject<Integer> items = PublishSubject.create();
// PublishSubject.onNext() - 스트림에 정보 추가
items.onNext(1);
items.onNext(2);
items.onNext(3);
items.onNext(4);
// 스트림에서 짝수를 감시(subscribe)하고, 감지되면 출력하도록함
items.filter(item -> item % 2 == 0)
.subscribe(System.out::println);
items.onNext(5);
items.onNext(6);
items.onNext(7);
items.onNext(8);
}
반응형