예매했냥
예매 일정 놓침 방지와 예매 내역 관리, 관극 일정 관리까지 지원하는 All-in-One 공연 일정 플랫폼

Overview
예매 일정 놓침 방지와 예매 내역 관리, 관극 일정 관리까지 지원하는 All-in-One 공연 일정 플랫폼입니다. 파편화된 공연/뮤지컬 정보로 인해 불편함을 겪고 있는 2030 여성들을 타겟으로 개발했습니다.
Key Features
- JWT 기반 Access/Refresh Token 분리 인증 시스템
- Object Storage(MinIO) 기반 이미지 리소스 처리
- Firebase FCM 기반 실시간 푸시 알림
- Redis 캐싱을 통한 디바이스 토큰 O(1) 조회
- OCR 기반 티켓 자동 등록 및 관리
- 공연 정보 통합 관리 및 올인원 캘린더
Problem
파편화된 공연/뮤지컬 정보로 인해 불편함을 겪고 있는 2030 여성들이 많았습니다. 공연 정보 서비스를 제한된 시간 내에 완성도 있게 구축해야 했고, 이미지 리소스 처리로 인한 성능 문제가 주요 과제였습니다.
Challenges & Solutions
Challenges
- 외부 URL 이미지 호출로 인한 평균 11.4초 페이지 로딩 지연 및 외부 서버 의존성
- JPA Fetch Join 시 1:N 관계에서 페이지네이션 Count 쿼리 중복 계산 문제
- RDB에서 디바이스 토큰 매번 조회 시 빈번한 I/O 발생
Solutions
- MinIO 도입으로 외부 리소스를 자체 서버로 Migration, 이미지 렌더링 시간 11.4초 → 3.4초 (70% 개선). WEBP 변환 및 리사이징으로 용량 90% 감소
- 데이터 조회와 개수 계산 로직 분리 - 공연 ID 개수만 카운팅하는 쿼리 별도 작성, Fetch Join 유지하면서 페이지네이션 정합성 확보
- Redis에 memberId-Device Token 매핑 저장으로 O(1) 속도 토큰 즉시 조회, 지연 없는 실시간 푸시 알림 환경 구축
Outcomes
- 1.
SSAFY 프로젝트 우수상(3등) 수상
- 2.
페이지 로딩 체감 성능 70% 개선 (11.4초 → 3.4초)
- 3.
이미지 용량 90% 감소 (WEBP 변환 + 리사이징)
- 4.
Redis 캐싱으로 O(1) 속도의 토큰 조회 환경 구축
Approach & My Role
JWT 기반 Stateless 인증 시스템 구축 - Access/Refresh Token 분리 발급으로 서버 세션 저장소 부하 감소 및 토큰 탈취 위험 최소화. Spring Security 기반 인증 필터 구현
MinIO Object Storage 도입 - S3 호환 스토리지로 외부 이미지 리소스를 자체 서버로 Migration. 이미지가 서버를 거치지 않고 클라이언트에게 직접 전송되도록 구성
Firebase FCM + Redis 실시간 알림 - FCM으로 예매/공연 일정 푸시 알림 구현. Redis에 디바이스 토큰 캐싱하여 O(1) 속도로 즉시 조회
2030 타겟 UI/UX 설계 - Figma 프로토타입 제작, 백엔드 친화적인 API Endpoint 및 데이터 구조 정의
What I Learned
Object Storage 도입이 서비스 성능에 미치는 영향 - 외부 의존성 제거 및 I/O 부하 분리
JPA Fetch Join과 페이지네이션의 주의점 - 1:N 관계에서 Count 쿼리 분리 필요성
Redis 캐싱 전략 - 빈번한 조회 데이터의 캐싱을 통한 성능 최적화
이미지 최적화 기법 - 포맷 변환(WEBP) 및 리사이징을 통한 용량 감소