Mono: 3개의 글
Spring + Webflux Webflux (Reactive) 를 이해하기 위해 sync, async, blocking, non-blocking 차이를 이해해야 했고, async 한 코딩을 위해 CoroutineScope 를 사용하면 편리하다는 점을 알게 되었습니다. Webflux 를 이해하기 위해 일반 sync + blocking 코드를 async + non-blocking 코드로 변환해가며 이해하고자 노력하였습니다. #1 Sync 코드 아래 코드를 보면, 1~3 까지 출력을 두번 합니다. 첫번째 loop문이 끝나야 두번째 loop문을 실행합니다. 순서대로 코드가 실행되며 (sync), 앞의 loop문은 뒤의 loop문을 blocking 한다고 볼 수 있습니다. (1..3).forEach {..
1. spring webflux 란? 더 낮은 사양의 하드웨어, 더 적은 수의 스레드로 동시성을 처리하기 위함 서블릿 스펙 3.1에서 논블로킹IO API를 지원하긴 하는데, 자꾸 동기(Filter, Servlet)나 블로킹(getParameter, getPart)에서 걸린다 spring 5.0 (boot 2.0) 부터 사용 가능 1-1. 특징 서블릿과 이별 : DispatcherServlet(doGet, doPost) 이 없음 기본 컨테이너가 tomcat -> netty (서블릿 스펙 3.1이상인 tomcat을 쓸 수는 있음) project reactor : 절차형 -> 반응형, 코드가 의식의 흐름처럼 흘러감 Reactive stream의 구현체 비동기 / 논블로킹 스트림 처리를 위한 스펙명세 https..
참조문서 https://projectreactor.io/ https://github.com/reactor/reactor-core https://godekdls.github.io/Reactor%20Core/contents/ 리액티브 스트림을 기본적으로 이해해야, Reactor 도 수월하게 이해할 수 있다. cf) 리액티브 스트림 포스팅 : https://sjh836.tistory.com/182 예제코드는 io.projectreactor:reactor-core:3.4.2 기준으로 작성되었다. 1. Reactor의 탄생 reactor 1.0은 13년 7월에 출시되었다. spring 프레임워크의 개발팀인 pivotal 에서 만든 오픈소스이다. 리액터 패턴, 함수형 프로그래밍, 메세지 기반 등의 설계와 모범사례들..