Shoolvery는 같은 시간대·위치에서 주문을 원하는 학생들이 배달비를 절감하기 위해 주문을 함께 묶을 수 있는 플랫폼입니다. 실시간 주문 매칭, 자동 정산, 푸시 알림, 리뷰/신뢰도 기능을 포함하며, 캠퍼스 지오펜스 기반 온디맨드 서비스로 설계되었습니다.
Shoolvery: 교내 배달비 공유 플랫폼
학생들이 배달비를 함께 부담하며 주문을 공유할 수 있도록 돕는 실시간 교내 딜리버리 매칭 서비스
서비스 개요
서비스 화면



주요 기능
실시간 배달비 매칭
현재 위치(지오펜스/반경)·시간 윈도우 기반 유사 주문 탐색 및 그룹 생성. Haversine/GeoHash + Spatial Index로 고성능 매칭.
자동 정산 및 상태 추적
배달비/할인/수수료 분배 규칙과 반올림 정책(올림/내림/은행가 반올림) 적용. Cart→Matched→Ordered→Picked→Delivered→Settled 상태 머신.
푸시 알림과 실시간 업데이트
합류 요청/수락/픽업/배달완료 등의 이벤트를 FCM/APNs 푸시 + WebSocket/SSE로 전파. 서버 coalescing과 레이트리밋으로 폭주 제어.
리뷰·신뢰도
주문 완료 건에 한해 후기 작성, 최근성 가중치/완료 수 반영한 신뢰 점수 제공. 신고/차단 기능으로 악성 사용 행위 억제.
운영·안전 장치
매칭룸 수용인원/마감시간/최소금액 조건, 노쇼/지각 시 정책(페널티/자동 환불 규칙) 설정. 관리자 감사로그로 변경 이력 추적.
아키텍처 구성도

백엔드: Spring Boot + REST API, JWT 기반 인증/인가(SB Security). DB: MySQL 8(Spatial Index, POINT/SRID 4326), JPA + QueryDSL. (선택) Redis Pub/Sub(실시간 방송), Rate Limit. 매칭: Haversine/GeoHash 기반 반경+시간 윈도우 필터 → 우선순위(거리/잔여시간/인원) 스코어링 → 매칭룸 생성/합류. 동시성: 룸 용량 unique 제약 + 트랜잭션/락으로 oversubscription 방지, 보상 트랜잭션(취소/환불). 프론트: React Native 앱, WebSocket/SSE 실시간 반영, FCM/APNs 푸시. 운영: 구조적 로깅, 감사로그, (선택) Sentry/Alerting.
기술 스택
백엔드: Spring Boot, Spring Data JPA, QueryDSL, Spring Security(JWT) 데이터베이스: MySQL 8 (Spatial Index, GIS), (선택) Redis 실시간: WebSocket 또는 SSE, FCM/APNs 푸시 인프라: AWS EC2, Docker, Nginx 개발/PM: GitHub, Figma, Notion (선택) 모니터링: Sentry, CloudWatch/Prometheus
담당 역할
팀 리더 및 기획 총괄
요구사항 정의, 로드맵/마일스톤 수립, 역할 분담 및 데일리/주간 스크럼 운영.
백엔드 설계 및 개발
도메인 모델링, 지오쿼리/매칭 알고리즘 설계, 상태 머신/정산 규칙 구현, JPA/QueryDSL 튜닝.
실시간 및 알림 채널 설계
WebSocket/SSE 채널 구성, FCM/APNs 이벤트 설계, 서버/클라이언트 최적화(coalescing, throttling).