웹플럭스3 Webflux Functional Endpoints 시작하기 Webflux 는 아래 처럼 두개의 프로그래밍 모델을 지원하는데, 이번글에서는 Functional 방식을 알아보도록 하자 Functional routing and handling Annotation-based reactive components 1. RouterFunction RouterFunction 은 기존 개발자에게 익숙한 @RequestMapping 어노테이션과 동일한 역활을 한다. 하지만 가장 큰 차이점은 RouterFunction 은 동작까지 정의한다라는 것이다. @RequiredArgsConstructor @Configuration public class Router { private final PersonHandler handler; @Bean public RouterFunction per.. 2020. 9. 30. Webflux vs WebMvc 성능 비교 Webflux 가 성능이 좋다고 하는데, 얼마나 성능이 좋은지 알아보도록 하자. Webflux는 비동기 논 블록킹 방식이므로 Webmvc의 멀티 스레드 방식보다 성능이 우수하다. 적은 리소스로 더 많은 트래픽을 처리가 가능하다. 여기서 좀 헷갈리는 내용을 정리하고 넘어가자 동기-비동기, 블록킹-논블록킹의 차이점은 과연 무엇인가? 동기와 비동기 = 함수가 바로 리턴되는지 여부 블록킹과 논블록킹 = 백그라운드 작업 여부를 확인하는가 여부 동기-블록킹 방식은 함수를 호출하면 백그라운드 작업이 완료되었는 계속 확인하고 완료되면 함수가 리턴되는 구조이고 비동기-논 블록킹 방식은 함수를 호출하고 백그라운드 작업이 끝났는지 확인하지 않고 리턴을 하고 바로 다른 작업을 한다. 백그라운드 작업의 종료 여부는 이벤트로 수.. 2020. 4. 6. Spring Webflux, 이해하고 사용하자 Webflux 란? Webflux를 먼저 이해하려면, reactive streams 를 먼저 이해해야 한다. reactive streams 란? reactive-streams.org 에서는 다음과 같이 정의하고 있다. Reactive Streams is an initiative to provide a standard for asynchronous stream processing with non-blocking back pressure. 대충 해석하면 "논블로킹(Non-blocking) 백프레셔(back pressure)를 이용한 비동기 데이터 처리의 표준이다" Reactive Streams 배경 2013년에 Netflix와 Pivotal, Lightbend의 엔지니어들이 처음 개발하기 시작하였고, Net.. 2020. 3. 21. 이전 1 다음