콘서트 좌석 예약 과정에서 발생할 수 있는 동시성 문제와 트래픽 집중을 해결하기 위해 설계한 백엔드 시스템입니다. 대기열 관리, 좌석 선점, 예약/결제 처리까지 안정적이고 일관성 있는 서비스를 제공하는 것을 목표로 했습니다.
좌석 예약 관리 모듈
사용자가 예약 가능한 날짜와 좌석 정보를 조회
좌석 예약 요청 및 임시 배정을 통해 결제 전까지 자리를 확보
예약 취소 및 임시 배정 해제 처리
대기열 관리 모듈
유저의 대기열 상태를 확인하고 토큰을 발급
API 호출 시 대기열 검증을 통해 서비스 접근 제어
잔액 및 결제 모듈
사용자 잔액 충전 및 조회
좌석 결제 처리 및 결제 내역 생성
결제 완료 시 좌석 소유권 확정 및 대기열 토큰 만료 처리
Back : Spring Boot, Java 17+, MySQL
통신 방식: RESTful API
Messaging: Kafka
Cache & Lock: Redis
Test: JUnit, K6
Monitoring: Prometheus, Grafana
Infra: Docker Compose
Redis 기반 대기열 시스템을 구현하여 순간적인 트래픽에도 안정적 처리
좌석 예약 시 분산락을 적용해 동시성 문제 방지
Redis 캐시 + 인덱스 최적화로 DB 부하 감소 및 조회 성능 향상
K6 부하 테스트로 성능 검증, Prometheus + Grafana로 모니터링 환경 구축
부하 테스트를 위한 k6 / influxdb / grafana 추가 시 빌드 필요
Last updated 5 months ago
docker-compose up -d
docker-compose up --build # k6 실행 docker-compose up k6