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
서비스 간 결합도를 낮추고 독립적인 확장 가능
'Spring 개발일지' 카테고리의 다른 글
| [팀프로젝트] MSA 기반 티켓팅 프로그램 - 결제 도메인 설계 및 API 구조 정리 (1) | 2026.04.20 |
|---|---|
| [팀프로젝트] MSA 기반 티켓팅 프로그램 - 결제 도메인 (1) | 2026.04.18 |
| [개인 프로젝트] 성능테스트 준비 (1) | 2026.04.16 |
| [TIL] 프로젝트 개발 기술 키워드 정리 (0) | 2026.04.15 |
| [개인 프로젝트] Notification Service + Slack 알림 연동 (0) | 2026.04.14 |