diff --git a/README.md b/README.md index 8d7a086..41dfb63 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,89 @@ -# nullnullTicket -내일배움캠프 티케팅사이트만들기(2025.05.16~2025.05.26) +# NullNull Ticket + +인터파크 티켓을 벤치마킹한 **웹 기반 티켓 예매 서비스**입니다. +사용자는 공연 정보를 조회하고 원하는 좌석을 직접 선택하여 예매할 수 있으며, +관리자는 공연장, 공연 및 회차 정보를 등록 및 관리할 수 있습니다. + +## 주요 기능 + +### 사용자 기능 +- 공연 조회 및 회차 확인 +- 좌석 선택 및 티켓 예매 +- 예매 내역 조회 및 취소 +- 카카오 소셜 로그인 + +### 관리자 기능 +- 공연장 및 공연 등록 +- 공연 회차 관리 +- 좌석 정보 등록 및 수정 + +### 시스템 특징 +- 동시성 제어: 낙관적 락(`@Version`)으로 안정적인 좌석 예매 +- 캐싱 전략: Redis로 공연 정보 캐싱, 조회수 초기화 스케줄링 +- 대기열 관리: Redis ZSet 기반 큐 시스템 +- CI 자동화: GitHub Actions로 빌드 및 테스트 자동화 + +--- + +## 와이어프레임 +-![와이어 프레임](images/wireframe.png) + +--- + +## ERD & API 명세 +-![ERD](images/erd.png) + +-[API 명세서](https://www.notion.so/teamsparta/6-1e52dc3ef51480adbe2cc285458c44e2#1e52dc3ef514818e9226ed34c1f3563d) + +--- + +## 기술 스택 + +| 항목 | 사용 기술 | +|------------|-----------| +| Backend | Spring Boot, JPA, Spring Security | +| DB | MySQL | +| Cache | Redis | +| CI/CD | GitHub Actions | +| Auth | JWT, Kakao OAuth | + +--- + +## 시연 영상 +[시연 영상 보기](#) + +--- + +## 트러블슈팅 요약 + +### 1. 동시성 제어 +- 문제: 같은 좌석을 여러 사용자가 동시에 예매할 경우 충돌 +- 해결: Redisson 기반 분산락 + AOP 적용 + +### 2. Redis 캐싱 최적화 +- 문제: 공연/회차 조회시 성능 저하 +- 해결: Redis 캐시 도입 → 조회 시간 75% 단축 + +--- + +## 팀원 소개 + +| 이름 | 역할 | +|--------|------| +| 오동원 | 결제 시스템, CI 환경 구축 | +| 임지윤 | 인증/인가, 소셜 로그인 | +| 김채진 | 예매 로직 및 데이터 관리 | +| 이희망 | 캐싱, 공연 조회 API | +| 이수빈 | 좌석 및 회차별 좌석 상태, 예매 시스템 | + +--- + +## 프로젝트 기간 +2025.05.16 ~ 2025.05.26 + +--- + +## Contact +- Email: hello@nullnullticket.com +- Notion, Figma, Wiki 등 협업 자료 링크: [공유 필요 시 추가] + diff --git a/images/erd.png b/images/erd.png new file mode 100644 index 0000000..41060dc Binary files /dev/null and b/images/erd.png differ diff --git a/images/wireframe.png b/images/wireframe.png new file mode 100644 index 0000000..be9d287 Binary files /dev/null and b/images/wireframe.png differ