[한화시스템 BEYOND SW캠프 12기] Final Project
🧑🏻🌾 CATCHER 파수꾼 팀 🍇
![]() |
![]() |
![]() |
![]() |
팀장: 김혜정 | 팀원: 곽효림 | 팀원: 김지원 | 팀원: 정지수 |
- 🛠 기술 스택
- 📚 GrapeField 데모 사이트 링크
- 🎨 GrapeField 서비스 소개
- 🏗️ 시스템 아키텍처
- 📚 백엔드 프로젝트 목표
- 📈 프로젝트 설계
- 🚀 핵심 로직 상세 설명
- 📂 프로젝트 폴더 바로가기
아이디 | [email protected] |
비밀번호 | 1234 |
[email protected]
~ [email protected]
중에서 숫자를 바꾸어 아이디로 사용 가능
코로나 팬데믹 이후 오프라인 공연 및 전시회에 대한 수요가 급증하면서 관련 행사들이 활발히 개최되고 있다. 특히 기업, 기관의 홍보 담당자들은 브랜드 홍보 및 고객 접점을 확대하기 위한 전략으로 공연이나 박람회와 같은 오프라인 행사를 적극적으로 유치하거나 후원하고 있다.
그러나 기존 정보는 개별 사이트나 SNS를 통해 확인해야 하며, 후기를 확인하거나 공유하는 과정이 번거롭다.
이러한 불편함을 해소하기 위하여 오프라인 문화 콘텐츠에 대한 정보 제공뿐만 아니라,
이용자들이 직접 참여하여 실시간으로 소통하고 후기를 나눌 수 있으며,
이러한 정보들이 축적되는 정보 통합 플랫폼 GrapeField 를 기획하였다.
정보 아카이빙
: 채팅을 포함한 이용자 후기를 저장하여 시간이 지나도 휘발되지 않는 정보를 제공하며, 공연/전시의 실질적인 평가와 분위기를 나중에도 참고할 수 있도록 지원한다.커뮤니티 형성
: 콘텐츠별 전용 채팅방과 댓글 기반 소통 기능을 통해 비슷한 관심사를 가진 사용자들이 자연스럽게 교류하고, 함께 정보를 나누는 커뮤니티 문화를 조성한다.통합된 정보 제공
: 흩어진 예매 일정, 장소, 출연진 정보 등을 하나의 플랫폼에서 제공하고, 향상된 검색 기능과 일정 캘린더를 통해 사용자의 정보 탐색 효율을 극대화한다.실시간 소통
: 공연 관람 전후로 즉각적인 피드백을 주고받을 수 있는 채팅 기능과 하트/하이라이트 등의 실시간 반응 시스템을 통해 현장감 있는 사용자 경험을 제공한다.
Information
- #문화_콘텐츠_통합_정보 #통합_검색 #지난_공연_후기_아카이브
- 뮤지컬, 연극, 콘서트, 전시회, 클래식 등 다양한 오프라인 문화 콘텐츠에 대한 예매 정보, 상연 일정, 출연진, 세부 줄거리 등 상세한 정보를 제공한다.
Calendar
- #예매일정_통합_제공 #예매일정_알림_기능
- 예매처별로 나누어진 공연 및 전시 일정을 플랫폼 내에서 통합하여 확인할 수 있으며, 개별 사이트를 방문하지 않고도 손쉽게 일정을 관리할 수 있다. 또한 개인 일정을 등록하여 함께 관리하는 기능도 지원하여 사이트에서 놓친 일정도 문제 없이 관리할 수 있다.
Chat
- #문화콘텐츠별_단독_채팅방 #실시간_소통_제공
- 공연/전시 각각 개별로 실시간 채팅 기능을 제공하여 그를 주제로 이용자 간 즉각적인 소통이 가능하다. 관람 전 궁금한 사항을 묻거나, 관람 후 소감을 나누는 등 실시간 커뮤니케이션을 통해 현장의 분위기를 함께 느낄 수 있다.
Archive
- #후기 #통합정보 #채팅기록 #모두_영구_보관
- 공연/전시 각각 개별로 실시간 채팅 기능을 제공하여 그를 주제로 이용자 간 즉각적인 소통이 가능하다. 관람 전 궁금한 사항을 묻거나, 관람 후 소감을 나누는 등 실시간 커뮤니케이션을 통해 현장의 분위기를 함께 느낄 수 있다.
데이터베이스 설계 및 구축
: 정규화 및 무결성을 고려한 효율적인 DB 구조 설계RESTful API 개발
: 일관성 있는 URL 설계와 HTTP 메서드를 활용한 API 구현보안 강화
: 인증·인가(JWT, OAuth 등), 데이터 암호화 및 보안 정책 적용서버 성능 최적화
: 캐싱(Redis 등), 비동기 처리, 트래픽 분산 등 확장성 있는 서버 구조 설계로그 및 모니터링 시스템 구축, 부하분산 확인
: ELK(Stack), Loucst, Jmeter 등을 활용한 시스템 진단 및 유지보수 용이성 확보고성능 채팅 시스템 구축
: Kafka Ecosystem 을 구축하여 채팅 기능의 고가용성 보장
공연/전시
사용자는 공연/전시인 이벤트의 목록을 확인할 수 있다.
공연/전시 목록의 응답
사용자는 공연/전시인 이벤트의 상세정보를 확인할 수 있다.
상세정보 조회 성공 시 응답
- 사용자는 공연, 전시 인 콘서트, 뮤지컬, 연극, 전시회, 클래식의 카테고리를 통해 이벤트의 시작일, 예매일, 종료일, 포스터, 상세정보, 출연진을 확인할 수 있다.
- 출연진의 정보 조회도 가능하며, 이벤트(공연/전시) 상세정보 페이지에는 게시판, 한줄평을 확인할 수 있다.
- 공연/전시 게시판은 JWT 인증 기반 권한 관리를 통해 로그인한 사용자만 작성이 가능하다.
채팅
사용자는 채팅방에 입장해 메시지를 입력하고 전송합니다.
채팅이 성공적으로 전송되었을 때 반환되는 응답
사용자는 채팅방에 입장해 특정 채팅방의 채팅방 내용을 확인합니다
채팅방 데이터가 성공적으로 불러와질 때 반환되는 응답
- 사용자는 공연/전시 상세 페이지 또는 전체 채팅방 목록에서 실시간 채팅을 통해 관람자들과 자유롭게 소통할 수 있다.
- 채팅 중에는 하트(❤️) 전송이 가능하며, 사용자 반응을 기반으로 실시간 분위기를 형성할 수 있다.
- 특정 채팅방에서 하트 수가 일정 기준 이상을 넘으면, 해당 채팅방은 인기 채팅방으로 선정되어 메인 화면 상단에 노출된다.
- 메시지 및 하트 발생량을 Kafka Streams + REDIS로 분석하여 하이라이트 구간이 자동으로 감지
- 하이라이트 발생 시, 프론트엔드에 실시간으로 하이라이트 표시가 전송되며,
- 동시에 해당 구간의 채팅 내용을 바탕으로 외부 AI API를 통해 요약 키워드가 추출되어 화면에 함께 표시된다.
통합 검색
차은우를 생각하고 초성으로 'ㅊㅇㅇ' 를 검색
초성 검색 시의 응답
- 상단 헤더의 검색창에 키워드를 입력하면, Elasticsearch 기반 통합 검색이 실시간으로 작동한다.
- 예를 들어 "차은우"를 입력하면, 차은우가 포함된 공연/전시/게시물 제목 등이 검색어 아래에 자동완성 형태로 추천된다.
- 검색 결과는 이벤트 제목, 내용, 날짜, 카테고리 등 복합 조건으로 필터링 가능하며,
- 관련도가 높은 결과가 상단에 우선 배치된다.
- 또한 게시글, 한줄평 등 통합 검색으로 기능이 작동하여 통합 검색결과를 확인 할 수 있다.
캘린더
사용자는 예매 오픈일, 공연일, 전시일 등 사용자가 이벤트 전체 캘린더에서 확인
공연,전시 캘린더 응답
사용자는 마이페이지의 개인 캘린더에서 일정을 등록
등록 성공 시 응답
사용자는 등록한 일정을 확인
조회 성공 시 응답
- 예매 오픈일, 공연일, 전시일 등 일정 정보가 일정 캘린더에 통합되어 표시된다.
- 또한 마이페이지의 캘린더에서 공연 일정, 예매 일정, 개인 일정까지 하나의 UI에서 통합 관리할 수 있다.
- 공연/전시 상세정보 페이지에서 관심 일정을 등록하면 자동 알림을 받을 수 있으며, 예매 오픈일이나 공연/전시 일정에 대해 알림을 받을 수 있다.
- 마이페이지의 개인 일정 등록 시 자동 알림을 받을 수 있다.
- 예매 오픈 알림은 WebSocket 및 이메일, 실시간 알림을 통해 전달된다.
- 확인은 메인페이지 헤더의 알림창 부분에서 확인이 가능하다.