
프로젝트 주제
프로젝트 목표
기술 스텍
| 구분 | 기술 | 사용 이유 |
|---|---|---|
| Backend | Java 17, Spring Boot | MSA 기반 REST API 개발 |
| MSA | Spring Cloud Gateway, Eureka, OpenFeign | 서비스 라우팅, 서비스 탐색, 서비스 간 동기 통신 |
| Auth | JWT | 사용자/점주/관리자 권한 분리 및 인증 처리 |
| Database | PostgreSQL | 예약, 웨이팅, 매장, 유저 데이터 저장 |
| Cache / Lock | Redis, Redisson | 웨이팅 순번 관리, 예약 오버부킹 방지, 조회 성능 개선 |
| Message Queue | Kafka | 예약/웨이팅/리뷰 이벤트를 비동기로 처리하고 알림 서비스와 연동 |
| Monitoring | Prometheus + LLM, Grafana | 서비스 상태 모니터링, CPU 알림, 성능 지표 확인 |
| Load Test | JMeter | 예약/웨이팅 API 부하 테스트 및 개선 전후 비교 |
| Infra | Docker, Docker Compose | 팀원 동일 개발 환경 구성 및 인프라 일괄 실행 |
| Deploy | EC2 | 최종 배포 환경 구성 |
| API Docs | Swagger / Springdoc OpenAPI | API 명세 공유 |
| AI 서비스 | Gemini | 고도화 개발에서 결정 |
아키텍처:
| 이름 | 마이크로서비스 | 설명 | 비고 |
|---|---|---|---|
| 최리아 | User Service | 회원가입, 로그인, 권한 관리, JWT 인증 | 개발 리드 |
| API Gateway | |||
| DevOps | |||
| 도경민 | Store Service | 매장 등록 및 관리, 메뉴 관리, 필터검색 제공 | Core Business Domain |
| 최준근 | Review Service | 리뷰 CRUD, 별점 집계, 평점 이벤트 발행 | CI/CD |
| 이성근 | Notification Service | Kafka 이벤트 수신, Slack 알림 발송, 알림함 관리 | Slack Web API |
| 이진일 | Reservation Service, | ||
| Payment Reservation | 예약 슬롯 관리, 예약 신청/확정/취소, 오버부킹 방지 | Main Feature | |
| Kafka Event | |||
| 조혜은 | Waiting Service | 웨이팅 등록, Redis 순번 관리, 입장 처리 | Main Feature |
| Kafka Event |
| 역할 | 설명 |
|---|---|
USER |
매장 검색, 예약/웨이팅 신청, 리뷰 작성 |
OWNER |
매장 등록·관리, 예약 확정·거절, 웨이팅 입장 처리. 가입 후 MASTER 승인 필요 |
MASTER |
전체 권한. OWNER 승인·거절, 회원 관리 |
본 시스템은 책임의 분리와 독립적 확장성을 위해 7개의 마이크로서비스로 구성됩니다.
| 서비스명 | 포트 | 담당 DB | 핵심 테이블 | 핵심 기능 |
|---|---|---|---|---|
| user-service | 8001 | USER | p_users | JWT 기반 인증/인가, ROLE 관리, OWNER 승인 처리, Redis Refresh Token·블랙리스트 |
| store-service | 8002 | STORE | p_store_categories, | |
| p_stores, | ||||
| p_store_hours, p_store_amenities, | ||||
| p_store_images, | ||||
| p_menus | 매장·메뉴 CRUD, 카테고리·지역·인원 필터 검색, Redis 캐싱·랭킹, Kafka Consumer (review.rating-updated) | |||
| review-service | 8006 | REVIEW | p_reviews, | |
| p_review_images, | ||||
| p_review_reports, | ||||
| p_review_outbox_events, | ||||
| p_review_replies | ||||
| reservation-service | 8003 | RESERVATION | p_reservation_slots, p_reservations, p_no_show_penalties, p_reservation_notifications | 예약 슬롯 관리, 예약 신청·확정·취소, 오버부킹 방지, 예약금 상태 관리, Kafka 발행 |
| payment-service | 8007 | PAYMENT | p_payments | |
| waiting-service | 8004 | WAITING | p_waitings, p_waiting_summaries | Redis Sorted Set 순번 관리, 입장·미입장 처리, SSE 실시간 알림, Kafka 발행 |
| notification-service | 8005 | NOTIFICATION | p_notifications, | |
| p_slack_send_logs | Kafka 이벤트 수신 (웨이팅·예약), Slack Webhook 발송, 알림함 저장·읽음 처리 |