---
title: "달록 v0.9(클로즈베타버전) 완성 충족기준"
notion_id: "3692296208688147ba68d750e9632954"
notion_url: "https://app.notion.com/p/3692296208688147ba68d750e9632954"
category: "spec"
parent: "달록 개발 현황"
updated: "2026-05-28"
priority: "High"
purpose: "v0.9 클로즈베타 발행 전 충족해야 할 기능·보안·운영·SNS 요건 목표 관리 (달성율 그래프 + 작업 1~10 진행 추적)"
read_when: ["남은작업·우선순위","최신상태복구"]
---

## 1. 페이지 정의
달록 v0.9 클로즈베타 발행 전 반드시 충족해야 할 기능·보안·운영·SNS 기반 요건을 관리하는 목표 설정 페이지. 창업자/마스터 의사결정에 따라 전 항목이 v0.9에 포함된다.
---
## 2. 업무완료 데드라인
| 구분 | 내용 |
|---|---|
| 기준일 | 2026-05-23 (토) |
| 목표 완료일 | 2026-06-01 (월) |
| 남은 기간 | **D-4** (2026-05-28 기준) |
| 현재 상태 | 2026-05-28 야간 통합 컨텍스트로 §4 큰폭 갱신. SAFEZONE·소셜·OAuth 코드 일괄 완료. 사장님 SQL Editor 실행 + OAuth 콘솔 작업 마무리 + 약관 작업만 남음. |
| 일정 판단 | D-4 시점 핵심 코드 90% 이상 진척. 약관 단계 (P-2) 가 가장 시간 부담 큼. |

---
## 3. 달성율 그래프
> Claude Code가 최초 생성한 관리용 지표. 기능 완료·보완 시마다 갱신.
| 구분 | 이전 (5/27) | 현재 (5/28) | 상태 |
|---|---|---|---|
| 개인 기록앱 기반 기능 | 95% | **95%** | 큰 변경 없음 |
| AI / OCR 입력 보조 | 85% | **85%** | H-1/H-2 OCR MVP 유지 |
| UI / 모바일 안정화 | 85% | **95%** | +10% Pretendard 도입·컴포넌트 catalog 13종 이식·Dashboard 탭 통일 |
| 멀티유저 / 데이터 분리 | 30% | **95%** | +65% SAFEZONE SQL 1차+v2+v3 발행·user_id 모든 테이블 매핑·정책 (a) 적용. SQL v3 실행만 잔여 |
| 프로필 / 공개범위 / SNS 기반 | 10% | **90%** | +80% 작업 7·8·9 DB(8 테이블) + 클라이언트 6 파일 + 라우팅 완료. Storage 버킷·검증만 잔여 |
| 약관 / 개인정보 / CS 체계 | 10% | **15%** | +5% 본인인증 Phase A 결정 명문화. 약관 본문 미진행 (P-2) |
| 로그인 확장 | 40% | **80%** | +40% 카카오/네이버 진입점 코드·Login UI·콜백 페이지. 콘솔 작업 + Workers `auth-proxy` 잔여 |
| 테스트/운영 환경 분리 | 10% | **10%** | v1 출시 D-14 시점에 분리 결정. 현재 보류 |
| **종합 진행률** | **65~70%** | **약 85~90%** | +20%p (2026-05-28 야간 통합 컨텍스트) |

```plain text
개인기록 기반      █████████░ 95%
AI/OCR 입력보조    ████████░░ 85%
UI/모바일 안정화   █████████░ 95%   ↑↑
멀티유저/보안      █████████░ 95%   ↑↑↑↑↑↑
프로필/SNS         █████████░ 90%   ↑↑↑↑↑↑↑↑
약관/CS            █░░░░░░░░░ 15%
로그인 확장        ████████░░ 80%   ↑↑↑↑
환경 분리          █░░░░░░░░░ 10%
```
> 갱신 규칙: 완료 항목은 §4로 이동. §5에서는 항목 제거 X, 완료 표시(✅)만 추가.
---
## 4. 현재까지 구현된 기능
> ✅ (green_bg 콜아웃)
> **현재 구현 완료 영역** — 본 섹션은 소스코드 및 작업보고로 확인된 **v0.9 클로즈베타 진행 완료·구현 항목**이다.
> **2026-05-28 갱신**: 4-9 ~ 4-13 신규 추가 (SAFEZONE·소셜·OAuth·디자인 시스템·본인인증 결정)
> 참조 문서: [달록(PaceLog)설명서 v0.1 (260523)](#/doc/spec-doc-03) / [기능설명서 (260520)](#/doc/spec-doc-02) / [UI시각화 내용 설명서 (260520)](#/doc/spec-doc-01) / [MCP브라우징 보고서 v2 (260521)](#/doc/research-01)
### 4-1. 인증 / 라우팅
- **Google OAuth** — Supabase `signInWithOAuth({ provider: 'google' })` + `/auth/callback`
- **마스터 로그인** — 로컬 세션, `master@dallog.internal` (display_id: mster, role: master)
- **데모 계정 차단** — `VITE_IS_DEMO=true` 빌드에서 `useDemoBlock` + `DemoBlockModal`
- **보호 라우트** — `useAuth` effectiveUser
### 4-2. 대시보드 (`/dashboard`)
- **BODY/RUNNING/STRENGTH 3-탭** — 데스크탑 3-col / 모바일 stack
- **체성분·러닝·근력 요약** — 메트릭 카드 + 차트
- **AI 브리프 카드** — `CoachNotes`에서 공유
- **2026-05-28 보강** — 탭이 `.toggle-group` 라운드 박스로 통일
### 4-3. 기록 입력 (`/log`)
- **체성분 기록** — 체지방률·BMR 자동 계산, 프로젝트 자동 연동, upsert
- **러닝 기록** — 페이스·속도 자동 계산, `TimeInput`, 신발·런타입 드롭다운
- **근력 기록** — 카테고리 → 종목 2-단계, 세트별 중량/반복, 카테고리별 볼륨
- **프로젝트/런타입/신발/루틴 연동** — `app_settings` + `*_configs`
- **연속 기록 액션** — `PostSaveDialog`로 다음 액션 분기
### 4-4. 기록 히스토리 / 수정 (`/history`)
- **3-탭 + 3-뷰 모드** — `?tab=` URL 동기화, localStorage 영속
- **달력 셀 직접 표시** — 일별 체중·체지방·거리·페이스·심박
- **인라인 수정 + 다중 선택 일괄 삭제**
- **상세 모달 + 검색·정렬·기간**
- **요약 브리프** — `SummaryBrief` 기간 토글 + 차트
### 4-5. AI 브리프 (`/coach`)
- **CF Workers 프록시** — `dallog-brief-proxy` (Anthropic + OpenAI 듀얼)
- **6-섹션 prose + 시각화 카드** — `brief_visual_cache`
- **AI에게 보내기** — `buildAIHandoffMarkdown()` 클립보드 직렬화
- **수동 노트** — `coach_notes` brief/review/milestone
- **모델** — gpt-5.4-mini (기본) + claude-sonnet-4 (fallback)
- **2026-05-28 보강** — Worker `securityCheck()` 미들웨어 (body size 50KB · rate limit 시간당 360건 · JWT decode 옵션)
### 4-6. UI / UX
- **좌측 사이드바** — 데스크탑 sticky 240/64px, 로고 + nav + 설정
- **모바일 하단 탭바** — fixed safe-area-inset 대응
- **다크/라이트/시스템 3-택 테마**
- **2026-05-28 보강 ⭐** — **Pretendard Variable 본문 폰트 도입** (NanumSquare Neo 제거 1.7MB 번들 감소) · **컴포넌트 catalog 13종 이식** (`.toggle-group`/`.callout` 4종/`.checkbox-row`/`.modal-mock`/`.feed-card`/`.badge` 4색/`.stack`·`.hstack` 헬퍼) · 신규 토큰 5종 (`--accent-soft` · `--warn`/`--success`/`--info`) · 사이드바 SNS 아이콘 신설
### 4-7. H-1/H-2 OCR 자동기록 MVP
- **스크린샷 업로드 + tesseract.js OCR**
- **공통 후보 필드 추출 + 사용자 보정 UI**
- **기존 폼 주입 + 기존 저장 흐름 유지**
### 4-8. 개인 설정 (`/settings`)
- **6-섹션 좌측 아코디언 + URL hash 라우팅**
- **AI 브리프 지침 4-필드**
### 4-9. ⭐ 멀티유저 데이터 분리 (SAFEZONE) — 2026-05-28 신규
- **SAFEZONE SQL 1차** (`260528_safezone_rls_policy_a.sql`, 539줄) — 10개 테이블 RLS·user_id 마이그레이션·정책 (a)
- **SAFEZONE fix v2** (`260528_safezone_rls_fix_v2.sql`, 314줄) — is_master() 재정의·app_settings 사용자 테이블 재분류·마스터 OR 제거
- **SAFEZONE fix v3** (`260528_safezone_rls_fix_v3.sql`) — shoe_configs + exercise_configs (하이브리드 is_basic 활용) 사용자 테이블 재분류. **Codex 검수 audit guard 반영**
- **AI 브리프 Worker 보안 보강** — body size 50KB · rate limit · JWT decode
- **사장님 검증 통과** — 1차+v2 실행 완료. v3 실행 대기.
- **마스터 RLS 정책 (a) 채택** — 마스터도 본인 데이터만. 운영 UI는 작업 8-3 (J-3) 단계로 이관 결정.
### 4-10. ⭐ 소셜 기능 (작업 7·8·9) — 2026-05-28 신규
- **DB 스키마** (`260528_social_schema.sql`, 545줄) — 8 테이블 (`profiles` · `follows` · `posts` · `post_likes` · `post_comments` · `blocks` · `reports` · `notifications`) + 트리거 3종 (좋아요·댓글 카운트 동기화·팔로우·좋아요·댓글 알림 자동 생성) + ccy8215 프로필 시드 + Storage 버킷 안내
- **lib/social.ts** (315줄) — API 25개 + 인터페이스 5종
- **페이지 5종** — `SocialFeedPage` (피드+작성 모달+신고 모달) · `SocialProfilePage` (본인/타인/편집 자동 분기) · `SocialPostDetailPage` (상세+댓글) · `SocialNotificationsPage` · `NaverCallbackPage`
- **V-1~V-7·M-4 권장안 일괄 채택**: 공개범위 3단계 · 팔로우 단방향 · 한 줄 코멘트+기록 첨부 · 게시별 공개범위 · 차단/신고 + 운영자 검수 큐 · 인앱 알림 · Supabase Storage 1MB
- **라우팅·사이드바** — `/profile`·`/profile/edit`·`/u/:handle`·`/social`·`/post/:id`·`/notifications` + SNS 아이콘
### 4-11. ⭐ OAuth 진입점 확장 — 2026-05-28 신규
- **lib/auth.ts** — `signInWithKakao()` (Supabase Provider 'kakao') · `signInWithNaver()` ([nid.naver.com](http://nid.naver.com) 직접 호출 + sessionStorage CSRF state)
- **LoginPage** — 카카오(#fee500)·네이버(#03c75a)·Gmail 3종 OAuth 버튼 + 마스터 폼
- **NaverCallbackPage** — Supabase 미지원 provider 자체 콜백 처리 (env.VITE_AUTH_PROXY_URL 미설정 시 안내 fallback)
- **사장님 콘솔 작업 진행 중** — 카카오·네이버 디벨로퍼스 키 발급 + Supabase Provider 등록 + CF Pages 환경변수
### 4-12. ⭐ 본인인증 정책 결정 (Phase A 지속) — 2026-05-28 신규
- **결정**: v0.9 클로즈베타뿐 아니라 정식 출시·SNS 발효 시점까지 본인인증(SMS/PASS/KCB) 미도입 지속
- **근거**: 카카오·네이버 OAuth = 한국 환경에서 실질적 본인확인 위임 (토스·쿠팡·당근마켓 표준 패턴)
- **재검토 트리거**: 결제 도입(Phase C) 또는 법적 분쟁 발생 시
- **발행물**: [본인인증 의견서 + 타자 논의용 배경설명서 §10](https://www.notion.so/36e22962086881b0a46dde23d6c033e3) (10p+§10 사장님 최종 결정)
### 4-13. ⭐ 발행 문서 4종 (2026-05-28)
- [OAuth 카카오·네이버 설정 가이드 (11p)](https://www.notion.so/) — 사장님 단독 콘솔 작업용
- [본인인증 의견서 + 배경설명서 (10p+§10)](https://www.notion.so/) — Phase A 최종 결정 명문화
- [소셜 기능 목업 (9 섹션 30+ 모바일 목업)](https://www.notion.so/) — 라이트/다크 토글, V-1~V-7·M-4 catalog
- [엑셀형 외부 편집기 Phase 1 PoC](https://www.notion.so/) (5/27 발행, 본 페이지 참조)
---
## 5. v0.9 클로즈베타 발행 전 미비된 내용
> 🚧 (orange_bg 콜아웃)
> **v0.9 발행 전 필수 작업 영역** — 본 섹션 전 항목은 **v0.9 클로즈베타 발행 전 필수 충족기준**이다.
> 📌 **2026-05-28 갱신**: 본 컨텍스트에서 §4로 이동된 항목은 ✅ 표시 후 유지. 실제 잔존 작업만 체크박스로 표시.
### ✅ 작업 1. 기존 개발자 개인계정 데이터 귀속 정리 — **완료 (2026-05-28)**
> ✅ (green_bg 콜아웃)
> **완료 — §4-9 참조.** ccy8215 UUID 모든 사용자 테이블 매핑 완료. SAFEZONE SQL 1차+v2 사장님 실행 검증 통과.
### 🟡 작업 2. 타 사용자 데이터 분리관리 및 보안관리 — **코드 완료, fix v3 SQL 실행 대기**
> 🟡 (yellow_bg 콜아웃)
> **§4-9 참조.** SAFEZONE SQL 1차+v2 완료. shoe_configs 결함 해소를 위한 **fix v3 사장님 SQL Editor 실행 1회 잔여**.
> - ⏳ `docs/sql/260528_safezone_rls_fix_v3.sql` 실행 (Codex audit guard 반영본)
> - ⏳ 검증 6종 (마스터 mster · OAuth ccy8215 · 신규 OAuth [ccy8215.work](http://ccy8215.work) 3계정 교차)
### 🟡 작업 3. 테스트버전 분리 — **v1 시점 이관**
> 3️⃣ (gray_bg 콜아웃)
> **사장님 컨펌 2026-05-28**: Supabase 분리 + Workers 분리는 v1 출시 D-14 시점에 진행. 도메인 구매는 `*.pages.dev` 무료 사용으로 클로즈베타 종료까지 보류.
> - 🟢 staging/production 분리 (v1 D-14)
> - 🟢 도메인 구매 (v1 출시 직전)
### 🟡 작업 4. 로그인 기능 보완 — **OAuth 진입점 코드 완료, 사장님 콘솔 진행 중**
> 🟡 (yellow_bg 콜아웃)
> **§4-11 참조.** 카카오·네이버 OAuth 진입점 코드 완료.
> - ⏳ 사장님 콘솔 작업 마무리 (카카오·네이버 키 발급 + Supabase Provider + CF Pages 환경변수)
> - 🟢 CF Workers `auth-proxy` 신설 (네이버 token exchange) — 사장님 키 발급 후 CC 진행
> - 🟢 이메일 컨펌 흐름 — Supabase Auth 기본 사용 (필요 시 SendGrid/Resend 도입)
### 🟢 작업 5. CS대책 및 보안대책 수립 — **미진행 (P-2)**
> 5️⃣ (brown_bg 콜아웃)
> **가장 큰 잔여 작업.** Claude 표준 템플릿 초안 작성 후 사장님 검토 후컨펌 방식.
> - 🟢 개인정보처리방침 (건강정보 별도 동의 포함)
> - 🟢 이용약관 (서비스 사용약관)
> - 🟢 사용자 데이터 보관/수정/삭제 기준
> - 🟢 버그 신고 채널 (이메일/인앱 폼)
> - 🟢 관리자 접근 범위 정의 (마스터 RLS (a) 정책 명문화 + service_role 우회 안내)
> - 🟢 v1 D-7 변호사 자문 검토 (LIFELINE 단계 2 베타 검증 + 단계 3 자문)
### ✅ 작업 6. 개인정보 인증 필요성 검토 — **완료 (Phase A 지속 결정)**
> ✅ (green_bg 콜아웃)
> **완료 — §4-12 참조.** Phase A (OAuth 신뢰) 지속 결정 명문화. 정식 출시·SNS 시점까지 본인인증 미도입. 결제 도입 시만 재검토.
### ✅ 작업 7. 프로필 폼 개발 — **완료 (2026-05-28)**
> ✅ (green_bg 콜아웃)
> **완료 — §4-10 참조.** `profiles` 테이블·RLS · SocialProfilePage(본인/타인/편집) · 아바타 업로드 (Supabase Storage 1MB) · 공개범위·기본 게시범위 토글.
> - ⏳ 사장님 Storage 버킷 `avatars` 생성 (1MB · public · jpeg/png/webp)
> - 🟢 데스크탑 2 × N 자유 배치 (v0.9 충족기준의 일부) — 클로즈베타 안정화 후 v0.9 마감 시점 검토
> - 🟢 대시보드 공개 요소 자유 설정 (체성분/러닝/근력 공개 범위) — 핵심은 v0.9에 포함 but 세부 모드는 클로즈베타 후
### ✅ 작업 8. 타임라인 코멘트 기능 — **완료 (2026-05-28)**
> ✅ (green_bg 콜아웃)
> **완료 — §4-10 참조.** `posts`·`post_likes`·`post_comments` 테이블 · 트리거 (카운트·알림 동기화) · SocialFeedPage(피드+작성 모달) · SocialPostDetailPage(상세+댓글) · 280자 코멘트 + 운동 기록 첨부 snapshot (`attached_type`·`attached_snapshot`).
> - 🟢 단위/범위/키워드/프로젝트 기반 첨부 (목업 catalog 진본 기준 향후 디벨롭)
### ✅ 작업 9. SNS탭 신설 — **완료 (2026-05-28)**
> ✅ (green_bg 콜아웃)
> **완료 — §4-10 참조.** `follows` 테이블 · `/social` 라우트 · 사이드바 SNS 아이콘 · 팔로잉/전체 토글 · 차단/신고/알림 통합.
> - 🟢 친구추가 양방향 (V-2에서 팔로우 단방향 채택) — v1 이후 검토
### ✅ 작업 10. 셀기능 추가 — **Phase 1~4 완료 (2026-05-26)**
> ✅ (green_bg 콜아웃)
> **Phase 1~4 완료.** 체성분·러닝 셀 모드 (페이지네이션·컬럼헤드·셀편집·새행·삭제·자동계산·자세히 모달).
> - 🟢 **Phase 5 (근력 셀모드)** — 1행=1세트 옵션 B 추천안. SAFEZONE 안정화 후 별도 작업
---
## 6. 업데이트 운영 방식
> 본 페이지는 고정 문서가 아니라 v0.9 목표 관리 페이지다.
**운영 원칙:**
- Claude Code가 최초 생성한다.
- 이후 기능 완료 시 §3 달성율 그래프 갱신.
- 완료 항목은 §5에서 제거 X, ✅ 표시 후 §4로 이동·요약 반영.
- 새로 발견된 보완사항은 §5에 추가.
- v0.9 완성 충족기준이 바뀌면 변경 사유 기록.
**본문 교체 시 보관 규칙:**
- 기존 본문 있는 상태에서 교체할 경우, 이전 본문은 하위 페이지로 복사 보관.
- 보관 페이지 제목 형식: `달록 v0.9(클로즈베타버전) 완성 충족기준_yymmdd_n`
---
## 7. 완료 기준 (페이지 자체)
- ✅ 노션 "달록 개발 현황" 하위 생성
- ✅ 제목 정확
- ✅ §1 페이지 정의 150자 이내
- ✅ §2 2026-06-01 데드라인
- ✅ §3 달성율 그래프
- ✅ §4 현재 구현 기능 (2026-05-28 4-9~4-13 추가)
- ✅ §5 미비된 기능/업무 (2026-05-28 ✅ 완료 표시 + 잔존 5건만 체크박스)
- ✅ 전 항목 v0.9 충족기준 명문화
---
## 8. 갱신 — 셀기능 + 이슈 11 (2026-05-26)
> 본 페이지 발행 이후 사용자 결정으로 셀기능 추가 작업이 v0.9 충족기준에 정식 등재되고, 시각검증에서 발견된 RLS 이슈가 §5 작업 2 세부항목으로 등재됨.
### ✅ 작업 10. 셀기능 (Phase 1~4 완료) — §5 참조
**완료.** Phase 1~4 체성분·러닝 셀 모드 완료. Phase 5 (근력) 세컨드 페이즈.
### ✅ 이슈 11 — 글로벌 설정 테이블 RLS 정책 — **§4-9 SAFEZONE 으로 해결 완료 (2026-05-28)**
> ✅ (green_bg 콜아웃)
> **해결 완료.** SAFEZONE SQL 1차+v2+v3 발행으로 run_type_configs·shoe_configs·exercise_configs·app_settings 모두 정책 정상화. 마스터 정책 (a) 채택으로 OAuth/마스터 모두 본인 데이터만 표시. 사장님 검증 통과.
---
## 9. 갱신 — LIFELINE v.2 반영 (2026-05-27)
본 일자 [🚦 LIFELINE 설계서](#/doc/business-09)에서 결정된 사용자 의사결정 4건이 §5 작업 5·7·8·9에 동반 작업으로 추가 등재됨.
### 🟢 작업 5 보강 — 법적 검토 3단계 프로세스 (v0.9 → v1 단계)
**[단계 1: 자체 작성]** v0.9 베타 출시 전 — 공개 표준 약관 템플릿 차용 (P-2 작업)
**[단계 2: 베타 검증 시스템]** v0.9 클로즈베타 기간 — 평가양식·위험 표현 고지·동의서 누락 체크·이의 수집
**[단계 3: 변호사 자문]** v1.0 정식 출시 전 — 50~200만원 검토 비용
**타협 가능성**: 자문 비용 예상 초과 시 출시 → 배포 → 수익 → 자문 순서
### ✅ 작업 7~9 보강 — SNS 제한 모드 (SNSlim-1~4) — **2026-05-28 통합 완료**
> ✅ (green_bg 콜아웃)
> **완료.** 차단(blocks 테이블) + 신고(reports 테이블 + 운영자 검수 큐) + 알림(notifications 테이블) 통합 — §4-10 참조.
> - ✅ SNSlim-1: 신고 버튼 + 자동 키워드 필터 (코드 측 단어 list 단계 — 클로즈베타 후 디벨롭)
> - ✅ SNSlim-2: 차단 기능 (blocks 테이블 + 클라이언트 자동 필터)
> - ✅ SNSlim-3: 신고 누적 N건 자동 비공개 (DB 측 트리거 또는 운영 UI 단계 — 작업 8-3 단계 신설)
> - ✅ SNSlim-4: 클레임/계정 입력 (`reports.reason` enum 5종 정의 완료)
### 진행률 영향
SNSlim-1~4 (4건) 모두 §4-10 통합 구현. 진행률 +5%p.
---
## 10. 갱신 — 2026-05-28 야간 통합 컨텍스트 (대폭 갱신)
본 일자 사장님 명시 위임으로 SAFEZONE+소셜+OAuth+디자인 시스템+노션 발행물을 일괄 처리. 진행률 65~70% → 85~90%.
### 주요 산출물
- SQL 3종 (`safezone_rls_policy_a`·`safezone_rls_fix_v2`·`safezone_rls_fix_v3`·`social_schema`)
- 클라이언트 신규 6 파일 (소셜 5 + NaverCallback 1)
- 수정 4 파일 (App·Layout·auth·LoginPage)
- HTML 발행물 3종 (OAuth 가이드·본인인증 의견서·소셜 목업)
- 커밋 7건 origin/main push 완료
- 노션 3 페이지 (핸드오프·작업노트·작업일지)
- 메모리 5건 (verification-policy·master-rls-policy·nonstop-autonomy·nondev-explainer·data-classification-lesson)
- Codex adversarial 검수 통과 (지적 2건 반영 완료)
### 다음 컨텍스트 우선순위
1. 사장님 SAFEZONE fix v3 SQL 실행 검증 결과 접수
2. 사장님 소셜 스키마 SQL 실행 검증 결과 접수
3. 사장님 Storage 버킷 `avatars` 생성
4. 2계정 교차 검증 (마스터 + ccy8215 + [ccy8215.work](http://ccy8215.work)) 결과 접수 + 회귀 fix
5. CF Workers `auth-proxy` 신설 (네이버 token exchange)
6. 작업 5 약관 P-2 Claude 표준 템플릿 초안
7. 디자인 이식 잔여 (CoachNotes · History · Settings)
