home
자바
home

1. 강의 개요

Spring WebFlux 란?

저희가 WebFlux 를 사용하고 싶다는건 리액티브한 서비스를 만들고 싶다는 의미라고 보셔도 됩니다.
WebFlux 는 리액티브한 서비스를 쉽게 개발할 수 있도록 도와주는 스프링 프레임워크의 라이브러리입니다.
리액티브 서비스에서는 비동기 웹 서버의 활용이 중요한데, WebFlux 는 Netty 와 같은 비동기 웹 서버와 스프링 애플리케이션을 자연스럽게 통합할 수 있도록 지원합니다.
이 외에도 스트림 방식의 데이터 처리, 논 블로킹 API 제공 등 다양한 리액티브 기능들을 포함하고 있습니다.
리액티브한 서비스란?
"리액티브하다"는 것은 요청에 빠르고 효율적으로 반응한다는 의미입니다.
사용자의 요청이 들어왔을 때 자원을 효율적으로 활용하여 신속하게 처리하고, 즉각 즉각 반응하는 서비스라고 할 수 있을것 같습니다.
이렇게 “리액티브”하게 만들기 위해서는 비동기 웹 서버의 활용이 필수적입니다. 왜 리액티브한 서비스에 비동기 웹 서버가 필수일까?
동기 블로킹 방식 (Tomcat 이라는 방의 사람) : 일처리가 끝날때까지 대기
비동기 논블로킹 방식 (Netty 이라는 방의 사람) : 다른 일과 병행 가능
Webflux는 Netty와 완벽한 통합 지원
WebClient, R2DBC 등 다양한 비동기 API 쉽게 연동
Publisher-Subscriber 패턴
Stream
리액티브한 서비스 (Tomcat ⇒ Netty + Webflux)