패스잇
백엔드 개발 · 심화

Spring WebFlux와 기존 Spring MVC의 차이점은 무엇인가요?

힌트 · 블로킹 vs 논블로킹, Mono/Flux 개념을 생각해보세요.

비동기Non-BlockingReactorBackpressureServlet Stack

모범답안

Spring WebFlux와 Spring MVC의 가장 큰 차이점은 동작 방식입니다. Spring MVC는 Servlet 기반의 동기/블로킹 방식인 반면, Spring WebFlux는 Reactor 기반의 비동기/Non-Blocking 방식으로 동작합니다.

Spring MVC에서는 요청을 처리하는 스레드가 I/O 작업이 완료될 때까지 대기하지만, WebFlux에서는 I/O 작업이 완료될 때까지 스레드가 다른 작업을 수행할 수 있습니다. 이를 통해 WebFlux는 더 적은 스레드로 더 많은 요청을 처리할 수 있어, 동시성 처리 성능이 향상됩니다.

WebFlux는 Mono와 Flux라는 Reactive Streams API를 사용하여 데이터를 비동기적으로 처리합니다. Mono는 0 또는 1개의 데이터를, Flux는 0개 이상의 데이터를 나타냅니다. 또한 Backpressure를 지원하여 생산자가 소비자의 처리 속도에 맞춰 데이터를 전송하도록 제어할 수 있습니다.

결론적으로, Spring WebFlux는 Non-Blocking I/O와 Reactive Streams를 통해 더 높은 확장성과 응답성을 제공하는 데 초점을 맞춘 프레임워크입니다.

읽었다면, 이제 직접 답해볼 차례예요

패스잇 앱에서 이 질문에 말로 답하면 AI가 꼬리질문까지 이어가며 1:1 코칭합니다.

함께 보는 Java / Spring 면접 질문

← Java / Spring 면접 질문 전체 보기