File tree Expand file tree Collapse file tree 1 file changed +39
-0
lines changed
docs/adr/performance-test Expand file tree Collapse file tree 1 file changed +39
-0
lines changed Original file line number Diff line number Diff line change 1+ ## 목표 TPS 산정 근거
2+
3+ + 배경 : 성능 테스트의 합격 기준을 정의하기 위해 목표 TPS 산정이 필요, 실측 트래픽 데이터가 없는 사이드 프로젝트 특성상 가정 기반 역산 방식을 채택
4+ + 목표 TPS 산정
5+ - DAU 1만명 * 1인당 평균 요청 10회 = 일 10만건
6+ - 피크 집중률 20% : 1시간 집중
7+ + 100,000 * 0.2 / 3600 = 5.6 TPS
8+ - 여유율 3배 적용
9+ + 가정 기반 역산이라 불확실성이 높아 보수적으로 3배 적용
10+ + 17 TPS
11+ + 인프라 스펙 및 이론상 최대치, 역할 분류
12+ - EC2
13+ + t3.micro
14+ - RDS
15+ + db.t4g.micro
16+ + HikariCP 기본값 10개 사용
17+ - 평균 쿼리 실행시간 30ms (JPA 쿼리 로그 실측값)
18+ - 이론 최대 300 TPS
19+ - 목표 TPS는 달성 가능한 수치
20+ - ElastiCache
21+ + Redis
22+ + 역할 분류
23+ - 필수 I/O (캐시아님)
24+ + JWT 블랙리스트
25+ - 로그아웃 토큰 관리, TTL 10분
26+ - 인증요청마다 Redis 조회
27+ + 주문 만료 관리
28+ - 만료 주문 재고 방출 및 주문 취소 처리
29+ - 1분 주기로 스케쥴러가 RDS + Redis 접근
30+ + 결제 재시도
31+ - 실패 결제 주기적 재시도
32+ - 1분 주기로 스케쥴러 동작
33+ + 평점 집계
34+ - RDS 트랜잭션 동시성 문제 회피를 위해 Redis 원자적 연산 사용
35+ + 스케쥴러가 테스트에 미치는 영향
36+ - 주문 만료, 결제 재시도 스케쥴러가 1분 주기로 실행되어 테스트 중 반복적으로 동작한다. 스케쥴러 실행 구간에서 응답시간 스파이크가 발생할 수 있지만 실제 운영 환경과 동일한 조건이므로 포함한 상태로 측정한다
37+ + 테스트 환경 제약
38+ - Artillery 로컬 실행 > AWS 서울 리전 구성으로 네트워크 레이턴시 포함
39+ - 응답시간 수치에 영향을 미칠 수 있음을 감안
You can’t perform that action at this time.
0 commit comments