Skip to content

Yeon6v6/ConcertReservationService

Repository files navigation

콘서트 좌석 예약 시스템 🎫


🗂️ 프로젝트 소개 (GitHub Repository)

콘서트 좌석 예약 과정에서 발생할 수 있는 동시성 문제트래픽 집중을 해결하기 위해 설계한 백엔드 시스템입니다.
대기열 관리, 좌석 선점, 예약/결제 처리까지 안정적이고 일관성 있는 서비스를 제공하는 것을 목표로 했습니다.


📌 주요 기능

  1. 좌석 예약 관리 모듈
    • 사용자가 예약 가능한 날짜와 좌석 정보를 조회
    • 좌석 예약 요청 및 임시 배정을 통해 결제 전까지 자리를 확보
    • 예약 취소 및 임시 배정 해제 처리
  2. 대기열 관리 모듈
    • 유저의 대기열 상태를 확인하고 토큰을 발급
    • API 호출 시 대기열 검증을 통해 서비스 접근 제어
  3. 잔액 및 결제 모듈
    • 사용자 잔액 충전 및 조회
    • 좌석 결제 처리 및 결제 내역 생성
    • 결제 완료 시 좌석 소유권 확정 및 대기열 토큰 만료 처리

🛠 기술 스택

  • 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로 모니터링 환경 구축

🚀 설정 및 실행

Docker Containers 실행

docker-compose up -d

부하 테스트를 위한 k6 / influxdb / grafana 추가 시 빌드 필요

docker-compose up --build
# k6 실행
docker-compose up k6

About

콘서트 예약 서비스

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors