현대오토에버 모빌리티 스쿨에서 진행한 'WMS 프로젝트'에서는 MSA 기반 분산 아키텍처로 설계를 진행하였습니다.
이에, 서버에 이루어지는 모든 요청이 Spring MVC 패턴으로 구현된다면 다음과 같은 문제가 발생할 것으로 예상되었습니다.
N개의 요청이 발생하면 N개의 스레드가 생성이를 해결하기 위해 API Gateway를 Spring WebFlux 기반으로 구현하였습니다.
Spring WebFlux는 논블로킹 비동기 처리 방식을 제공하는 리액티브 프로그래밍 모델을 기반으로 합니다. 이를 통해 다음과 같은 개선 효과를 기대할 수 있습니다.
최종적으로
Spring MVC아키텍처를Spring WebFlux를 활용하여 서버 동시 처리량을 약 13배 이상 개선하였습니다.
테스팅은 Jmeter로 진행하였습니다.
추후에는, 단일 컴퓨터 인스턴스에서 실행하는 Jmeter 보다는, 실제로 여러 개의 Instance를 생성해서 테스트 해볼 수 있는 AWS Lambda를 이용해 테스트 해보는 것이 더욱 좋은 테스팅이 될 것 같습니다.
| 요청 수 | Spring MVC | Spring WebFlux | 차이 |
|---|---|---|---|
| 10,000 | 1,081.8 | 4,990.0 | 🔺 4.6배 ↑ |
| 20,000 | 1,098.5 | 5,046.7 | 🔺 4.6배 ↑ |
| 30,000 | 706.2 | 6,267.8 | 🔺 8.9배 ↑ |
| 40,000 | 373.9 | 5,596.2 | 🔺 15배 ↑ |
✅ 결과 요약:
WebFlux가 모든 테스트에서 월등히 높은 처리량을 보였으며, 특히 요청 수가 증가할수록 차이가 더 벌어졌습니다.
| 요청 수 | Spring MVC | Spring WebFlux | 차이 |
|---|---|---|---|
| 10,000 | 82 | 10 | 🔽 8.2배 ↓ |
| 20,000 | 176 | 29 | 🔽 6.1배 ↓ |
| 30,000 | 401 | 46 | 🔽 8.7배 ↓ |
| 40,000 | 1,045 | 61 | 🔽 17배 ↓ |
✅ 결과 요약:
WebFlux의 평균 응답 시간이 MVC보다 최대 17배 빠른 성능을 보이며, 요청 수가 증가할수록 응답 속도 차이가 커졌습니다.




