<aside> 💡 외부 요청

</aside>

Spring Webflux는 Reactive Stream API를 활용해 비동기non-blocking을 지원하는 웹 프레임워크다. 이 세 가지 주요 기술은 I/O가 많은 웹 서비스 로직에서 웹 트래픽을 대량으로 처리할 수 있게 해주며, 기존의 서블릿 기반인 스프링 MVC에 비해 더욱 효율적이고 높은 성능을 보여준다.

예를 들어, 다양한 동시 요청을 처리해야 하는 마이크로서비스의 게이트웨이 서버나 실시간 데이터 스트리밍이 필요한 웹 소켓, 그리고 대량의 I/O를 처리해야 하는 실시간 채팅 서비스 등에서 활용하면 좋다.

하지만 Spring Webflux가 언제나 최적의 선택이라고는 할 수 없다. 동기 방식의 경우, 흐름을 더욱 명확하게 파악할 수 있어 장점이 되기도 한다. 또한, 비동기이지만 코드 작성 방식에 따라 성능이 저하될 수 있으므로, 반드시 꼼꼼하게 검토하고 테스트를 진행해야 한다.

따라서, 상황에 따라 스프링 웹 플럭스를 사용할지, 아니면 스프링 MVC로 구현할지 결정해야 한다. 만약 특정 상황이 아니라면, 코드 구현과 운영 측면에서 스프링 MVC를 사용하는 것이 더 생산적일 수 있다.


1. CPU Bound vs I/O Bound

2. Sync/Async와 Block/Non-Block

3. Spring MVC vs Webflux

4. Reactor

5. Webflux 실습

6. R2DBC

7. Reactive Redis

8. 성능 테스트(JMeter)

9. Blockhound(Java Agent)