-
Notifications
You must be signed in to change notification settings - Fork 0
Open
Labels
backenddocumentationImprovements or additions to documentationImprovements or additions to documentation
Description
📌 개요
/api/v1/estimates API에 페이지네이션을 적용하여 전체 조회 방식의 성능 문제를 해결하고, 사용자와 관리자 모두 효율적으로 데이터를 조회할 수 있도록 개선했습니다.
✅ 변경 전 문제점
- 전체 견적서(10,000건)를 한 번에 조회하는 구조
- 응답 시간이 평균 1,196ms로 비효율적
- 프론트엔드 렌더링 지연 및 네트워크 부하
🛠 변경 사항
- 관련 PR: [Feature] 견적서 조회 페이지네이션 적용 #69
Pageable기반의 페이지네이션 도입- 기본 페이지 사이즈: 6건
기본 정렬:id DESC - 응답 구조를
PageResponse로 감싸 불필요한 중첩 필드 제거
📊 성능 테스트 결과
테스트 도구: 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
Metadata
Metadata
Assignees
Labels
backenddocumentationImprovements or additions to documentationImprovements or additions to documentation