📌 개요
/api/v1/estimates API에 페이지네이션을 적용하여 전체 조회 방식의 성능 문제를 해결하고, 사용자와 관리자 모두 효율적으로 데이터를 조회할 수 있도록 개선했습니다.
✅ 변경 전 문제점
- 전체 견적서(10,000건)를 한 번에 조회하는 구조
- 응답 시간이 평균 1,196ms로 비효율적
- 프론트엔드 렌더링 지연 및 네트워크 부하
🛠 변경 사항
📊 성능 테스트 결과
테스트 도구: JMeter, 요청 수: 1000건, 병렬 사용자 수: 10명, 페이지 사이즈: 6
| 실행 회차 |
# Samples |
Average |
Min |
Max |
Std. Dev. |
Error % |
Throughput |
Received KB/sec |
Sent KB/sec |
Avg. Bytes |
| 1차 |
1000 |
9 |
5 |
21 |
2.24 |
0.000% |
99.95 |
168.86 |
32.99 |
1730 |
| 2차 |
1000 |
14 |
7 |
39 |
4.6 |
0.000% |
99.7009 |
169.02 |
32.91 |
1736 |
🔍개선 사항
| 구분 |
적용 전 |
적용 후 |
개선율 |
| 평균 응답시간 |
1,196ms |
14ms |
98.8% 개선 |
| 최소 응답시간 |
92ms |
7ms |
92.4% 개선 |
| 최대 응답시간 |
3,401ms |
39ms |
98.9% 개선 |
| 표준편차 |
602.33 |
4.60 |
99.2% 개선 |
| 처리량(req/s) |
56.26 |
99.70 |
77.2% 향상 |
| 평균 응답 크기 |
1,483KB |
1.7KB |
99.9% 감소 |
- 견적서 리스트 API에 대해 페이지네이션을 적용하여 10,000건 전체 조회 시 평균 1,196ms 걸리던 응답 속도를 14ms로 줄였습니다.
- 표준편차를 602.3에서 4.60으로 줄어들어 응답 시간을 안정적으로 최적화했습니다.
- 평균 응답 크기를 1.5MB에서1.7KB로 줄여 네트워크 대역폭 절약했습니다.
- 최대 응답 시간을 3.4초에서 0.039초로 줄여 사용자 경험을 향상시켰습니다.
📅 작성일: 2025-06-10
🧑💻 작성자: @rimeir
📌 개요
/api/v1/estimatesAPI에 페이지네이션을 적용하여 전체 조회 방식의 성능 문제를 해결하고, 사용자와 관리자 모두 효율적으로 데이터를 조회할 수 있도록 개선했습니다.✅ 변경 전 문제점
🛠 변경 사항
Pageable기반의 페이지네이션 도입기본 정렬:
id DESCPageResponse로 감싸 불필요한 중첩 필드 제거📊 성능 테스트 결과
🔍개선 사항
📅 작성일: 2025-06-10
🧑💻 작성자: @rimeir