지갑 잔액 차감 동시성 제어 및 락(Lock) 실험
·
DB
실험 조건 및 가설테스트 대상 도메인: 토스 실시간 간편 결제 플랫폼 시나리오 (지갑 잔액 차감 및 결제 이력 적재)실험 엔티티 구조: 하나의 트랜잭션 내에서 Wallet WalletOptimistic 잔액 차감(UPDATE) 후, PaymentHistory 내역 생성(INSERT) 수행최초 지갑 잔액: 10,000원동시 요청 수: 100개 (32개 고정 스레드 풀 FixedThreadPool 활용)회당 차감 금액: 100원 (총 10,000원 차감 시도)본 실험에서 검증하고자 하는 '데이터 정합성(Data Integrity)'은 단순히 "모든 요청이 에러 없이 성공하여 잔액이 0원이 되었는가"가 아닙니다.대규모 동시성 트래픽 속에서 락으로 인해 실패할지언정, 사용자가 확인한 성공 결과(결제 내역)와 실..
MySQL 복합 인덱스로 빠른 조회 및 Using filesort 정렬 부하 해결하기
·
DB
1. 실험 개요목적: 결제 히스토리 테이블에서 특정 조건 조회 시, 인덱스 유무 및 인덱스 구성 방식에 따른 성능 변화를 측정하고 최적의 인덱스 전략을 확인합니다.대상 테이블: payments_v1데이터 스케일: 총 1,000,000 건 (100만 건)실험 환경: Docker MySQL 8.x / Spring Boot 통합 테스트 환경 2. 테스트 시나리오비즈니스 요구사항"특정 유저가 지정한 특정 기간 동안 결제에 성공(SUCCESS) 한 내역 중, 카드(CARD) 결제 건만 최신순(created_at DESC) 으로 화면에 노출합니다." 3. 성능 측정 결과 요약 (Benchmark)실험 단계소요 시간 (ms)소요 시간 (초)성능 개선율비고Case 1: No Index294 ms0.294 초기준점 (..