예매부터 뒤풀이까지, 공연 관람의 하루를 관리하는 올인원 플랫폼
프로젝트 기간 2025.12.04 ~ 2026.01.13
- Kopis API 기반 공연 데이터 조회
- 공연 일자 / 조회수 기준 정렬
- 무한 스크롤 기반 공연 목록 제공
- 공연 검색 기능
- Redis 기반 자동완성 검색
- 공연 제목 역인덱스 구조 활용
- 조회수 기반 검색 결과 노출
외부 API를 활용하여 아티스트 정보를 수집하고 제공합니다.
사용 API
- Spotify API
- Wikidata API
- MusicBrainz API
제공 정보
- 아티스트 소개
- 인기 트랙
- 인기 앨범
- 팔로워 수 / 인기도
- 유사 아티스트
Spotify와 연동되어 앨범 클릭 시 Spotify 스트리밍 페이지로 이동합니다.
WebSocket + STOMP 기반 채팅 기능
- 실시간 채팅 메시지 송수신
- 채팅 메시지 저장 및 조회
- 채팅방 접속자 수 관리
- 채팅방 참여자 관리
Redis 활용
- Redis Stream → 메시지 저장
- Redis Set → 접속자 관리
공연 당일 일정을 관리하고 공유할 수 있는 기능
- 공연 일정 생성 및 관리
- 장소 기반 일정 계획
- 공유 링크 생성
- UUID 기반 공유 토큰
- 1일 후 자동 만료
플래너 참여자 권한 관리
권한 유형
- OWNER
- EDITOR
- VIEWER
각 권한에 따라 조회 / 수정 / 삭제 권한이 다르게 적용됩니다.
외부 지도 API 활용
사용 API
- Kakao Map API
- Kakao Mobility API
- TMAP API
제공 기능
- 공연장 주변 카페 / 맛집 검색
- 대중교통 길찾기
- 도보 / 차량 이동 시간 계산
본 프로젝트는 공연 정보 조회, 공연 일정 플래너, 커뮤니티, 채팅 기능을 중심으로 구성된 도메인 구조를 기반으로 데이터 모델을 설계하였습니다.
- Users : 사용자 정보 및 인증 관리
- Concerts : 공연 정보 및 공연 조회 데이터
- Artists : 아티스트 정보 및 외부 API 연동 데이터
- Plans : 공연 일정 플래너 및 참여자 관리
- Community : 공연 관련 게시글 및 댓글
- Chats : 실시간 채팅 및 채팅 메시지 관리
- Location : 공연장 주변 장소 및 지도 정보
ERD는 서비스의 핵심 도메인을 중심으로 관계형 데이터 구조를 설계하였으며
공연 일정 관리와 사용자 간 상호작용을 고려한 데이터 관계를 기반으로 구성되었습니다.
src
├─ main
│ ├─ java
│ │ └─ com.back.web7_9_codecrete_be
│ │ ├─ domain
│ │ │ ├─ auth
│ │ │ ├─ users
│ │ │ ├─ concerts
│ │ │ ├─ artists
│ │ │ ├─ community
│ │ │ ├─ chats
│ │ │ ├─ plans
│ │ │ └─ location
│ │ ├─ global
│ │ │ ├─ config
│ │ │ ├─ security
│ │ │ ├─ error
│ │ │ ├─ redis
│ │ │ ├─ scheduler
│ │ │ └─ websocket
│ │ └─ Web79CodecreteBeApplication
│ └─ resources
│ └─ application.yml
이 프로젝트는 MySQL 8.0과 Redis 7.2를 Docker Compose로 실행합니다.
.env 파일 생성
MYSQL_PORT=3306
MYSQL_ROOT_PASSWORD=root
MYSQL_DATABASE=concert
MYSQL_USER=user
MYSQL_PASSWORD=password
REDIS_PORT=6379
docker compose up -d
docker ps
| Container | Service |
|---|---|
| concert-mysql | MySQL 8.0 |
| concert-redis | Redis 7.2 |
docker compose down

