본문 바로가기
Dev

WebFlux

by jyobi 2022. 4. 19.
반응형

1. WebFlux란

- Spring5에서 reactive stack을 지원하는 web container framework

- Netty, Jetty 등 비동기 논블로킹 컨테이너 사용

 

2. WebFlux의 특징

- Non-blocking IO

  - 최소한의 리소스로 효율적인 운영

  - Singler worker thread가 Eventloop 처리

- Functional Endpoints

  - Lambda 기반 functional programming model

  - Request Router가 Handler로 request routing

  - Handler method에 @RequestMapping 선언부 없이

     request/reponse를 어플리케이션에서 전부 제어

 

3. WebFlux와 MVC 비교

Spring MVC와 Spring WebFlux 비교

- 성능 차이

  - user 수가 일정 구간까지는 동일한 성능을 보여주지만, 증가할수록 성능 차이 발생

 

4. WebFlux와 MVC의 선택

- 새로 구축한다면

    : 기능 / 내부 호출양 / 인적자원을 고려하여 선택

- 기존에 MVC로 되어있다면

    : 사용량 / 로직 복잡도를 고려하여 전환을 고려 (but 문제 없다면 그냥 쓰자)

- MVC를 사용하면서 WebFlux 컴포넌트를 섞어 사용 가능

 

5. WebFlux 프로젝트 구성

- Filter

- Handler

  - Annotated Controller

    : 기존의 MVC와 동일한 형식

  - Functional Endpoint

    : WebHandler, Router

- WebClient

- WebfluxConfigurer

 

 

 

반응형

'Dev' 카테고리의 다른 글

2024년 말에 다시 시작하는 사이드프로젝트 세팅  (0) 2024.10.07
Reactive Programming  (0) 2022.04.12
Event-driven Architecture & Programming  (0) 2022.04.11