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 비교
- 성능 차이
- 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 |