| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 |
Tags
- Til
- GoF 23
- lv1
- DB
- 스프링 배치
- 디자인 패턴
- 프로그래머스
- 배치
- 계산기
- 백엔드
- 성능 개선
- 빌더 패턴
- 스프링
- 추상클래스
- java
- 스케줄러
- 트러블슈팅
- Effective Java
- 자바
- 이펙티브 자바
- Spring
- 로드밸런서
- 프록시 패턴
- 코드카타
- 김영한
- Spring Batch
- spring boot
- 템플릿 메서드 패턴
- 토스
- redis
Archives
- Today
- Total
김코딩
동기식 결제 승인 API의 응답속도 테스트 및 분석 본문
테스트 대상 API
- 경로 및 메서드: POST /payments/confirm
- 설명:
- 프론트엔드에서 토스 결제가 완료된 후, 결제 승인과 동시에 사용자 포인트를 충전하는 API
- 내부적으로 paymentFacade.confirmAndChargePoint를 호출해 결제 승인 및 포인트 충전 처리
/**
* 토스페이 결제 승인 및 포인트 충전 API
* @param request 토스페이먼츠에서 제공한 결제 정보 (paymentKey, orderId, amount)
* @param auth 인증된 사용자 정보
* @return 결제 승인 결과 (orderId, amount, method, status, approvedAt)
*/
@PostMapping("/payments/confirm")
public ResponseEntity<ApiResponse<PaymentConfirmResponse>> confirmAndChargePoint(
@Valid @RequestBody PaymentConfirmRequest request,
@AuthenticationPrincipal Auth auth) {
PaymentConfirmResult paymentConfirmResult = paymentFacade.confirmAndChargePoint(
auth.getId(),
PaymentPresentationMapper.toPaymentConfirmCommand(request)
);
return ApiResponse.success(
HttpStatus.OK,
"결제가 완료되었습니다. 포인트는 1~2분 이내로 충전될 예정입니다.",
PaymentPresentationMapper.toPaymentConfirmResponse(paymentConfirmResult));
}
테스트 방법
- 토스 결제는 테스트 코드 또는 부하 테스트가 불가능하여 실제 토스 결제를 통한 수동 테스트 수행
- 총 30회 결제 승인 및 포인트 충전 API 호출 후 응답시간 측정






























결과 분석
전체 30개 샘플 응답시간 표
| 순번 | 응답시간 | 순번 | 응답시간 | 순번 | 응답시간 |
| 1 | 644ms | 11 | 774ms | 21 | 709ms |
| 2 | 709ms | 12 | 767ms | 22 | 752ms |
| 3 | 764ms | 13 | 727ms | 23 | 712ms |
| 4 | 804ms | 14 | 733ms | 24 | 759ms |
| 5 | 857ms | 15 | 633ms | 25 | 633ms |
| 6 | 654ms | 16 | 867ms | 26 | 601ms |
| 7 | 590ms | 17 | 756ms | 27 | 731ms |
| 8 | 725ms | 18 | 757ms | 28 | 784ms |
| 9 | 754ms | 19 | 1008ms | 29 | 804ms |
| 10 | 780ms | 20 | 771ms | 30 | 733ms |
기본 통계 요약
| 항목 | 값 | 비고 |
| 총 샘플 수 | 30개 | |
| 평균 응답시간 | 738.3ms | |
| 최소 응답시간 | 590ms | 최고 성능 |
| 최대 응답시간 | 1,008ms | 유일한 1초 초과 사례 |
| 표준편차 | 약 90ms | 비교적 안정적 |
응답시간 구간별 분포 요약
| 구간 (ms) | 건수 | 비율 |
| 590–650 | 4개 | 13.3% |
| 651–700 | 4개 | 13.3% |
| 701–750 | 8개 | 26.7% |
| 751–800 | 12개 | 40.0% |
| 801–850 | 2개 | 6.7% |
| 851–1008 | 4개 | 13.3% |

'TIL' 카테고리의 다른 글
| 동기식 처리에서 비동기식 처리로 장애 격리 달성 테스트 (3) | 2025.08.07 |
|---|---|
| 비동기식 결제 승인 API의 응답속도 테스트 및 분석 (0) | 2025.08.06 |
| 트러블슈팅 - 모든 에러가 500에러? 원인은 DTO 였다.. (0) | 2025.05.23 |
| 트러블슈팅 - 전체 일정 조회 시 N+1 문제 발생 (0) | 2025.05.21 |
| 일정 관리 API 프로젝트 회고 (0) | 2025.05.14 |