파란하늘의 지식창고
Reactor map, flatMap method는 언제 써야할까?
Study/Java 2020. 1. 16. 07:16

webflux로 서비스를 만들어보면서 map과 flatMap을 언제 써야 할지 헷갈릴 때가 있어 공부한 내용을 정리함. map과 flatMap은 둘 다 스트림의 중간에 값을 변환해주는 역할을 한다. map은 1 : 1로 반환을 보증하고 flatMap은 1 : N을 변환할 수 있다. 요청에 대해 N개를 병렬로 실행할 경우가 많지 않아 map을 많이 쓸 것 같지만 개발을 하다 보면 대다수의 경우 flatMap을 사용하게 된다. flatMap을 사용하는 경우 flatMap을 사용하게 되는 경우는 다음과 같다. Mono -> Mono 또는 Mono -> Flux로 변환이 필요한 경우 map과 flatMap의 설명을 보면 다음과 같다. Publisher method Mono map Transform the ite..

article thumbnail
Reactor 레퍼런스 문서 공부
Study/Java 2020. 1. 2. 08:44

Reactor 레퍼런스 문서 공부. 3.2 Asynchronicity to the Rescue? JVM에서 비동기 코드를 어떻게 개발할 수 있을까? 자바는 비동기 프로그래밍을 위한 두 가지 모델을 제공한다. Callbacks 비동기 메서드는 반환 값을 가질 수 없지만 외부 callback 매개 변수 (람다나 익명 클래스)를 통해 결과를 호출받을 수 있다. (ex : Swing의 EventListener) Futures 비동기 메서드는 Future를 즉시 리턴한다. 비동기 프로세스는 T value를 계산하지만 Future 개체는 이에 대한 access를 래핑 한다. 값을 즉시 사용할 수 없으며 사용할 수 있을 때까지 값을 polling 할 수 있다. (ex: Callable 작업을 실행하는 Executor..

article thumbnail
Reactor 공부하기 위한 프로젝트 설정
Study/Java 2019. 12. 20. 21:26

Reactor 사이트에서는 Reactor를 아래와 같이 소개한다. Reactor is a fourth-generation Reactive library for building non-blocking applications on the JVM based on the Reactive Streams Specification 1,2,3세대가 뭔지 궁금하긴 한데 관련 내용은 찾지 못했다. (RxJava 같은걸 얘기하는 거려나..) spring webflux를 쓰기 위해서 우선 reactor를 공부해야 하는데 reactor를 먼저 공부하기 위해 순수하게 reactor에 대해서만 공부하기 위한 프로젝트 설정을 해보았다. reactor homeapge : https://projectreactor.io/ 홈페이지에서 문..