오늘은 스프링 WebFlux와 MVC에 대해서 알아보겠습니다.
Spring에서 웹 애플리케이션을 만들 때 대표적으로 사용하는 방식이 Spring MVC와 Spring WebFlux입니다.
두 기술은 모두 웹 애플리케이션을 만들기 위한 프레임워크이지만, 요청을 처리하는 방식이 다릅니다.
1. Spring MVC
Spring MVC는 동기 방식(Synchronous)으로 동작하는 전통적인 웹 프레임워크입니다.
사용자가 요청을 보내면 서버는 해당 요청을 처리하는 동안 스레드 하나를 계속 점유합니다.
==> 처리가 끝나야 스레드가 반환됩니다.
즉, 요청 하나당 스레드 하나가 필요합니다.
이 방식은 구조가 단순하고 이해하기 쉬워서 대부분의 웹 서비스에서 널리 사용되고 있습니다.
특징
- 동기 방식 처리입니다.
- 스레드 기반 모델입니다.
- 구현이 쉽고 안정적입니다.
- 데이터베이스 연동이나 일반적인 웹 서비스에 적합합니다.
2. Spring WebFlux
Spring WebFlux는 비동기 방식(Asynchronous)으로 동작하는 웹 프레임워크입니다.
요청을 처리하는 동안 스레드를 계속 점유하지 않습니다.
대기 시간이 발생하면 다른 작업을 처리하고, 결과가 준비되면 다시 이어서 처리합니다.
=> 즉, 적은 스레드로 많은 요청을 처리할 수 있습니다.
Reactive Streams 기반으로 동작하며, 대표적으로 Mono와 Flux라는 타입을 사용합니다.
특징
- 비동기, 논블로킹 방식입니다.
- 적은 스레드로 많은 요청 처리 가능합니다.
- 스트리밍이나 실시간 처리에 유리합니다.
- 구현 난이도가 MVC보다 높습니다.
다음 포스트는 두개의 차이점에 대해 더 자세히 알아보겠습니다.
'Spring' 카테고리의 다른 글
| [Spring] JPA - 1 (0) | 2026.02.17 |
|---|---|
| [Spring] controller에서 repository를 참조하는 코드를 짜면? (0) | 2026.02.02 |
| [Spring] 필터와 인터셉터 (0) | 2026.01.31 |
| [Spring] 컨테이너가 빈을 생성하는 과정 (0) | 2026.01.29 |
| [Spring] IoC, DI (0) | 2026.01.28 |