🟩/Spring Boot
Spring WebFlux
진뚱이용
2024. 6. 13. 19:49
- Spring 5에서 도입된 모듈
- 리액티브 프로그래밍을 지원하는 비동기 및 논블로킹 웹 프레임워크이다.
- 전통적인 Spring MVC와 달리, Reactive Streams API를 기반으로 하여 비동기적이고 논블로킹 방식으로 HTTP 요청을 처리한다.
- 고성능, 높은 동시성, 효율적인 리소스 사용을 가능하게 한다.
Reactive Streams
- 비동기 스트림 처리의 표준이다.
- WebFlux는 이 표준을 기반으로 구축되었으며, 두 가지 주요 데이터 타입인 `Mono`와 `Flux`를 사용한다.
Mono
- 단일 결괏값을 비동기적으로 반환하는 타입이다.
- 하나의 객체나 빈 결과를 나타낸다
Flux
- 다중 결괏값을 비동기적으로 반환하는 타입이다.
- 여러 개의 객체나 스트림을 나타낸다.
Functional 및 Annotation 기반 프로그래밍 모델
- WebFlux는 두 가지 프로그래밍 모델을 지원한다.
Annotation-based
- 전통적인 Spring MVC 스타일의 어노테이션을 사용한다.
Functional
- 함수형 프로그래밍 스타일을 사용하여 라우팅과 핸들러를 정의한다.