NIO 기반으로 동작하는 WebFlux에서 어떤 시점에 핸들러를 통해 만들어진 응답을 클라이언트에게 전송하는지 알아보겠습니다.

WebFlux 요청 처리 구조

응답 전송 시점

핸들러가 Mono<ServerResponse>를 반환하는 시점이 아니라, 해당 Mono가 subscribe()되어 구독되며 데이터가 전달될 때 실제 응답 전송이 시작됩니다.

WebFlux에서는:

즉, 응답 바디를 구성하는 Publisher가 emit하여 Netty의 채널에 write될 때 클라이언트로 전송이 시작됩니다.

HandlerResultHandler

HandlerResultHandler의 역할