개발 로드맵
0. 전제
1인 개발 기준
MVP 우선
구조 유지 최우선
Supabase 최대 활용
안드로이드 먼저
광고/개인화/랭킹 없음
전체 단계 개요
Phase 0 – 설계 고정
Phase 1 – 핵심 기능 MVP (안드로이드)
Phase 2 – 발행자 도구 고도화
Phase 3 – 밀도 검증 및 안정화
Phase 4 – 웹 확장
Phase 5 – 확장 대비 구조 리팩터링
Phase 0 – 설계 고정 (2~3주)
목표
“흔들리지 않는 데이터 구조” 확정
해야 할 일
1. 도메인 모델 설계
핵심 엔티티:
User
Merchant
Slot
Reservation (임시 확보)
Checkin
Subscription
NoShowPenalty
2. 상태 전이 정의
issued
→ reserved (15분 유효)
→ redeemed
→ redeemed
또는
reserved → expired
상태 흐름 다이어그램 고정
3. DB 스키마 설계 (Supabase)
테이블 구조:
users
merchants
slots
reservations
checkins
subscriptions
penalties
RLS 정책 설계 포함
4. 발행 제한 로직 설계
동일 조건 재발행 제한
플랜별 월 발행 횟수 제한
동시 노출 수 제한
👉 이 단계에서 설계가 흔들리면 뒤가 무너진다.
Phase 1 – 안드로이드 MVP (8~12주)
목표:
“지금 당장 사용 가능한 슬롯”이 제대로 작동하는지 검증
1-1 사용자 앱 MVP
A. 필수 기능
위치 권한 요청
현재 위치 기반 슬롯 조회
필터 (거리 / 업종 / 시간)
슬롯 상세 화면
15분 확보
체크인 기능
자동 만료 처리
B. UI 원칙 적용
단일 컬럼
시간 강조
배너 없음
랭킹 없음
무한 스크롤 없음
C. 핵심 검증 포인트
확보 후 도착률
확보 → 체크인 전환율
자동 만료 정상 작동 여부
1-2 발행자 웹 MVP
앱보다 간단하게 시작
기능:
슬롯 발행
슬롯 수량 설정
구독 플랜 확인
발행 제한 알림
기본 통계 확인
발행 UI는 최대한 단순화:
이전 발행 복사 후 시간만 변경
반복 슬롯 템플릿
👉 발행자 피로가 높으면 실패한다.
1-3 구독 결제 연동
인앱 결제 또는 Stripe
플랜별 발행 제한 연동
자동 갱신 구조
Phase 2 – 발행자 운영 도구 강화 (6~8주)
목표:
광고가 아니라 “운영 도구”로 느끼게 만들기
추가 기능
시간대별 소진율 리포트
자동 반복 슬롯 설정
수량 자동 조정 옵션
재방문 사용자 비율 표시
이 단계에서 절대 하지 말 것:
추천 알고리즘 고도화
랭킹 도입
광고 영역 실험
Phase 3 – 밀도 검증 단계 (3~6개월 운영)
기능 추가보다 데이터 관찰 단계
관찰할 것:
시간대별 소진률
업종별 편차
반복 미도착 비율
사용자 유지율
이 단계에서 개선하는 것:
발행 제한 수치 조정
15분 정책 미세조정
노쇼 패널티 강도 조정
Phase 4 – 웹 사용자 버전 확장
조건:
지역 밀도 확보
슬롯 활성률 안정화
기능:
웹에서도 슬롯 조회
위치 기반 브라우저 권한
동일 UI 원칙 유지
웹은 보조 채널
앱이 주력
Phase 5 – 구조 리팩터링 & 확장 대비
이 단계는 다음 조건에서만:
서울 밀도 확보
구독 매출 안정
DAU 증가
검토 항목:
BFF 도입 여부
자체 서버 이전 여부
CQRS 도입
마이크로서비스 분리
그 전에는 하지 않는다.
기술 스택 정리
프론트:
React Native (Expo)
또는 RN + Web 확장 가능 구조
백엔드:
Supabase (Postgres + RLS)
Edge Functions 최소 사용
지도:
- Google Maps / Kakao Map
결제:
- Stripe or In-App Purchase
개발 우선순위 철칙
슬롯 흐름이 먼저
노쇼 제어가 다음
발행자 편의성
통계는 나중
확장은 마지막
실패 신호
다음이 발생하면 방향 수정:
발행자가 발행을 귀찮아함
슬롯이 상시 할인처럼 보임
사용자 확보 후 미도착률 30% 이상
발행자가 기존 고객과 충돌 불만 제기
1년 목표
세종 밀도 확보
서울 일부 권역 진입
발행자 200개 이상
도착률 65% 이상
노쇼율 12% 이하