Skip to content

Latest commit

 

History

History
44 lines (24 loc) · 1.53 KB

10.use_webflux.md

File metadata and controls

44 lines (24 loc) · 1.53 KB

Webflux 사용

소개

Webflux는 Reactive Programming을 지원하는 Spring 5의 일부분이다.

Webflux는 전체적으로 Reactor 프로젝트를 사용한다.

Legacy Stack과 비교

  • 어노테이션 컨트롤러

    어노테이션 기반 프로그래밍에서는 MVC와 동일한 어노테이션을 사용한다.

    Servlets, ServletContext과 같이 동기적인 자바이다.

    기존의 @Controller@RestController여러가지 부수 효과를 동반하게 된다.

    @Valid@RequestMapping 등이 존재한다.

  • 함수형 엔드포인트

    자바의 람다형 프로그래밍을 사용한 엔드포인트를 이용해서 함수형 프로그래밍 모델을 따르며, 가볍다

    함수형 엔드포인트는 요청의 처리를 처음부터 끝까지 담당한다.

    부수 효과가 존재하지 않으며, router -> handler와 같은 형태의 함수 체인형태로 사용하게 된다.

    반면에 함수형 엔드포인트는 비동기 자바인 Netty와 Netty의 Channel Model에서 비롯된 Reactive 적인 접근 방법에서 영감 받은 방법이다.

    따라서 ServletRequest, ServletResponse, WebFilter와 같이 Reactive 환경을 위한 새로운 API들이 등장했다.

    따라서 Reactive Programming에 적합하다.

사용

build.gradle

implementation 'org.springframework.boot:spring-boot-starter-webflux'
testImplementation 'io.projectreactor:reactor-test'

기본적인 webflux를 위한 의존성들이다.