Spring 개발일지

[팀 프로젝트]MSA 기반 티켓팅 서비스 설계 및 도메인 분리 (프로젝트 기획 정리)

김둘리 2026. 4. 17. 10:00

1. 프로젝트 개요

 프로젝트 주제

공연, 전시, 스포츠 등 다양한 프로그램을 대상으로 하는
온라인 티켓 예매 서비스

프로젝트 목표

비즈니스 목표

  • 안정적인, 끊김 없는 예매 서비스 제공
  • 프로그램 조회부터 결제까지의 전체 흐름 지원
  • 좌석 기반 / 비좌석 기반 프로그램 모두 지원
  • 예매 완료 시 사용자 알림 제공

기술 목표

  • MSA 기반 서비스 분리
  • Kafka 기반 이벤트 처리
  • Redis를 활용한 동시성 제어 및 대기열 시스템
  • 대용량 트래픽 대응 (JMeter)
  • Docker-compose 기반 서비스 독립 배포
  • 모니터링 및 장애 대응 체계 구축

2. 도메인 설계 방향

초기에는 공연, 전시, 스포츠 등을 “이벤트(Event)”로 묶으려 했으나
개발에서 사용하는 이벤트(Kafka, Spring Event)와 혼동 가능성이 있어

“Program” 도메인으로 통합 설계


3. 핵심 도메인 구조

Program → Schedule → Seat → Reservation → Payment → (Notification)

티켓팅 서비스의 핵심 흐름을 기준으로 설계


4. 서비스 기능 정의 

사용자

  • 회원가입 / 로그인 (JWT)
  • 사용자 정보 조회
  • 예매 내역 조회

 인증

  • JWT 토큰 발급 및 검증
  • 로그인 / 로그아웃
  • (확장) OAuth2 소셜 로그인

 프로그램

  • 프로그램 목록 조회 / 검색 / 필터링
  • 프로그램 상세 조회
  • 회차(Schedule) 관리
  • 프로그램 상태 관리

예매

  • 좌석 선택 / 수량 선택
  • 좌석 선점 (TTL 기반)
  • 예매 생성 및 상태 관리
  • 예매 취소

동시성 제어 핵심 영역


결제

  • 결제 요청 및 승인 처리
  • PG사 콜백 기반 검증
  • 결제 성공 / 실패 처리
  • 실패 시 좌석 롤백

좌석

  • 좌석 배치도 조회
  • 좌석 상태 관리 (AVAILABLE / RESERVED / SOLD)
  • 좌석 선점 및 해제

Redis 기반 동시성 제어 적용


 대기열

  • 인기 프로그램 예매 시 대기열 진입
  • 순번 기반 입장 처리
  • TTL 기반 자동 만료

트래픽 제어 핵심 기능


알림

  • 예매 완료 / 실패 알림
  • Kafka 기반 비동기 처리

5. 기능 설계 전략 

초기에는 다양한 기능을 고려했지만
백엔드 프로젝트 특성상 다음과 같은 전략을 선택했다.

 

- 제외 또는 후순위 기능

  • 리뷰
  • 쿠폰
  • 추천 시스템
  • 고급 검색

- 핵심 집중 영역

  • 좌석 선점 및 동시성 처리
  • 대기열 시스템
  • Kafka 이벤트 흐름
  • MSA 구조 설계

6. MSA 서비스 분리 전략

서비스를 도메인 단위로 분리하여 구성

  • User / Auth Service
  • Program Service
  • Seat Service
  • Reservation Service
  • Payment Service
  • Notification Service

서비스 간 결합도를 낮추고 독립적인 확장 가능