From 3d0d3dc5ee79c3d29c599b23ce67bc8b9ef06510 Mon Sep 17 00:00:00 2001 From: jeongyong Date: Fri, 25 Jul 2025 22:03:49 +0900 Subject: [PATCH] =?UTF-8?q?docs:=20=EB=B6=80=ED=95=98=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EA=B3=84=ED=9A=8D=20=EB=AC=B8=EC=84=9C=20=EC=9E=91?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...4\355\212\270_\352\263\204\355\232\215.md" | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 "docs/loadTest/1_\353\266\200\355\225\230\355\205\214\354\212\244\355\212\270_\352\263\204\355\232\215.md" diff --git "a/docs/loadTest/1_\353\266\200\355\225\230\355\205\214\354\212\244\355\212\270_\352\263\204\355\232\215.md" "b/docs/loadTest/1_\353\266\200\355\225\230\355\205\214\354\212\244\355\212\270_\352\263\204\355\232\215.md" new file mode 100644 index 0000000..29e5714 --- /dev/null +++ "b/docs/loadTest/1_\353\266\200\355\225\230\355\205\214\354\212\244\355\212\270_\352\263\204\355\232\215.md" @@ -0,0 +1,28 @@ +# 콘서트 예약 서비스 - 부하 테스트 계획 보고서 + +## 부하 테스트 목적 + +- 시스템이 예상되는 부하를 정상적으로 처리할 수 있는지 평가 +- 특정한 부하를 제한된 시간 동안 제공해 이상이 없는지 파악 + +## 대상 선정 및 선정 이유 +| 테스트 대상 | 테스트 이유 | 기대 효과 | +| ------------- |----------------------------------------------------------------------| ------------------------------- | +| **포인트 충전 / 사용 API** | 실시간 예매 시 사용자 수백~수천 명이 포인트를 동시에 사용
→ 동시성 제어와 DB 정합성 확인 | 동시 처리 상황에서 포인트 충돌 및 음수 잔액 방지 확인 | +| **대기열 진입 API** | 예매 시작과 동시에 수천 건 이상 대기열 진입 요청
→ Redis ZSet 순번 부여/상태 전환 로직 부하 확인 | 대량 트래픽 상황에서 순번 충돌 방지 및 응답 시간 유지 | +| **좌석 예약 API** | 동일 좌석을 여러 유저가 동시에 선택할 수 있음
→ Redis 분산락 기반 중복 방지 로직 점검 | 중복 예약 방지 및 동시성 처리 성능 검증 | + +## 부하 테스트 시나리오 +| 기능 | 테스트 시나리오 | 목표 TPS | 중점 검증 항목 | +| --------- |--------------------------------| ----------- | ----------------------- | +| 포인트 충전/사용 | 다수의 유저가 포인트를 동시에 충전하고 사용 | 200 TPS | 음수 잔액 발생 여부, 처리 실패율 | +| 대기열 진입 | 1,000명의 유저가 예매 시작 시 동시에 대기열 진입 | 500 TPS | ZSet 순번 중복/누락 여부, 처리 지연 | +| 좌석 예약 | 동일 좌석에 대해 수백 명이 동시에 임시 예약 요청 | 100~300 TPS | 분산락 적용 여부, 중복 예약 방지 | + + +## 테스트 도구 및 인프라 구성 +- 도구: Apache JMeter (Apache 의 성능 테스팅 툴) +- 서버 환경: + - Spring Boot + - Redis + - MySQL \ No newline at end of file