이 사이트는 전자정부 표준프레임워크 구버전(1.0 ~ 4.3) 가이드 아카이브입니다. 내용은 더 이상 갱신되지 않습니다. 최신 내용은 최신 버전 문서에서 확인하세요.

실행환경 4.1

Web Reactive

개요

스프링 WebFlux는 5.0 버전부터 추가된 리액티브 스택 웹 프레임워크로서, 서블릿 API와 서블릿 컨테이너를 개발하기 위한 스프링 프레임워크이다.
스프링 웹 MVC를 포함한 기존의 웹 프레임워크와 달리 완전한 논블로킹으로 동작하며 Reactive Streams back pressure를 지원하고 Netty, Undertow, 서블릿 3.1+ 컨테이너 서버에서 실행된다.
웹 프레임워크 모두 스프링 프레임워크에 포함되어 있으며, 원하는 모듈을 선택하여 개발할 수 있다.

설명

Spring WebFlux 정의

스프링 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) 클라이언트 서버 프레임워크

참고자료

원본 페이지 ID
egovframework:rte4.1:ptl:web_reactive
원본 수정일