스프링 WebFlux는 5.0 버전부터 추가된 리액티브 스택 웹 프레임워크로서, 서블릿 API와 서블릿 컨테이너를 개발하기 위한 스프링 프레임워크이다.
스프링 웹 MVC를 포함한 기존의 웹 프레임워크와 달리 완전한 논블로킹으로 동작하며 Reactive Streams back pressure를 지원하고 Netty, Undertow, 서블릿 3.1+ 컨테이너 서버에서 실행된다.
웹 프레임워크 모두 스프링 프레임워크에 포함되어 있으며, 원하는 모듈을 선택하여 개발할 수 있다.
스프링 5.0 버전부터 추가된 비동기 프로그래밍으로 Reactive-Stack을 통한 Async Non-Blocking 지원하며 서비스 간의 호출이 많은 마이크로서비스 아키텍처에 적합한 프레임워크이다.
Reactive : 마우스 이벤트에 반응하는 UI 컨트롤러 혹은 I/O 이벤트에 반응하는 네트워크 구성 요소와 같이 변경에 반응하는 프로그래밍 모델
Reactive Streams : backpressure가 있는 비동기 컴포넌트간의 상호 작용을 정의하는 소규모 사양
Reactor : Spring WebFlux에서 사용되는 Reactive Library이면서 Reactive Streams의 구현체
Non-Blocking I/O : 주로 I/O의 읽기, 쓰기에서 사용되는 용어로 Blocking는 요청한 작업이 마칠 때까지 대기하는 상태이고 Non-Blocking는 요청한 작업이 즉시 마칠 수 없다면 즉시 Return 하는 상태임
Asynchronous : 작업완료 여부를 호출한 함수가 기다리거나 스스로 확인하는 방식이 동기방식이고 호출되는 함수에게 callback을 전달하고 완료되면 호출되는 함수가 callback을 실행하는 방식
Netty : 프로토콜 서버 및 클라이언트와 같은 네트워크 응용 프로그램을 빠르고 쉽게 개발할 수 있는 NIO(Non-Blocking Input Ouput) 클라이언트 서버 프레임워크
이 위키의 내용은 다음의 라이센스에 따릅니다 :
CC Attribution-Noncommercial-Share Alike 3.0 Unported전자정부 표준프레임워크 라이센스(
바로가기)
전자정부 표준프레임워크 활용의 안정성 보장을 위해 위험성을 지속적으로 모니터링하고 있으나, 오픈소스의 특성상 문제가 발생할 수 있습니다.
전자정부 표준프레임워크는 Apache 2.0 라이선스를 따르고 있는 오픈소스 프로그램입니다. Apache 2.0 라이선스에 따라 표준프레임워크를 활용하여 발생된 업무중단, 컴퓨터 고장 또는 오동작으로 인한 손해 등에 대해서 책임이 없습니다.