Spring MVC vs WebFlux 성능 비교 테스트

Zoonmy·2025년 3월 29일

📊 개요

본 테스트는 전통적인 Spring MVC(MySQL 연동)와 비동기 방식의 Spring WebFlux(MongoDB 연동)의 성능 차이를 비교
다양한 부하 조건에서의 응답 시간, 처리량, 안정성을 종합적으로 측정


🧪 테스트 환경

테스트 도구: JMeter

테스트 시나리오: 100명의 가상 사용자가 1초당 100~400개의 요청을 발생 (총 10,000~40,000 요청)

하드웨어: 동일한 사양의 서버 환경에서 테스트 수행


📈 성능 비교 결과

1️⃣ 처리량 비교 (Requests/sec)

요청 수Spring MVCSpring WebFlux차이
10,0001,081.84,990.0🔺 4.6배 ↑
20,0001,098.55,046.7🔺 4.6배 ↑
30,000706.26,267.8🔺 8.9배 ↑
40,000373.95,596.2🔺 15배 ↑

결과 요약:
WebFlux가 모든 테스트에서 월등히 높은 처리량을 보였으며, 특히 요청 수가 증가할수록 차이가 더 벌어졌습니다.


2️⃣ 평균 응답 시간 비교 (ms)

요청 수Spring MVCSpring WebFlux차이
10,0008210🔽 8.2배 ↓
20,00017629🔽 6.1배 ↓
30,00040146🔽 8.7배 ↓
40,0001,04561🔽 17배 ↓

결과 요약:
WebFlux의 평균 응답 시간이 MVC보다 최대 17배 빠른 성능을 보이며, 요청 수가 증가할수록 응답 속도 차이가 커졌습니다.


최종 결과

TPS : 약 13배 증가!

응답 속도 : 약 95% 증가!


아래에 테스트 케이스 캡처본이 있습니다.













테스트 케이스 요약

Spring MVC + MySQL

Spring WebFlux + Mongo DB

1. 1초에 100개의 요청이 100명 = 10,000

  • spring mvc + mysql
  • spring webflux + mongo db

2. 1초에 200개의 요청이 100명 = 20,000

  • spring mvc + mysql
  • spring webflux + mongo db

3. 1초에 300개의 요청이 100명 = 30,000

  • spring mvc + mysql
  • spring webflux + mongo db

4. 1초에 400개의 요청이 100명 = 40,000

  • spring mvc + mysql
  • spring webflux + mongo db
profile
열시미 해야쥐

0개의 댓글