드디어 리액티브 프로그래밍의 마지막인 Spring WebFlux에 대해 배웠고 실습을 진행해봤다.
Spring WebFlux의 개념과 사용법, 장단점에 대해 이해하게 되었다!
웹 애플리케이션의 비동기, 논블로킹 처리를 위한 프레임워크로서 그 존재의 가치를 충분히 알 수 있었다.
특히, 기존의 Spring MVC와 비교했을 때, 하나의 쓰레드에서 많은 수의 요청을 처리할 수 있다는 점에서 그 강력함을 느낄 수 있었다!
문제는 절반도 이해를 못한 것 같다..ㅠㅠ 언젠가 WebFlux에 대해 깊게 다룰일이 있다면 그때 열심히 공부해야지..
Spring WebFlux란?
Spring WebFlux는 Spring Framework 5에서 소개된 리액티브 웹 프레임워크입니다.
기존의 Spring MVC와는 달리, WebFlux는 비동기적인, 논블로킹 방식의 요청 처리를 지원하며,
이를 통해 한 쓰레드에서 많은 수의 요청을 동시에 처리할 수 있다. 이로 인해 대용량의 트래픽을 처리하는 데 필요한 자원을 효율적으로 사용할 수 있다.
Spring MVC vs Spring WebFlux
Spring MVC는 서블릿 기반의 웹 프레임워크로, 한 쓰레드에서 하나의 요청을 처리하는 방식.
반면에 Spring WebFlux는 리액티브 스트림스를 이용한 비동기적, 논블로킹 방식의 요청 처리를 지원한다.
즉, 하나의 쓰레드에서 여러 요청을 동시에 처리할 수 있다. 이 때문에 높은 트래픽을 가진 웹 애플리케이션의 경우, Spring WebFlux를 이용하는 것이 더 효율적일 수 있다.
Non-Blocking 프로세스란?
Spring WebFlux에서의 Non-Blocking 프로세스란, I/O 작업이 진행되는 동안 현재의 쓰레드가 대기 상태가 되는 것이 아니라, 다른 작업을 계속 수행할 수 있는 방식을 의미. 이를 통해, 쓰레드의 사용을 최적화하고, 많은 수의 요청을 동시에 처리할 수 있다.