Skip to content
@Trinity-goorm

Trinity-catch-ping

식당 예약 서비스 개발 프로젝트 입니다.

Catch-Ping

iScreen Shoter - Preview - 250406213238

  • Catch-Ping은 사용자 맞춤형 식당 추천과 효율적인 예약 및 알림 서비스를 제공하는 스마트 다이닝 플랫폼입니다.
  • AI 추천 시스템과 성능 최적화를 통해 고객에게 최고의 사용자 경험을 제공합니다.
  • 식당 예약 서비스캐치테이블 클론 프로젝트입니다.

프로젝트 소개

  • 주요 기능
    • 식당 검색 및 예약: 원하는 키워드로 쉽고 빠르게 식당 검색 및 예약 가능
    • 개인화된 AI 추천: 사용자 선호도와 식당 특성을 반영한 맞춤형 식당 추천
    • 알림 시스템: 예약 상태 및 빈자리 발생 시 실시간 알림 발송

팀원 소개

이름 역할 담당 R&R
김민철 팀장, Backend 알림 기능, 온보딩 기능
이민우 Backend 예약 기능, 데이터 삽입
신우성 Backend 검색 기능, 식당 관련 기능
한주리 Frontend 홈화면, 식당 상세 + 예약 페이지
정채헌 Frontend 회원 기능, 온보딩, 검색 화면, 알림기능
김대현 Cloud/AI 인프라 설계 & 구축, 식당 추천 기능

기술 스택

Category Tech
Backend Spring Java MySQL Redis MongoDB
Frontend React JavaScript Tanstack Query TailWind CSS Styled Components
Cloud & Infra AWS Amazon EC2 Amazon ECS Amazon S3 Amazon RDS GitHub Actions Docker Prometheus Grafana
AI FastAPI Python Hybrid Recommendation System Scikit-learn Pandas numpy

타임라인

  • 관리 툴: JIRA를 통한 기능 개발 타임라인 관리
    image

팀 산출물


기능 소개

1. 회원관리 기능

  • 로그인: 카카오 소셜로그인을 통한 로그인 및 첫 로그인 시 온보딩(성별, 전화번호, 선호 카테고리) 진행
  • 마이페이지: 회원 예약 리스트, 빈자리 알림 리스트 반환 및 CRUD

2. 예약 기능

  • 예약 선점: 결제 전 6분간 선점 상태 → 좌석 차감 및 예약 우선권 확보
  • 예약 선점 취소 & 확정: 선점 상태 취소(뒤로가기, 결제 취소) 및 확정 시 티켓 차감
  • 예약 취소: 예약 완료 후 취소 시 티켓 반환 여부 정책 적용
  • 티켓/좌석 증감 정책:
    구분 좌석 증감 티켓 증감 예약 상태
    예약 선점 -1 X IN_PROGRESS
    예약 선점 취소 +1 X CANCELED
    예약 확정 X -10 COMPLETED
    예약 취소 X +10 또는 X CANCELED

자세한 내용은 예약 기능 전체 플로우를 참고하세요.

3. 알림 기능

  • 예약 리마인더: 예약 확정 시 이벤트 발행, 매일 08시 및 예약 1시간 전 알림 발송
  • 빈자리 알림: 예약 취소 시 빈자리 발생 시 신청자에게 알림 발송
    • 티켓 정책: 월별 빈자리 알림 티켓 10개 제공
  • 예약 확인/취소 알림: 예약 완료/취소 시 FCM 서버를 통한 알림 전송 및 히스토리 저장

4. 추천 기능

  • 추천 정책:
    • 사용자 데이터(선호 카테고리, 가격대, 검색, 찜, 예약 내역)와 식당 데이터(평점, 리뷰수, 편의시설 등)를 종합해 개인화된 식당 추천 제공
    • 협업필터링 기반 추천 방식(CF)

5. 검색 기능

  • 검색 정책:
    • 카테고리(한식, 중식, 일식 등 12종) 및 키워드 기반 검색 (식당 이름, 메뉴명 포함)
    • 별점순, 가격순(높은/낮은) 정렬 지원
    • 최적화 필요 (LIKE 검색 → Full Table Scan 문제 등)

프론트엔드 2차 개선사항

테스트

  • 테스트 도구: Jest + React Testing Library
  • 주요 테스트 케이스:
    • 식당 선점 중복 예약 방지
    • 예약 가능 좌석 조회 정확도
    • 선점 시간 종료 후 예약 취소
    • 예약 확정 및 결제 후 예약 리스트 추가 확인
    • 빈자리 알림 기능 (푸시 알림 등록 및 제거)

성능 최적화

  • 식당 리스트 페이지 최적화:
    • 반복 컴포넌트 렌더링 최적화 (React.memo, useMemo)
    • 이미지 Lazy Loading 적용
    • 무한 스크롤 시 디바운스로 API 호출 최적화
  • 식당 상세 페이지 최적화:
    • 복잡한 컴포넌트 계층 구조 개선
    • “좋아요(찜)” 버튼 클릭 시 불필요한 리렌더링 방지 (React.memo, useCallback)
    • 상태 관리 라이브러리(Zustand, Recoil, React Query 등) 비교 후 적용
  • 성능 분석 도구 활용:
    • React Profiler API, why-did-you-render
    • Lighthouse & Web Vitals (LCP, FID, CLS 등) 기반 성능 목표 설정

백엔드 2차 개선사항

  • 예약 선점 시 동시성 문제:
    • 동시 예약 충돌 해결을 위해 비관적 락, Redis 분산 락 및 큐 시스템 고려
  • 대량의 예약가능 데이터 삽입:
    • 매월 66,000건 이상의 데이터 삽입 → DB 파티셔닝 및 배치 처리(JPA Batch, EntityManager.persist() 활용)
  • 대량 알림 발송:
    • FCM의 sendEachForMulticast 등 비동기 메서드 활용 및 배치 처리
    • 알림 데이터 관리를 위해 NoSQL/Redis 캐시, pub/sub 적용
  • 식당 조회 및 검색 최적화:
    • 서브쿼리, 불필요한 JOIN 연산 제거 및 LIKE 검색 최적화 방안 적용 (Levenshtein, ElasticSearch 등)

AI 2차 개선사항

  • 추천 피드 반환 시간 단축:
    • 기존 앙상블 기법 → 회귀 방식 전환 검토 (30초~1분 소요 문제 개선)
  • 다양한 Feature 활용:
    • 선호 가격대, 검색, 예약/찜 내역 등 추가 변수 도입으로 추천 모델 개선

클라우드 2차 개선사항

  • Redis 고가용성: Sentinel vs. Cluster 구성 검토
  • 성능 모니터링: CloudWatch 또는 Prometheus & Grafana 활용
  • 로그 및 데이터 관리: 로그 수집 및 Elastic Search 적용 고려
  • 인프라 고가용성: 현재 하나의 가용영역(ap-northeast-2a) → 다중 가용영역(ap-northeast-2b)으로 확장 및 로드밸런서 연결

License

이 프로젝트는 MIT 라이선스를 따릅니다.

Popular repositories Loading

  1. demo-repository demo-repository Public

    A code repository designed to show the best GitHub has to offer.

    HTML

  2. TRI-AI TRI-AI Public

    Python 1

  3. TRI-FE TRI-FE Public

    JavaScript 1

  4. TRI-BE TRI-BE Public

    Java 1

  5. TRI-Cloud TRI-Cloud Public

    Python 1

  6. .github .github Public

Repositories

Showing 6 of 6 repositories
  • TRI-BE Public
    Trinity-goorm/TRI-BE’s past year of commit activity
    Java 0 MIT 1 5 0 Updated Apr 7, 2025
  • .github Public
    Trinity-goorm/.github’s past year of commit activity
    0 0 0 0 Updated Apr 6, 2025
  • TRI-FE Public
    Trinity-goorm/TRI-FE’s past year of commit activity
    JavaScript 0 MIT 1 2 0 Updated Apr 2, 2025
  • TRI-AI Public
    Trinity-goorm/TRI-AI’s past year of commit activity
    Python 0 MIT 1 0 0 Updated Apr 1, 2025
  • TRI-Cloud Public
    Trinity-goorm/TRI-Cloud’s past year of commit activity
    Python 0 MIT 1 0 0 Updated Mar 27, 2025
  • demo-repository Public

    A code repository designed to show the best GitHub has to offer.

    Trinity-goorm/demo-repository’s past year of commit activity
    HTML 0 0 0 0 Updated Feb 2, 2025

Top languages

Loading…

Most used topics

Loading…