🟩/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

  • 함수형 프로그래밍 스타일을 사용하여 라우팅과 핸들러를 정의한다.