퍼피스팟은 애견카페의 입장 조건·공간·운영·가격 정보를 구조화해, 지도 앱 여러 번 검색하던 탐색을 필터 몇 번으로 끝내는 애견카페 인프라 탐색 서비스입니다. 이 문서는 아이디어의 출발점부터 배포까지 6단계 진행 과정, 그리고 그 과정에 AI가 어떻게 쓰였는지를 한눈에 보여줍니다.
이 서비스는 시장 분석이 아니라, 실제 보호자의 불편에서 시작됐습니다. 최초 의뢰 원문이 서비스의 방향과 제약을 그대로 규정했습니다.
"최근 강아지를 키우기 시작하면서 애견카페 정보 찾는 게 어려워. 지도에서 하나씩 검색하고, 각 애견카페별로 크기, 실내 장소 여부, 대관인지 전체 공용인지, 어떤 강아지 메뉴를 파는지, 가격은 어떻게 되는지 등등 확인 조건들을 판단하기가 어려워."
"이런 걸 한눈에 찾아보고, 애견카페의 인프라가 한눈에 정리되어 있어서 어디로 가면 좋을지 판단할 수 있는 서비스를 만들자."
별점·후기 기반 서비스가 아니다. 데이터가 없으면 리뷰도 없는 콜드스타트 문제를 처음부터 회피하고, 사장님이 등록한 구조화된 사실 정보로 승부한다.
무단 크롤링의 법적 리스크를 배제한다. 공공데이터(동물전시업 604개소) + 공식 API + 사장님 직접 등록의 하이브리드 데이터 전략으로 초기 DB를 채운다.
1단계(문제 정의) → 2단계(화면·디자인 설계) → 3단계(프론트 구현) → 4단계(백엔드 연동) → 5단계(통합 QA) → 6단계(배포) 순서로 6단계를 모두 마쳤습니다.
한 개의 챗봇에 "다 만들어줘"가 아니라, 역할이 분리된 여러 AI 에이전트가 실제 직무처럼 협업하는 방식('원주팀')으로 진행했습니다. 사람은 방향을 잡고, AI는 실행했습니다.
PO·시장조사·기획자·디자이너·프론트·백엔드·QA로 역할을 분리한 7종 AI 에이전트가 Gate마다 필요한 직무만 투입됐습니다. 에이전트들은 단순 병렬 작업이 아니라, 서로의 산출물을 교차 검토하고 반박하며 결론을 좁혔습니다.
각 에이전트가 서로 다른 방향의 안을 독립적으로 제시. 예: 기획자 '조건 우선형' vs '발견 우선형' 탐색안.
상대 안의 강점·약점을 짚고 수정안을 제안. 예: 디자이너가 필터 오버레이의 Z축 충돌을 지적하고 Dim 레이어로 보완.
토론 결과를 하나의 결정으로 통합. 채택안과 폐기 대안을 근거와 함께 기록해 다음 Gate로 전달.
| 단계 | 투입 AI 에이전트 | 핵심 활동 |
|---|---|---|
| 1단계문제 정의 | PO · 시장조사 | 카테고리 구조화, 시장·경쟁 리서치, RICE 우선순위, IA 설계 |
| 2단계화면·디자인 | 기획자 · 디자이너 | 화면 기능정의서, 디자인 시스템, 전체 화면 디자인, UX 의사결정 |
| 3단계프론트 | 프론트 | 바닐라 JS SPA 인터랙티브 프로토타입 구현 |
| 4단계백엔드 | 백엔드 | Supabase 스키마·RLS 설계, 시드 데이터 구축, 프론트 실데이터 연동 |
| 5단계QA | QA | 전체 화면 실행 기반 통합 점검, 버그 재현·근본원인 분석, P0 결함 직접 픽스 및 회귀검증 |
| 6단계배포 | QA | 배포 전 자산·보안 점검, GitHub 연동 Vercel 배포 구성, 라이브 환경 재검증 |
각 단계의 상세 산출물과 의사결정 근거는 개별 리포트에서 확인할 수 있습니다.
이 리포트의 모든 작업은 원주님의 가이드에 따라 PO · 기획자 · 디자이너 · 시장조사 AI 에이전트가 수행했습니다.
국내 첫 애견카페 구조화 인프라 탐색 서비스 '퍼피스팟'이 출시됐다.
기존 지도·블로그·인스타그램에 파편화돼 있던 애견카페 정보를 체중 제한(kg 수치) / 예방접종 요건 / 공간 구조(실내외·분리여부·바닥재질) / 운영방식(예약·시간제·대관) / 가격 전 항목(입장료·음료의무·강아지메뉴 종류+가격) 기준으로 구조화해 단일 화면에서 비교 탐색할 수 있도록 한다.
퍼피스팟은 수기 리뷰와 크롤링에 의존하지 않고, 카페 사장님이 직접 입력한 구조화 데이터를 기반으로 운영된다. 사장님은 4단계 등록 폼을 통해 입장 조건·공간·운영·가격·강아지 메뉴 전 항목을 한 번에 등록하며, 반려인은 이를 필터 기반으로 조합 탐색할 수 있다.
론칭 3개월 내 50개 카페 등록, 필터 조합 사용률 70% 달성을 목표로 한다.
| # | 문제명 | 심각도 | 상세 내용 | 최초 의뢰 매핑 |
|---|---|---|---|---|
| P-1 | 방문 가능 여부 불명확 | CRITICAL | 체중제한·예방접종·중성화·나이·품종 조건을 모르고 갔다가 입장 거부 당하는 경험 빈번. 이동 시간·강아지 스트레스 포함 복합 손실. | — |
| P-2 | 가격 불투명 | HIGH | 입장료(보호자/견), 음료 의무구매 최저가, 강아지 메뉴 가격이 방문 전 파악 불가. 2인+견1 방문 시 예산 초과 발생. | ✅ 가격 / 메뉴 |
| P-3 | 공간 정보 부재 | HIGH | 소형견/대형견 분리 여부, 바닥재질, 수용두수 미표기. 소형견 보호자가 대형견 합사 카페에 방문해 불안한 경험. | ✅ 크기/실내여부 |
| P-4 | 예약/운영방식 파악 어려움 | MED | 완전예약제인지 자유입장인지 모르고 방문 → 현장 웨이팅 1~2시간. 강아지 대기 스트레스. | ✅ 대관가능 여부 |
| P-5 | 강아지 메뉴 정보 파편화 | MED | 최초 의뢰 "어떤 강아지 메뉴를 파는지" — 유무만 알 수 있고 종류·가격 사전 파악 불가. | ✅ 강아지 메뉴 종류 |
| P-6 | 정보 파편화 | MED | 위 모든 정보가 블로그·인스타·카카오맵에 흩어져 있어 방문 결정 1건에 탭 10개 이상 열어야 함. | — |
| P-7 | 사장님 계정 미분리로 인한 신뢰도 리스크 | HIGH | 일반회원도 사장님 등록 폼에 접근 가능한 구조적 허점. 카페 운영자 본인 확인 절차 부재 → 허위 등록·경쟁사 교란 등록·정보 오염 위험. 구조화 데이터를 신뢰하고 방문 판단을 내리는 서비스 특성상 등록 주체 신뢰도는 핵심 문제. | — |
| P-8 | 초기 카페 확보(콜드스타트) 채널 부재 | HIGH | 사장님 스스로 4단계 상세 폼을 작성해야만 카페가 등록되는 구조 → 사장님 유입 의지에 전적으로 의존. 반려인이 "이 카페도 등록해달라" 제보할 수 있는 상향식 채널이 없음. | — |
| 항목명 | 필드명 | 값 유형 | 허용 값 | 사장님 등록 UI | 필수여부 |
|---|---|---|---|---|---|
| 체중 제한 ★ 최초의뢰 #1 | weight_limit | select | 5kg이하 / 7kg이하 / 10kg이하 / 15kg이하 / 20kg이하 / 제한없음 | 드롭다운 | 필수 |
| 예방접종 — 종합백신 | vaccination_combo | boolean | 완료 필요 Y / N | 토글 | 필수 |
| 예방접종 — 광견병 | vaccination_rabies | boolean | 완료 필요 Y / N | 토글 | 필수 |
| 중성화 여부 | neutered | select | 필수 / 권장 / 무관 | 라디오 버튼 | 필수 |
| 나이 제한 | age_limit | select | 4개월이상 / 6개월이상 / 1년이상 / 무관 | 드롭다운 | 권장 |
| 품종 제한 | breed_restriction | text | "맹견 및 공격성 품종 불가" 등 자유 입력 | 텍스트 입력 | 권장 |
| 항목명 | 필드명 | 값 유형 | 허용 값 | 사장님 등록 UI | 필수여부 |
|---|---|---|---|---|---|
| 공간 유형 ★ 최초의뢰 #2 | space_type | select | 실내전용 / 실외전용 / 실내+실외 복합 | 라디오 버튼 | 필수 |
| 견종 분리 여부 | size_separation | select | 소형견만 / 대형견만 / 소대형 분리 공간 / 미분리 합사 | 라디오 버튼 | 필수 |
| 바닥 재질 | floor_type | multiselect | 천연잔디 / 인조잔디 / 모래 / 마루 / 우레탄 / 복합 | 체크박스 | 권장 |
| 최대 수용 두수 | max_capacity | number | 숫자 입력 (예: 15마리) | 숫자 입력 | 권장 |
| 수영장/워터파크 | has_pool | boolean | 있음 / 없음 | 토글 | 선택 |
| 셀프 목욕 시설 | has_selfwash | boolean | 있음 / 없음 | 토글 | 선택 |
| 항목명 | 필드명 | 값 유형 | 허용 값 | 사장님 등록 UI | 필수여부 |
|---|---|---|---|---|---|
| 예약 방식 | reservation_type | select | 완전 예약제 / 자유 입장 / 예약+자유 혼합 | 라디오 버튼 | 필수 |
| 이용 시간 방식 | time_policy | select | 무제한 / 시간제(시간당 추가) / 90분 기본 / 기타 | 라디오 버튼 | 필수 |
| 대관 여부 ★ 최초의뢰 #3 | private_booking | boolean | 가능 / 불가 | 토글 | 권장 |
| 주차 | parking | boolean | 가능 / 불가 | 토글 | 권장 |
| 항목명 | 필드명 | 값 유형 | 허용 값 / 예시 | 사장님 등록 UI | 필수여부 |
|---|---|---|---|---|---|
| 보호자 입장료 ★ 최초의뢰 #5 | adult_fee | number | 무료(0) / 5,000 / 8,000 / 10,000 / 15,000원 | 금액 입력 (원 단위) | 필수 |
| 반려견 입장료 ★ 최초의뢰 #5 | dog_fee | number | 무료(0) / 3,000 / 5,000 / 체중별 차등 | 금액 입력 + "보호자에 포함" 옵션 | 필수 |
| 음료 의무 구매 | drink_required | select | 필수(1인 최소 N원) / 불필요 | 토글 + 최저금액 입력 | 필수 |
| 강아지 메뉴 ★ 최초의뢰 #4 | dog_menu | multiselect + text | 케이크/쿠키/아이스크림/밥·간식 + 가격대 텍스트 | 체크박스(종류) + 텍스트(가격대) | 필수 |
| 예상 총비용 (2인+견1) | estimated_cost | number | 위 항목 합산 자동 계산 — 서비스에서 표시 | 자동 계산 (사장님 미입력) | — (시스템 자동) |
| 항목명 | 필드명 | 값 유형 | 포함 내용 (예시) | 사장님 등록 UI | 필수여부 |
|---|---|---|---|---|---|
| 유의사항 | notes | textarea | 기저귀 착용 / 외부 간식 반입 / 발정기 제한 / 목줄 착용 등 | 자유 텍스트 (최대 500자) | 권장 |
| 항목 | 폐기 사유 | 흡수 처리 |
|---|---|---|
| 증명서 지참 여부 | 예방접종 필드로 충분히 커버됨 | → vaccination 필드로 흡수 |
| 기저귀/목줄 착용 의무 | 카페별 편차 크고 구조화 실익 낮음 | → notes 유의사항으로 흡수 |
| 외부 간식 반입 | 카페별 편차 크고 구조화 실익 낮음 | → notes 유의사항으로 흡수 |
| 발정기 별도 제한 | 구조화 불가 (카페별 기준 상이) | → notes 유의사항으로 흡수 |
| 아이 동반 가능 여부 | 반려인 서비스 스코프 외 | → 완전 폐기 |
| 평일/주말 가격 차이 | 복잡도 과도. 면책 문구로 대체 | → 완전 폐기 |
| 포토존 여부 | P2 이하 우선순위, 현 단계 스코프 밖 | → 완전 폐기 (이후 단계 재검토) |
| 구분 | 수치 | 산출 방법 | 출처 |
|---|---|---|---|
| TAM | 6조원 (2024) | 탑다운 — 반려동물 시장 전체 (사료+용품+의료+서비스) | 농림축산식품부 / YZC Pet |
| SAM | 약 360억원 | 등록 604개소 × 월매출 500만원(가정) × 12개월 | 농림축산식품부 2024 실태조사 |
| SOM 탑다운 | 약 2.2억원/년 | 604개소 × 월 광고비 10만원(가정) × 12개월 × 침투율 30%(가정) | 공공데이터 기반 계산 |
| SOM 바텀업 | Phase2 3,200만 / Phase3 1.9억/년 | 수도권 반려견 가구 177만(가정) × 전환율 0.6~1.5%(가정) × ARPU 3,000~7,000원(가정) | KB금융 2025 반려동물 보고서 |
| 상황 | 내용 | 퍼피스팟 시사점 |
|---|---|---|
| 합법화 전 | 식품위생법상 동물과 식음료 공간 엄격 분리 의무 → 대다수 위반 운영 | 정보 공개 꺼리는 업주 多 |
| 합법화 후 (현재) | 위생 기준 충족 카페만 합법 운영. 기준 미충족 업체 퇴출 자연 발생 | DB 정제 자연 발생, 신뢰도 상승 |
| 향후 전망 | 합법화 이후 신규 오픈 가속화 예상 (604개소 → 1,200개소+ 빠르게 증가) | 지금 씨드 DB 선점 = 후발 진입 장벽 |
| 서비스 | 체중제한 (kg) | 예방접종 조건 | 가격 전항목 | 강아지 메뉴 | 예약방식 | 공간/분리 | 핵심 한계 |
|---|---|---|---|---|---|---|---|
| 카카오맵 | ❌ | ❌ | ❌ | ❌ | ❌ | ❌ | 일반 장소 검색, 반려견 특화 없음 |
| 네이버 플레이스 | ❌ | ❌ | △ 부분 | ❌ | △ 일부 | ❌ | 광고 노출 의존, 조건 필터 없음 |
| 반려생활 | △ 일부 | ❌ | ❌ | ❌ | 숙소만 | △ 일부 | 네이버지도로 이탈, 일상 카페 탐색 약함 |
| 와요(WAYO) | △ 일부 | ❌ | ❌ | ❌ | 펫시터만 | ❌ | 카페 전용 필터 없음 (누적 30만 회원, 매출 42.8억) |
| 인스타그램 | ❌ | △ 비정형 | △ 비정형 | △ 비정형 | ❌ | ❌ | 검색·필터 불가, 정보 파편화 |
| 퍼피스팟 (우리) | ✅ kg 수치 | ✅ 구조화 | ✅ 전항목 | ✅ 종류+가격 | ✅ 구조화 | ✅ 분리여부+재질 | 유일한 구조화 인프라 필터 서비스 |
| 사용자 | Job 유형 | 핵심 Job 문장 |
|---|---|---|
| 👤 보호자 | ||
| 보호자 | Functional | "나는 반려견과 외출할 때, 견종·크기 입장 가능 여부와 입장료 구조를 방문 전에 한 번에 확인하고 싶다" |
| 보호자 | Emotional | "나는 우리 강아지가 진심으로 환영받는 공간이라는 안도감을 원한다 / 입장 거부·눈총·방치 느낌을 피하고 싶다" |
| 보호자 | Social | "나는 강아지에게 좋은 경험을 찾아주는 책임감 있는 보호자로 보이고 싶다" |
| 🏪 카페 사장님 | ||
| 사장님 | Functional | "나는 우리 카페를 찾을 가능성이 높은 반려견 보호자에게, 네이버 광고비 소진 없이 노출되고 싶다" |
| 사장님 | Emotional | "나는 진짜 반려동물 친화 공간이라는 신뢰를 얻고 싶다 / 가격·시설 오해로 억울한 평가를 피하고 싶다" |
| 사장님 | Social | "나는 '검증된 애견 친화 카페'로 인식되고 싶다" |
| 기능 | R | I | C(%) | E(주) | RICE | 분류 | 시각화 |
|---|---|---|---|---|---|---|---|
| 입장 조건 필터 체중·예방접종·중성화·나이·품종 |
10 | 10 | 80 | 2 | 500 | P0 | |
| 가격 정보 표시 인/견 입장료·음료·메뉴종류+가격 |
9 | 10 | 90 | 2 | 405 | P0 | |
| 공간·시설 필터 실내외·분리여부·바닥재질·수영장+셀프목욕 |
8 | 9 | 80 | 2 | 288 | P0 | |
| 사장님 직접 등록 폼 4단계 전항목 등록 |
8 | 9 | 80 | 2 | 288 | P0 | |
| 운영방식 필터 예약방식·시간제·대관여부 |
7 | 8 | 70 | 2 | 196 | P0 | |
| 예상 총비용 계산기 2인+견1 기준 자동 계산 |
7 | 8 | 70 | 2 | 196 | P0 | |
| 지도 뷰 지도+하단 카드 슬라이더 |
7 | 7 | 70 | 3 | 114 | P1 | |
| 강아지 메뉴 사진 메뉴 이미지 업로드 |
5 | 6 | 60 | 2 | 90 | P1 | |
| 즐겨찾기 (발바닥) 카페 저장 기능 |
5 | 5 | 70 | 1 | 175 | P1 | |
| 계정 유형 분리 가입 시 일반회원/사장님 선택 |
10 | 9 | 90 | 1 | 810 | P0 | |
| 마이페이지 공지/약관/FAQ/고객센터 |
10 | 6 | 90 | 1 | 540 | P0 | |
| 카페 추천 등록 "여기도 등록해주세요" |
6 | 7 | 70 | 1 | 294 | P0 | |
| 카페 추천 검수 (관리자) | 3 | 6 | 80 | 1 | 144 | P0 | |
| 사장님 계정 전환 일반→사장님 후속 전환 |
3 | 4 | 60 | 1 | 72 | P2 |
| 지표 | 목표값 | 기준 시점 | 측정 근거 |
|---|---|---|---|
| 사장님 등록 카페 수 | 50개소 | 론칭 후 3개월 | 데이터 공급 최소 임계값 |
| 사장님 입장조건 완성도 | 80%+ | 등록 완료 시 | 체중·예방접종·가격 3개 이상 필드 입력 비율 |
| 필터 조합 사용률 | 70%+ | 론칭 후 1개월 | 단순 전체 목록 조회 대비 필터 조합 1개 이상 적용 세션 비율 |
| 방문 실패율 감소 | 측정 및 감소 목표 | 론칭 후 2개월 | "갔다가 입장 못한 경험" 유저 설문 (온보딩 후 30일 재조사) |
| 주간 탐색 세션 (WAU) | 500 | 론칭 후 2개월 | Vercel Analytics 기준 |
| 카페 상세 → 예약링크 이탈률 | 15%+ | 론칭 후 1개월 | 정보 확인 → 실제 방문 의도 전환율 프록시 지표 |
| Depth 1 | Depth 2 | Depth 3 | 화면 설명 | 우선순위 | v1 여부 |
|---|---|---|---|---|---|
| 홈 / 탐색 | |||||
| 홈 | 탐색 메인 | — | 전체 카페 카드 목록 + 퀵 필터 바 | P0 | ✅ v1 |
| 홈 | 탐색 메인 | 필터 패널 | 탭1 입장조건(체중/예방접종/중성화/나이) + 탭2 공간·시설(공간유형/분리/바닥/수영장/셀프목욕) + 탭3 운영(예약/시간/대관/주차) + 탭4 가격(보호자입장료/음료의무/메뉴종류) | P0 | 🔄 v2 확정 |
| 홈 | 지도 뷰 | — | 지도 + 하단 카드 슬라이더. 필터 적용 유지 | P1 | ✅ v1 |
| 카페 상세 | |||||
| 카페 상세 | 입장 조건 | — | 그룹A 5개 필드 구조화 표시. 내 강아지 조건 매칭 여부 시각 표시 | P0 | 🔄 v2 확정 |
| 카페 상세 | 공간·시설 | — | 그룹B 6개 필드 (공간유형·견종분리·바닥재질·최대수용두수·수영장·셀프목욕) | P0 | 🔄 v2 확정 |
| 카페 상세 | 운영 정보 | — | 그룹C 4개 필드 (예약방식·이용시간·대관·주차) | P0 | 🔄 v2 확정 |
| 카페 상세 | 가격 정보 | — | 그룹D 4개 필드 + 예상총비용 2인+견1 기준 자동표시 | P0 | 🔄 v2 확정 |
| 카페 상세 | 강아지 메뉴 | — | 메뉴 종류(케이크/쿠키/아이스크림/밥·간식) + 가격대. 메뉴 종류별 카드 표시 | P0 | 🆕 v2 신규 |
| 카페 상세 | 유의사항 | — | 사장님이 등록한 자유 텍스트 유의사항 (기저귀·외부간식·발정기 제한 등) | P0 | 🆕 v2 신규 |
| 카페 상세 | 위치/연락 | — | 지도 임베드(카카오 API), 전화번호, 예약링크, 운영시간표 | P0 | ✅ v1 |
| 회원가입 / 계정 유형 | |||||
| 로그인 | 소셜 로그인 바텀시트 | — | 카카오/구글/애플 소셜 로그인. 기존 SC-16 유지 | P0 | ✅ v1 |
| 회원가입 | 계정 유형 선택 | — | 소셜 로그인 최초 1회(로그인 필요 액션 시점) "일반회원으로 계속하기 / 사장님으로 가입하기" 2버튼. 사장님 선택 시 상호명·연락처 최소 입력 후 사장님 계정 전환. SC-22 | P0 | — |
| 사장님 등록 (4단계 스텝퍼) — 사장님 계정 전용 | |||||
| 사장님 등록 | 진입 조건 | — | 마이페이지 → 사장님 대시보드 카드 경유 진입. 사장님 계정(accountType='owner') 전용 — 일반회원 URL 직접 접근 시 권한없음 안내 | P0 | — |
| 사장님 등록 | 1/4 기본 정보 | — | 카페명, 주소(카카오 API), 전화번호, 운영시간(요일별), 휴무일 | P0 | 🔄 v2 확정 |
| 사장님 등록 | 2/4 입장 조건 | — | 체중제한(드롭다운) / 예방접종 종합백신Y/N / 예방접종 광견병Y/N / 중성화(라디오) / 나이제한 / 품종제한 | P0 | 🔄 v2 확정 |
| 사장님 등록 | 3/4 공간·운영 | — | 공간유형 / 견종분리 / 바닥재질 / 최대수용두수 / 수영장 / 셀프목욕 / 예약방식 / 이용시간 / 대관 / 주차 | P0 | 🔄 v2 확정 |
| 사장님 등록 | 4/4 가격·메뉴 | — | 보호자 입장료 / 견 입장료 / 음료의무(토글+최저금액) / 강아지메뉴 종류(체크박스)+가격대 / 유의사항(textarea) | P0 | 🔄 v2 확정 |
| 사장님 등록 | 완료 | — | 검토중 안내, 예상 승인 타임라인 (48시간 내), 대시보드 이동 버튼 | P0 | ✅ v1 |
| 사장님 대시보드 / 관리자 | |||||
| 사장님 대시보드 | 내 카페 관리 | — | 등록 정보 수정(전 항목), 강아지 메뉴 추가/삭제/가격 변경 | P1 | — |
| 관리자 | 승인 관리 | — | 신청 목록, 승인/반려 처리, 반려 사유 입력 → 사장님 알림 | P1 | ✅ v1 |
| 관리자 | 카페 추천 검수 | — | 일반회원 제출 카페 추천 건 목록, "컨택예정/컨택완료/등록전환/반려" 상태 관리 | P0 | — |
| 마이페이지 (탭바 3번째 자리) | |||||
| 마이페이지 | 메인 | — | 프로필(닉네임/계정유형 뱃지), 계정유형 표시, 발바닥 목록 바로가기, 사장님 대시보드 카드(사장님 계정만 노출), 하위메뉴 리스트. SC-23 | P0 | — |
| 마이페이지 | 카페 추천 등록 | — | "여기도 등록해주세요" — 카페이름·대략위치(지역·동 단위)·참고URL(선택)만 입력, 상세 20필드 없음. 제출 시 "검토 후 등록됩니다" 안내(즉시 게시 아님), 로그인 필요. SC-24 | P0 | — |
| 마이페이지 | 내가 추천한 카페 목록 | — | 제출 건 상태 조회(검토중/컨택중/등록완료/반려). SC-25 | P1 | — |
| 마이페이지 | 공지사항 | 목록/상세 | 서비스 공지 리스트 + 상세. SC-26/27 | P0 | — |
| 마이페이지 | 약관 | — | 이용약관, 개인정보처리방침. SC-28 | P0 | — |
| 마이페이지 | FAQ | — | 자주 묻는 질문 아코디언 리스트. SC-29 | P0 | — |
| 마이페이지 | 고객센터 | — | 문의하기(유형선택+내용+연락처+이미지첨부). SC-30 | P0 | — |
문제 정의 · 시장 검증 · IA 설계까지 — 퍼피스팟의 '왜'와 '무엇'을 완전히 정의했다.
이 리포트의 모든 작업은 원주님의 가이드에 따라 PO · 기획자 · 디자이너 · 시장조사 AI 에이전트가 수행했습니다.
| 토큰 | 값 | 용도 |
|---|---|---|
| --color-primary (green-5) | #4A7C59 | 브랜드 메인, 버튼 Primary, 강조 |
| --color-primary-lt (green-1) | #EBF3EE | 배경·태그 그린 계열 |
| --color-primary-dark (green-7) | #2D6A42 | 호버·포커스 강조 |
| --surface-bg | #F7F5F0 | 페이지 배경 베이지 |
| --surface-card | #FFFFFF | 카드·모달 배경 |
| --color-gold (yellow-5) | #D4A853 | 가격 액센트, 발바닥 카운트 |
| --border-default | #E8E4DC | 전역 구분선 |
| --color-error | #EF4444 | Destructive 버튼, 에러 상태 |
| 카테고리 | 컴포넌트 | 주요 클래스명 |
|---|---|---|
| BTN — Button Hierarchy 4단계 | ||
| 버튼 | Primary (확인·완료·다음, 화면당 1개) | btn-primary |
| 버튼 | Secondary (취소·이전) | btn-secondary |
| 버튼 | Destructive (앱 종료·삭제) | 인라인 스타일 (#EF4444) |
| 버튼 | Text / Ghost (건너뛰기·상세보기) | btn-text |
| 버튼 | FAB (발바닥 찍기 — 카페 상세 우하단 고정) | btn-fab |
| INPUT — 입력 컴포넌트 | ||
| 인풋 | Search (검색바, 홈 상단 고정) | input-search |
| 인풋 | Text (일반 텍스트 입력) | input-text |
| 인풋 | Textarea (유의사항 등) | input-textarea |
| FORM — 폼 컴포넌트 | ||
| 폼 | Toggle Switch (예방접종·수영장 등 ON/OFF) | toggle / toggle-thumb |
| 폼 | Custom Checkbox (메뉴 종류 선택) | checkbox + aria-role |
| 폼 | Radio Button (공간유형·중성화 등 단일선택) | radio-group |
| 폼 | Range Slider (체중 필터, 6단계) | range-slider |
| 폼 | Custom Dropdown (지역·정렬·나이제한) | dropdown (select 기본 UI 금지) |
| CARD — 카드 컴포넌트 | ||
| 카드 | CARD-Cafe (홈 리스트 전너비 카드) | card-cafe |
| 카드 | CARD-Mini (지도 탭 하단 슬라이드업 미니 카드) | card-mini |
| 카드 | CARD-Section (카페 상세 내 섹션 카드) | card-section |
| NAV — 내비게이션 | ||
| 내비 | 하단 탭바 3탭 (홈/발바닥/사장님 등록) | tabbar-bottom |
| 내비 | 세그먼트 탭 (리스트/지도 전환) | tab-segment |
| 내비 | 필터 4탭 (입장조건/공간/운영/가격) | filter-tab |
| 내비 | Progress Bar 4단계 (사장님 등록 스텝퍼) | progress-bar (progress 태그 금지) |
| TAG/CHIP — 태그·칩 | ||
| 태그 | 입장조건 태그 (연그린 — 체중·예방접종 등) | tag-entry |
| 태그 | 공간시설 태그 (연블루 — 실내외·분리 등) | tag-space |
| 태그 | 가격 태그 (연골드 — 입장료·음료 등) | tag-price |
| 칩 | 위치 칩 (현재 지역 표시 + 드롭다운) | chip-location |
| OVERLAY — 오버레이 | ||
| 오버레이 | 바텀시트 (필터·위치권한·소셜로그인) | bottom-sheet |
| 오버레이 | 발바닥 찍기 Overlay (SC-14) | paw-overlay |
| 오버레이 | 앱 종료 다이얼로그 (SC-06-B) | dialog |
opacity: 0.38 / pointer-events: none / cursor: not-allowed. 사장님 등록 폼 미입력 상태, 필터 조건 없을 때 적용 버튼 등에 적용.
| 종류 | 사용 화면 | 구조 |
|---|---|---|
| 정보 모달 | 입장 조건 상세 안내 | 중앙 팝업 / 제목+본문+닫기 버튼 |
| 확인 모달 | 필터 초기화·등록 취소 | 중앙 팝업 / 취소+확인 2버튼 |
| 토스트 알림 | 발바닥 찍기 완료·필터 적용 등 | 최하단 96dp 위 / 3초 자동 소멸 |
| 항목 | 내용 |
|---|---|
| 마스코트 — 기본형 | illust_puppy_default.png — 카드 썸네일 디폴트, 로딩 플레이스홀더 |
| 마스코트 — sad형 | illust_puppy_sad.png — Empty State (SC-05, SC-15 빈 상태) |
| 아이콘 시스템 | Thin stroke SVG (2px, 라운드 캡) — 이모지 사용 금지. 발바닥 아이콘 별도 커스텀. |
| 파일명 | 상태 | 역할 및 내용 | 프론트 구현 연계 |
|---|---|---|---|
|
design_system_puppyspot.html 바로보기 → |
완료 | 디자인 시스템 — 컬러 토큰 / 타이포 스케일 / 컴포넌트 체계 / Disabled States / Modal / 일러스트·아이콘. design.html과 완전 동기화. | 프론트 CSS 기준 파일. 컴포넌트 클래스명 그대로 사용. |
|
design.html 바로보기 → |
완료 | 전체 화면 디자인 산출물 — 375px 모바일 프레임으로 구현. 실제 시나리오 데이터(한국어) 적용. | 화면별 레이아웃·컴포넌트 배치 기준. screen_spec_v2.md와 병행 사용. |
|
screen_spec_v2.md 바로보기 → |
완료 | 화면별 기능정의서 v2 — 진입/진출 경로, 권한, 레이아웃 구성, 기능 정의, 에러·상태 매트릭스, 인터랙션, 디자이너 전달 노트 포함. 프론트 구현 기준 문서. | 프론트 개발자 기능 구현 기준. 에러 처리·권한 분기 포함. |
|
illust_puppy_default.png illust_puppy_sad.png |
완료 | 뽀삐 마스코트 캐릭터 2종 — 기본형(default) / 슬픈형(sad). Empty State 및 디폴트 이미지 전용. | Empty State·로딩 실패 시 img src 파일로 사용. |
|
계정유형·마이페이지 화면군 design.html에서 보기 → |
완료 | 계정유형선택·마이페이지·카페추천등록·내가추천한카페목록·공지사항·약관·FAQ·고객센터 9개 화면. 사장님 등록은 사장님 계정 전용으로 진입 권한 설정. | 하단 탭바 3번째가 마이페이지. accountType 상태값 필요. |
디자인 시스템부터 전체 화면까지 — 프론트 구현을 즉시 착수할 수 있는 3종 산출물이 완비됐다.
이 리포트의 모든 작업은 원주님의 가이드에 따라 프론트 AI 에이전트가 수행했습니다.
3단계는 2단계 산출물(design.html·screen_spec_v2.md)을 근거로 구현했습니다. design.html의 마크업·컴포넌트·SVG 아이콘을 그대로 이식해 실제 모바일 웹(max-width 390px, 폰 목업 프레임 없음)으로 구현했습니다. Mock 카페 데이터 12개(강아지숲 마포점 외, 1단계 20필드 전체 반영)를 기반으로 SC-01~30에 해당하는 화면·오버레이가 모두 동작합니다. 하단 탭바는 홈·발바닥·마이페이지 3탭이며, 사장님 등록(SC-17~20)은 사장님 계정에서만 진입 가능하고 일반회원은 권한없음 안내로 대체됩니다.
| SC 번호 | 화면·오버레이명 | 진입 방법 | 상태 |
|---|---|---|---|
SC-01/02 |
홈 (리스트·지도 세그먼트) | 앱 시작. 세그먼트 탭으로 리스트/지도 전환 | ✅ 완료 |
SC-03 |
필터 바텀시트 | 검색바 필터 아이콘. 입장조건/공간시설/운영/가격 4탭 + 실시간 결과수 미리보기 | ✅ 완료 |
SC-04/05 |
검색결과 · Empty State | 검색/필터 적용 후. 결과 0건 시 Empty 노출 | ✅ 완료 |
SC-06 |
위치권한 바텀시트 | 위치 칩 탭 (권한 미부여 상태) / 최초 실행 시 | ✅ 완료 |
SC-06-B |
앱종료 확인 다이얼로그 | 브라우저 뒤로가기(popstate)로 안드로이드 백버튼 재현 | ✅ 완료 |
SC-07 |
지역선택 드롭다운 | 위치권한 거부 시 / 위치 칩 탭 | ✅ 완료 |
SC-08 |
카페 상세 | 홈 카드 클릭. 입장조건·공간시설·운영·가격·메뉴·안내 앵커 통합 스크롤 | ✅ 완료 |
SC-14/15 |
발바닥찍기 오버레이 · 발바닥 목록 | 상세 발바닥 버튼(세션 1회 오버레이) → 탭바 발바닥(스와이프 해제 + Undo 토스트) | ✅ 완료 |
SC-16 |
소셜 로그인 바텀시트 | 비로그인 상태에서 발바닥 액션 시. 카카오/구글/애플 + "다음에 하기" 스킵 | ✅ 완료 |
SC-17~20 |
사장님 등록 4단계 | 마이페이지 → 사장님 대시보드 카드(사장님 계정 전용, 일반회원은 권한없음 안내로 대체). 기본정보 → 입장조건 → 공간/운영 → 메뉴등록 | ✅ 완료 |
SC-21 |
등록완료 | 4단계 완료 후. 신규 카페가 즉시 목록에 반영되어 상세 진입 가능 | ✅ 완료 |
SC-22 |
계정 유형 선택 바텀시트 | 로그인 필요 액션 최초 1회. "일반회원으로 계속하기 / 사장님으로 가입하기" 강제 선택(X 닫기 없음) | ✅ 완료 |
SC-23 |
마이페이지 메인 | 탭바 마이페이지. 프로필·계정유형 뱃지·발바닥 바로가기·사장님 대시보드 카드(사장님 계정만)·하위메뉴 리스트 | ✅ 완료 |
SC-24/25 |
카페 추천 등록 · 내가 추천한 카페 목록 | 마이페이지 하위메뉴. "여기도 등록해주세요" — 카페이름·대략위치·참고URL만 입력, 검토 후 게시. 제출 상태(검토중/컨택중/등록완료/반려) 조회 | ✅ 완료 |
SC-26/27 |
공지사항 목록 · 상세 | 마이페이지 하위메뉴 | ✅ 완료 |
SC-28 |
약관 (이용약관·개인정보처리방침) | 마이페이지 하위메뉴 | ✅ 완료 |
SC-29 |
FAQ | 마이페이지 하위메뉴. 아코디언 펼침 | ✅ 완료 |
SC-30 |
고객센터 (문의하기) | 마이페이지 하위메뉴. 유형선택+내용+연락처+이미지첨부 | ✅ 완료 |
| 가설 | 홈 화면을 떠나지 않는 Overlay+Dim 필터 패널로, 조건을 3탭 이내에 결과에 반영할 수 있다 |
| 실제 탭 수 | 검색바 필터 아이콘(1) → 체중 칩 선택(2) → "N개 결과 보기" 버튼(3) — 3탭 이내 |
| 근거 | 필터 바텀시트가 열려 있는 동안에도 선택한 조건 기준으로 previewCount가 실시간 계산되어, 하단 버튼에 "N개 결과 보기"로 즉시 표시된다. 버튼을 누르면 결과가 바로 갱신된다 |
| 리스크 | 없음 |
| 가설 | 카페 상세를 탭 없이 앵커칩 스크롤 하나로 통합해도, "우리 강아지 들어갈 수 있나?"에 스크롤 없이 답이 나온다 |
| 근거 | 상세 진입 시 "입장조건" 섹션이 최상단 앵커로 고정되어 체중·예방접종·중성화·나이·품종 제한 5개 필드 전부(1단계 정의와 100% 일치)가 즉시 노출된다. 이어서 공간시설/운영/가격/메뉴/안내가 앵커칩으로 스크롤 이동된다 |
| 리스크 | ⚠ 앵커 칩 인지도 사용자가 상단 앵커 칩(입장조건/공간시설/운영/가격/메뉴/안내)을 탐색 수단으로 인식해야 함 → 5단계 사용성 테스트 필요 |
| 가설 | 이메일 회원가입 없이 SC-16 소셜 로그인 바텀시트(카카오/구글/애플 + 스킵)만으로 발바닥 저장 흐름이 끊기지 않는다 |
| 근거 | 비로그인 상태에서 발바닥 버튼을 누르면 SC-16 바텀시트가 열리고, SNS 로그인 또는 "다음에 하기"로 즉시 이탈 없이 진행 가능. 이메일/비밀번호 입력 폼이나 별도 회원가입 화면은 설계·구현 어디에도 존재하지 않음(1단계 "회원가입 없이 최소 마찰" 원칙과 일치) |
| 리스크 | ⚠ 소셜 로그인 실제 연동 없음 현재는 클릭 시 mock 로그인 처리. 카카오/구글/애플 OAuth 실연동은 4단계 대상 |
4단계 백엔드 연동 시 반드시 해결해야 할 항목입니다. P0은 4단계 진입 전 설계 완료가 필수이며, P1은 연동 과정에서 병행 구현, P2는 5단계 이후로 이연 가능합니다.
| 우선도 | 항목 | 비고 |
|---|---|---|
| P0 | Supabase cafes 테이블 — 20개 필드 스키마 설계 | weightLimitKg, vaccination{combo,rabies}, neuter, ageMinMonths, breedRestriction 등 입장조건 5개 필드 전부 포함(1단계 정의와 완전 일치) |
| P0 | 위치 기반 조회 (PostGIS 또는 위도경도 필터) | 현재 Mock 데이터(구 단위 텍스트) → 실제 좌표 데이터로 교체 필수 |
| P0 | 소셜 로그인 실연동 (카카오/구글/애플 OAuth) | 현재 클릭 시 mock 로그인 처리 → Supabase Auth 또는 각 사 SDK 연동 필요 |
| P0 | 발바닥(찜) 저장 — user_favorites 테이블 | 현재 JS 메모리 상태 → Supabase 영속화 필요 |
| P1 | 카페 등록 API — register 4단계 폼 → cafes INSERT | 사진 업로드(Storage) 포함, 등록 즉시 노출 여부(관리자 승인 여부) 정책 확정 필요 |
| P1 | 입장값 Validation (체중/예방접종 등 서버사이드) | 현재 프론트 프로토타입은 클라이언트 validation만 존재 |
| P1 | 카페 추천 등록 API + 관리자 검수 — cafe_suggestions 테이블 | 제출값(카페이름/대략위치/참고URL) 저장, 상태값(검토중/컨택중/등록완료/반려) 관리자 처리 플로우 필요 |
| P2 | 리뷰/별점 테이블 | 현재 발바닥 수(paw)로 대체. 5단계 이후 실데이터 연동 검토 |
이 리포트의 모든 작업은 원주님의 가이드에 따라 백엔드 AI 에이전트가 수행했습니다.
3단계까지의 프로토타입은 화면 안에 하드코딩된 더미 배열로 동작했습니다. 4단계에서는 이 데이터를 실제 데이터베이스로 옮기고, 프론트가 DB의 데이터를 직접 조회·저장하도록 연결했습니다. 그 결과 발바닥(찜)·카페 추천·고객센터 문의가 브라우저를 새로고침해도 유지되는 영속 데이터가 됐습니다.
Supabase는 데이터베이스 스키마 위에 REST API와 인증 기능을 자동으로 제공합니다. 따라서 Express 같은 API 서버를 따로 만들지 않고, 프론트엔드가 공개 키(anon key)로 이 API를 직접 호출합니다. 데이터 접근 권한은 DB 레벨의 보안 정책(RLS)이 강제하므로, 서버 코드 없이도 "카페 정보는 누구나 읽기 / 개인 데이터는 본인만"이 보장됩니다.
| 비교 항목 | 별도 API 서버 방식 | 채택안 — Supabase 직접 호출 |
|---|---|---|
| 구성 요소 | DB + 서버 코드 + 배포 인프라 | DB만 (API 자동 생성) |
| 권한 처리 | 서버 미들웨어에서 검사 | DB 보안 정책(RLS)이 강제 |
| 운영 부담 | 서버 배포·모니터링 필요 | 관리형 서비스로 대체 |
| 프로토타입 적합성 | 과설계 | ✅ 적합 |
소셜 로그인(카카오·구글·애플)은 실제 OAuth 심사·키 발급이 필요하므로, 데모 단계에서는 어떤 버튼을 눌러도 공용 게스트 계정 하나로 즉시 로그인되도록 처리했습니다. 로그인 이후의 저장 흐름(발바닥·추천·문의)은 실제 계정 기반으로 동작하므로, 추후 OAuth만 연결하면 그대로 전환됩니다.
| 테이블 | 역할 | 접근 정책 (RLS) |
|---|---|---|
cafes | 카페 마스터 — 입장조건·시설·운영·가격·메뉴 등 1단계 정의 필드 전체 | 누구나 읽기 |
likes | 발바닥(찜) — 사용자별 저장한 카페 | 본인 데이터만 읽기·쓰기·삭제 |
cafe_recommendations | 일반회원 카페 추천 등록 — 검토중/컨택중/등록완료/반려 상태 관리 | 본인 데이터만 읽기·쓰기 |
owner_submissions | 사장님 카페 등록 신청 (4단계 입력값) | 본인 데이터만 읽기·쓰기 |
support_inquiries | 고객센터 문의 | 본인 데이터만 읽기·쓰기 |
notices | 공지사항 | 누구나 읽기 |
faqs | FAQ | 누구나 읽기 |
terms | 이용약관·개인정보처리방침 | 누구나 읽기 |
필터·정렬·조건 분기가 실제로 검증되도록, 카페 31개를 속성이 서로 다른 조합으로 구성했습니다.
| 분산 축 | 구성 |
|---|---|
| 지역 | 서울 15개 자치구(강남·마포·성동·송파·용산·서대문·양천·노원 등) + 경기(분당·일산·수원·부천·안양·김포·하남) |
| 공간 유형 | 실내 전용 / 실외 전용 / 실내+실외 복합 |
| 체중 제한 | 소형견 전용(5~7kg) / 중형(10~15kg) / 대형 허용(20~25kg) / 무게제한 없음 |
| 부대 시설 | 수영장 · 셀프목욕 · 야외운동장 · 견종분리 · 주차 · 대관 가능 여부 조합 |
| 입장 조건 | 예방접종 필수/권장, 중성화 필수/무관/불필요, 최소 나이 0~6개월, 품종 제한 유무 |
| 운영 · 가격 | 현장방문/사전예약, 휴무일 유무, 입장료 6,000~12,000원, 음료 필수/선택 |
마이페이지 하위 화면에서 사용하는 공지사항 4건, FAQ 6건, 약관 2종(이용약관·개인정보처리방침)을 DB에 적재해 화면이 하드코딩이 아닌 DB 기준으로 렌더링됩니다.
프론트는 아래 동작을 Supabase 클라이언트로 직접 수행합니다. 별도로 구현한 엔드포인트는 없습니다.
| 화면 · 동작 | 대상 데이터 | 로그인 필요 |
|---|---|---|
| 홈 · 검색 · 상세 — 카페 조회 | cafes | 불필요 |
| 마이페이지 — 공지·FAQ·약관 조회 | notices · faqs · terms | 불필요 |
| 발바닥 찍기 / 지우기 | likes (저장·삭제) | 필요 |
| 발바닥 목록 조회 | likes | 필요 |
| 카페 추천 등록 · 내 추천 목록 | cafe_recommendations | 필요 |
| 사장님 카페 등록 신청 | owner_submissions | 필요 |
| 고객센터 문의 접수 | support_inquiries | 필요 |
실제 브라우저에서 앱을 구동해 DB 왕복까지 확인했습니다. 코드 확인이 아닌 실행 기반 검증입니다.
이 리포트의 모든 작업은 원주님의 가이드에 따라 QA AI 에이전트가 수행했습니다.
5단계는 코드를 읽고 판단하는 방식이 아니라, 헤드리스 브라우저로 실제 클릭·입력·스와이프를 재현해 결과를 확인하는 방식으로 진행했습니다. 매 검증마다 격리된 새 브라우저 프로필을 사용해 이전 로그인 세션이 남아 결과를 오염시키는 일이 없도록 했습니다. 그 결과 계정 유형 선택 화면이 어디에서도 열리지 않아 사장님 등록 전체가 막혀 있던 P0 결함을 발견했고, 직접 원인을 찾아 수정한 뒤 수정된 흐름으로 신규 카페 등록까지 실제로 완주되는 것을 재확인했습니다.
| 재현 경로 | 소셜 로그인 버튼 클릭 → 로그인 성공 → (계정 유형 선택 화면이 뜨지 않고) 바로 원래 액션으로 복귀 |
| 기대 결과 | 로그인 성공 직후, 세션 최초 1회 "어떤 계정으로 시작할까요?" 바텀시트가 강제로 노출되고 일반회원/사장님을 선택해야 진행 가능(SC-22 명세) |
| 실제 결과 | 화면 자체는 이미 만들어져 있었으나 openOverlay('accountType') 호출이 코드 어디에도 없어 절대 열리지 않음. 카드·버튼도 전부 미바인딩 상태라 수동으로 열어도 클릭이 씹힘 |
| 파급 범위 | accountType이 영원히 null로 남아, 사장님 등록(SC-17~21) 진입점인 마이페이지 사장님 대시보드 카드가 모든 사용자에게 절대 노출되지 않음 — 앱의 핵심 요건 중 하나인 "사장님 계정 분리" 기능이 실질적으로 100% 도달 불가능한 상태였음 |
| 영역 | 점검 항목 | 결과 |
|---|---|---|
| 계정 유형 선택 | 로그인 직후 자동 노출, 딤·뒤로가기 무시, 일반/사장님 분기, 유효성 검증 | ✅ 통과 |
| 사장님 등록 | 1~4단계 전체 입력 → 완료 화면 → 신규 카페가 실제 목록에 반영 | ✅ 통과 |
| 필터·검색 | 조건 적용 → 칩 노출 → 칩으로 개별 해제, 키워드 검색 결과 | ✅ 통과 |
| 지도 보기 | 리스트 ↔ 지도 세그먼트 전환 | ✅ 통과 |
| 발바닥 | 찍기·해제 토스트, 발바닥 목록 스와이프 삭제, DB 영속화 | ✅ 통과 |
| 마이페이지 하위 6개 화면 | 공지사항·약관·FAQ·고객센터·카페추천등록·내가추천한카페목록 진입/뒤로가기 왕복 | ✅ 통과 |
| 상세페이지 | 입장조건 즉시 노출, 이미지 갤러리(보유 장수만큼만), 공유, 뒤로가기 시 이전 화면 스크롤 위치 복원 | ✅ 통과 |
P0 버그 0건, 핵심 플로우 전체 완주, 콘솔 에러 0건을 실행 기반으로 확인했습니다. 6단계 진입을 승인합니다. 데모 특성상 남아있는 소셜 로그인 실연동은 배포를 막는 결함이 아니라 별도 트랙의 후속 작업으로 분류합니다.
이 리포트의 모든 작업은 원주님의 가이드에 따라 QA AI 에이전트가 수행했습니다.
로컬에서 파일을 직접 업로드하는 방식이 아니라, GitHub 저장소를 Vercel에 연결했습니다. 이렇게 하면 이후 코드를 푸시하는 것만으로 자동 재배포되고, 어떤 코드가 지금 서비스에 올라가 있는지가 커밋 이력으로 항상 추적됩니다. 빌드 도구가 없는 정적 사이트라 별도 빌드 설정 없이 그대로 서빙됩니다.
| 단계 | 내용 |
|---|---|
| 1. 소스 관리 | GitHub 저장소 wse02123/puppyspot 생성 후 main 브랜치에 업로드 |
| 2. 연결 | Vercel 프로젝트를 해당 저장소에 연결 (푸시 시 자동 배포) |
| 3. 배포 | main 브랜치 최신 커밋 기준 프로덕션 배포 |
| 4. 부가 설정 | 방문 분석(Web Analytics) 활성화, 이미지 장기 캐시 헤더 적용 |
| 5. 검증 | 배포된 실제 주소에서 전체 기능 재검증 |
로컬이 아닌 실제 배포 주소에서 브라우저를 띄워 다시 검증했습니다.
| 항목 | 결과 |
|---|---|
| 카페 데이터 로딩 | ✅ 31개 정상 |
| 공지·FAQ·약관 로딩 | ✅ 4 / 6 / 2 |
| 카페 이미지 로딩 | ✅ 정상 (960px 원본) |
| 필터 적용·해제 | ✅ 통과 |
| 상세 화면 · 이미지 슬라이드 | ✅ 통과 |
| 로그인 → 계정 유형 선택 | ✅ 통과 |
| 발바닥 저장 (DB 반영) | ✅ 통과 |
| 마이페이지 하위 화면 왕복 | ✅ 통과 |
| 404 페이지 | ✅ 전용 화면 노출 |
| 실패한 네트워크 요청 | ✅ 0건 |
| 콘솔 에러 | ✅ 0건 |
현재 배포본은 기획·설계 검증을 위한 데모입니다. 실제 서비스 전환 시 아래 항목이 선행되어야 합니다.
| 항목 | 현재 상태 | 실서비스 전환 시 |
|---|---|---|
| 소셜 로그인 | 버튼 클릭 시 공용 게스트 계정으로 즉시 로그인 | 카카오·구글·애플 실제 인증 연동 |
| 사용자 데이터 | 모든 방문자가 게스트 계정 하나를 공유 (발바닥·추천이 서로 보임) | 계정별 데이터 분리 |
| 카페 데이터 | 시연용 더미 31개 | 공공데이터 + 사장님 직접 등록으로 실데이터 확보 |
| 카페 이미지 | AI 생성 및 무료 스톡 이미지 | 사장님이 등록한 실제 매장 사진 |
| 거리 표시 | 고정값 | 실제 위치 기반 거리 계산 |