---
title: "달록(PaceLog)설명서"
notion_id: "36622962086881959c39fe2f39426071"
notion_url: "https://app.notion.com/p/36622962086881959c39fe2f39426071"
category: "guide"
parent: "달록 개발 현황"
updated: "2026-05-27"
priority: "High"
purpose: "달록(PaceLog) 외부 설명자료(PPT·카탈로그·리플렛·소개서) 원천 문서 — 포지셔닝·기능·로드맵·SWOT·3P 종합"
read_when: ["프로젝트개요","사업·수익화"]
---

# 달록(PaceLog) 설명서 v0.1
작성일: 2026-05-23 | 버전: v0.1 (초판) | 작성 주체: [Claude.ai](http://Claude.ai) (사용자 승인 기반)
> 이 페이지는 기능설명서, UI시각화 내용 설명서, [Claude.ai](http://Claude.ai) MCP브라우징 보고서(v2 시각 검증), 핸드오프 및 대화록에서 발췌한 사용자의 기능 개발 의도를 바탕으로 작성된 **달록(PaceLog) 외부 설명자료 원천 문서**이다. PPT·카탈로그·리플렛·소개서 등 외부 전달용 자료는 본 문서에서 발췌·재구성한다.
---
## 0. 한 줄 소개
> **달록(PaceLog)** — 매일의 한 걸음을 기록으로 남기는, 러닝·체성분·근력 통합 로그 + AI 코치 브리프 서비스.
- 슬로건(현 로그인 화면 기준): **"매일의 한 걸음을 기록으로 남기다"**
- 워드마크: **DALLOG / PACELOG** (Bebas Neue · 라임 강조 #c8f135)
- 심볼: 러너 SVG (라임 필터)
---
## 1. 서비스 포지셔닝
### 1-1. 무엇을 하는가
달록은 **러닝 · 체성분 · 근력** 세 개의 운동 도메인을 하나의 화면·하나의 데이터 모델로 통합한 개인용 PWA(웹앱)이다. 분산된 트래커 앱(삼성헬스·나이키런·스트라바·가민·인바디 등) 사이를 오가지 않고, 한 곳에서:
1. **기록**한다 — 3-탭 단일 입력 폼
2. **본다** — 대시보드 3-섹션 + 히스토리 멀티 뷰(달력·큰 썸네일·한 줄)
3. **코칭 받는다** — AI(Anthropic Claude)가 최근 2주 데이터·개인 메모·운영 지침을 종합해 6-섹션 코치 브리프 발행
### 1-2. 왜 따로 만들었는가 (차별점)
- **3-도메인 통합** — 대부분의 트래커가 한 도메인(러닝만 / 체성분만 / 근력만) 전문이다. 달록은 같은 날짜축 위에서 셋을 같이 본다.
- **AI 코치가 "내 데이터"를 본다** — 일반 AI 챗봇과 달리 사용자 본인의 최근 30일 기록 + 사용자가 등록한 코칭 지침(러닝 철학·부상 이력·식이·기타) + 직전 브리프를 컨텍스트로 받아 응답한다.
- **운영자 1명이 직접 운용하는 PWA** — 비-스토어 배포, 환경 분리(데모/프로덕션), CF Workers 키 프록시까지 1인 운영에 맞춘 최소 인프라.
- **데이터 밀도 우선 UI** — 캘린더 셀에 일별 핵심 수치(체중·골격근·체지방·BMR / 거리·런타입·페이스·심박)를 직접 표시. 클릭해야 보이는 정보를 최소화.
### 1-3. 무엇이 아닌가
- 소셜 피드 서비스가 아님 (프로필·타임라인은 로드맵 I파트 — 추후 옵션)
- 트레이너 매칭·코칭 마켓이 아님 (AI 코치는 본인 데이터 해석 보조)
- 종합 헬스케어 플랫폼이 아님 (식이·수면 등은 사용자 메모 1-필드로만 수용)
---
## 2. 타깃 사용자
### 2-1. 1차 페르소나 — "기록을 모으는 러너 / 체성분 관리자"
- 러닝을 정기적으로 하고 동시에 체성분·근력 변화도 함께 관리하고 싶은 개인
- 이미 여러 앱(러닝 트래커 + 인바디 앱 + 근력 노트)을 쓰고 있지만 **한 곳에서 비교·해석**되길 원함
- 매주/매월 자신의 변화를 정리·복기하는 습관이 있는 사용자
- "수치"와 "코멘트"를 같이 보고 싶은 사용자 (그래프만으로는 부족)
### 2-2. 2차 페르소나 — "AI를 코치로 쓰고 싶은 자기관리자"
- 트레이너를 상시 둘 만큼은 아니지만 **자기 데이터에 기반한 의견**은 받고 싶음
- 데이터를 매번 복사·붙여넣지 않고 **자동 컨텍스트 주입**되는 AI 응답을 원함
- 식단·부상·라이프스타일 메모를 한 곳에 정리하고 그것이 코칭에 반영되길 원함
### 2-3. 운영 단계
- **현재(2026-05)**: 1인 사용 + 지인 데모 배포([dallog.pages.dev](http://dallog.pages.dev)) 단계
- **다음**: 멀티유저(G-4 보안점검 완료 후) → 지인 그룹 → 옵트인 공개 프로필(I파트)
---
## 3. 핵심 기능 (5가지 축)
### 3-1. 통합 기록 — 한 화면, 3-탭 입력
모든 기록은 `/log` 단일 페이지에서 **체성분 / 러닝 / 근력** 3-탭으로 입력한다.
- **체성분**: 체중·골격근·체지방량 입력 시 체지방률과 BMR(370 + 21.6 × 제지방량)이 자동 계산되고, 활성 피트니스 프로젝트와 자동 연동된다(목표일 임박순). 같은 날짜는 덮어쓰기(upsert).
- **러닝**: 거리·소요시간 입력 시 페이스(분′초″/km)·속도(km/h) 자동 계산. AM/PM·시·분 분리 입력 컴포넌트, 신발·런타입 사용자 정의 드롭다운, 기록/비기록 토글, 메모.
- **근력**: 카테고리 → 종목 2단계 드롭다운, 세트별 중량/추가중량/반복 입력. 카테고리별 볼륨이 자동 계산된다(맨몸=체중×부하율+추가중량, 웨이트/머신=중량×반복, 아이소메트릭=0). 사용자 체중은 인바디 최근 기록을 자동 가져온다.
- **저장된 루틴/운동 불러오기**: 자주 쓰는 운동·루틴을 템플릿으로 저장·불러오기.
### 3-2. 통합 대시보드 — 3-도메인 한 화면 요약
`/dashboard`에서 체성분 / 러닝 / 근력 세 섹션을 동시 노출한다.
- 데스크탑(≥1024px): 3-column grid
- 모바일(<1024px): 단일 컬럼 stack + 우측 fixed 세로 탭(스크롤 점프)
- 마운트 시 체성분 180건 · 러닝 180건 · 근력 60건을 일괄 로드해 각 섹션에 분배
- 차트: chart.js / react-chartjs-2 기반의 라인·바·혼합 차트
### 3-3. 통합 히스토리 — 멀티 뷰 / 도메인 탭 / 기간 필터
`/history`에서 같은 데이터를 세 가지 시각으로 본다.
- **3-탭**: 체성분 / 러닝 / 근력 (`?tab=...` URL 동기화)
- **3-뷰 모드**: 달력 / 큰 썸네일 / 한 줄 행 (사용자 선호 영속 저장)
- **달력 셀 직접 표시**: 일별로 체중·골격근·체지방·BMR(체성분 탭) / 거리·런타입·페이스·심박(러닝 탭)이 셀 안에 노출 — 클릭하지 않아도 핵심 수치가 보임
- **상단 요약 브리프**: 기간 토글 + 혼합 차트 + 키워드 분석(SummaryBrief)
- **편집·삭제·다중 선택 일괄 삭제·키워드 검색·기간 검색** 지원
### 3-4. AI 코치 브리프 — 데이터 기반 6-섹션 코멘트
`/coach`에서 사용자의 최근 데이터를 컨텍스트로 AI 코치 브리프를 발행한다.
- **컨텍스트 입력**: 최근 2주의 체성분·러닝·근력 + 개인 메모 + AI 브리프 지침 4항목(러닝 철학 / 부상 이력 / 식이 / 기타) + 이전 브리프 1건
- **출력 구성**:
	- 텍스트 브리프(6-섹션 prose, Markdown 렌더링 — h2 헤더·문단·코드블록 분리)
	- 시각화 카드: 내일 훈련 / 영양 / 메뉴 / 주간 평가 / 코치 한마디
	- 발행 시각: 한국시간 `yy-m-d AM/PM h:mm:ss`
- **데스크탑 3-column**: 좌(시각화) / 중(텍스트) / 우(지침·액션·신규 노트)
- **수동 노트**: brief / review / milestone 카테고리별 색상 라벨로 누적
### 3-5. 개인 설정 — 6개 섹션
`/settings`에서 6개 섹션을 좌측 아코디언(데스크탑) / 풀스크린 메뉴(모바일)로 관리.
1. **피트니스 목표** — 프로젝트(이름·시작일·목표일·시작/목표 체성분·표시 지표) CRUD
2. **개인 러닝 설정** — 신발·런타입(색상 포함) CRUD
3. **근력운동** — 종목·카테고리·체중 부하율 + 저장된 루틴/운동 CRUD
4. **개인 메모** — 1-필드 long text (AI 컨텍스트 자동 주입)
5. **계정 설정** — 표시 이름, 로그아웃, AI 브리프 지침 4-필드, AI에게 보내기, **테마(다크 / 라이트 / 시스템)**
6. **수정 로그** — 데이터 변경 이력
URL hash 라우팅(`#goals`, `#account`, `#changelog` 등)으로 외부 진입 가능.
---
## 4. 사용 흐름 (Golden Path)
```plain text
[로그인]
  ↓ (Gmail OAuth 또는 마스터 계정)
[대시보드] — 오늘까지의 3-도메인 요약을 본다
  ↓
[기록] — 오늘의 체성분/러닝/근력 중 해당 항목을 입력
  ↓ (자동 계산: BMR / 페이스 / 볼륨)
[히스토리] — 같은 데이터를 달력·썸네일·리스트로 복기
  ↓ (필요 시 SummaryBrief로 기간 비교)
[코치] — AI 브리프 발행 → 텍스트 + 시각화 카드 + 코치 한마디
  ↓
[설정] — 메모·지침 보강 → 다음 브리프에 자동 반영
```
부수 흐름:
- **AI에게 보내기(소유주 한정)** — 헤더/사이드바 버튼 클릭 시 30일 데이터 + 최근 브리프 + 메모 + 지침을 한 장의 마크다운으로 직렬화해 클립보드에 복사. 외부 AI([Claude.ai](http://Claude.ai) 등)에 그대로 붙여넣어 추가 분석 가능.
- **데모 모드** — `VITE_IS_DEMO=true`일 때 인증 가드 우회 + 저장 차단(`DemoBlockModal`). 지인 공유·시연용.
---
## 5. 디자인 · UX 특징
### 5-1. 비주얼 아이덴티티
- **다크 베이스 + 라임 강조** — 배경 `#0a0a0a` / 카드 `#111111` / 입력 `#1a1a1a`, 1차 강조 라임 `#c8f135` (단일 페이지에서 76건 일관 적용 — MCP v2 실측), 보조 코랄 `#D85A30`(주의)·티얼 `#1D9E75`(긍정)·앰버 `#EF9F27`(마일스톤)
- **타이포** — 표시용 Bebas Neue(로고·숫자·제목) / 본문 Noto Sans KR
- **러너 심볼** — 라임 필터 32×32 인라인 SVG, 사이드바 로고 영역과 파비콘 공통
- **라이트 모드 지원** — 다크/라이트/시스템 3택(라이트 bg `#fafafa`, text `#181818`)
### 5-2. 레이아웃 원칙 (소스코드 확정값)
- **데스크탑(≥769px)**: 좌측 sticky 사이드바 240px(접힘 64px) + 본문 max-width 1600px(WIDE 라우트) / 600px(`/log` 등 입력)
- **모바일(≤768px)**: 상단 sticky header + 본문 + fixed 하단 탭바(safe-area-inset-bottom 대응)
- **모바일 탭바 4개**: 대시보드 / 기록 / 코치 / 프로필 (설정은 상단 banner link)
- **CSS 방식**: Tailwind 미사용, 순수 CSS + CSS 변수 토큰(`:root --bg --accent ...`) + 인라인 style 병용
### 5-3. UX 원칙
- **데스크탑 최적 설계 후 모바일 반응형** — 모바일 퍼스트가 아닌, 데스크탑 와이드 컬럼을 기준으로 설계하고 모바일은 stack/햄버거로 단계적 축소
- **정보 밀도 보전** — 캘린더 셀, 메트릭 카드, 차트 헤더에 핵심 수치를 직접 노출
- **인라인 편집** — 모달 진입 없이 카드 위에서 토글로 편집/확인
- **단축 진입** — 모든 페이지에 URL 쿼리(`?tab=`, `?section=`)·hash(`#goals`) 직접 진입 가능
---
## 6. 기술 · 인프라 개요 (외부 설명용 요약)
> 본 절은 외부 설명자료에서 "어떻게 만들어졌는가"를 간단히 소개할 때 인용하는 요약이다. 자세한 구조는 [기능설명서](#/doc/spec-doc-02)와 [UI시각화 내용 설명서](#/doc/spec-doc-01)를 참조.
- **프론트엔드**: React 18 + Vite 5 + TypeScript, React Router, chart.js + react-chartjs-2, react-markdown + DOMPurify
- **백엔드(BaaS)**: Supabase (Auth + Postgres)
- **AI 프록시**: Cloudflare Workers (`dallog-brief-proxy.ccy4848.workers.dev`) — Anthropic API 키 보호 및 CORS 해소
- **AI 모델**: Anthropic Claude (haiku-4-5 · sonnet-4 혼합 사용)
- **배포**: Cloudflare Pages (`dallog.pages.dev`) — PWA
- **환경 분리**: `VITE_IS_DEMO` 플래그로 데모/프로덕션 단일 빌드 분기
테이블 구조(요지):
- `body_records`(체성분) / `running_logs`(러닝) / `strength_logs → strength_exercises → strength_sets`(근력 3단 정규화)
- `coach_notes`(AI 브리프 / 수동 노트), `app_settings`(JSON — 프로젝트·루틴·메모·지침·브리프 캐시)
- `shoe_configs` / `run_type_configs` / `exercise_configs`(사용자 정의 옵션)
---
## 7. 계정 · 운영 모델
### 7-1. 로그인 방식 2종
- **Gmail OAuth** (Supabase `signInWithGoogle`) — 일반 사용자용
- **마스터 계정** (운영자용 로컬 세션 — Supabase 비의존) — 시연·관리용
- 두 세션은 `useAuth` 훅에서 OR 통합되어 동일 UX 제공
### 7-2. 데모 모드
- `VITE_IS_DEMO=true` 빌드에서 인증 가드 우회, 저장은 차단되고 화면 데이터를 외부 AI로 즉시 전송 가능 (`AISendButton`)
- 지인 공개 데모/제품 시연/세일즈 데크 시연에 사용
### 7-3. 멀티유저(로드맵 G-4)
- 현재는 1인 + 데모 단계
- RLS / 환경변수 / CORS / Rate Limiting 등 보안 6단계 점검 완료 후 지인 그룹 단위로 확장 예정
---
## 8. 데이터 · 프라이버시 원칙
- 모든 사용자 데이터는 Supabase Postgres에 저장되며 사용자 본인 계정에 귀속
- AI 호출 시 데이터는 CF Workers 프록시를 거쳐 Anthropic으로만 전달되며, 본인 컨텍스트 내 즉시 응답 후 저장은 본인 DB(`coach_notes` 테이블)에만 이뤄짐
- 외부 AI([Claude.ai](http://Claude.ai) 등)로 데이터를 보내는 "AI에게 보내기"는 **소유주 계정에 한해 노출**되며, 클립보드 복사 방식이므로 사용자가 어디에 붙여넣을지 직접 선택
- 자격증명(마스터 비밀번호, Supabase URL/anon key, Anthropic 키)은 환경변수·소스코드에만 존재하며 본 문서·외부 자료에는 노출하지 않음
---
## 9. 로드맵 (외부 공개 가능 수준 요약)
| 단계 | 범위 | 상태 |
|---|---|---|
| 1단계 — 1인 기록·코칭 PWA | 3-도메인 통합 / AI 브리프 / 다크·라이트 테마 / 설정 아코디언 | **출시 완료** (2026-05) |
| 2단계 — 트래킹 자동화 | 스크린샷 OCR 자동 기록(H파트) → 보정 후 저장 → **Health Connect 통합 채널**(로드맵, PWA/Android화 선행) — *재정의 2026-05-27, 개별 앱 공식 API 직접 연동 폐기* | 다음 우선순위 |
| 3단계 — 멀티유저·지인 배포 | RLS·CORS·Rate Limiting 보안 점검 후 옵트인 멀티유저(G-4) | 보안 점검 후 |
| 4단계 — 프로필·소셜 옵션 | 옵트인 공개 프로필 + SNS형 타임라인 + 하단 탭 진입점(I파트) | G-4 이후 |
| 5단계 — 애널리틱스·어드민 | 이용패턴 분석 + 커스텀 지표 + AI 자동 리포트 + 피드백 채널(J파트) | 로드맵 |

세부 항목과 진행률은 [✅ 작업 체크리스트 v6](#/doc/checklist-01)에서 운영 기준 관리.
---
## 10. 외부 설명자료 작성 시 활용 포인트
본 문서를 PPT·카탈로그·리플렛·소개서로 재구성할 때의 발췌 가이드.
| 자료 유형 | 권장 발췌 구성 |
|---|---|
| **1-pager 소개** | 0(슬로건) + 1(포지셔닝) + 3(핵심 기능 5축 요약) + 9(로드맵 1~2단계) |
| **세일즈 데크(10~12장)** | 0 → 1 → 2(타깃) → 4(Golden Path) → 3(기능 5축 각 1장) → 5(디자인) → 9(로드맵) → 7(데모 안내) |
| **리플렛(접지 3단)** | 앞면 0+1, 안쪽 3+4, 뒷면 5(디자인 미니컷)+7(접속 정보) |
| **카탈로그·기능 소개서** | 3(전체) + 4 + 5 + 6(요약) + 8(프라이버시) — 기술 세부는 8까지 |
| **투자/사업 자료** | 1+2+9 중심, 7-3 멀티유저 단계와 5단계 어드민 강조 |

이미지 자산:
- **러너 심볼 SVG**(라임 필터) — 로고 자리
- **라임 강조 컬러 #c8f135** — 강조 요소
- **다크 배경 #0a0a0a / 카드 #111111** — 슬라이드 배경
- **MCP 시각 검증 32컷** — [MCP브라우징 보고서](#/doc/research-01) 부록 A-갤러리 ([catbox.moe](http://catbox.moe) 호스팅)
---
## 11. 출처 · 갱신 트리거
본 문서의 사실(Fact) 출처:
- [달록(PaceLog) 기능설명서](#/doc/spec-doc-02) — 소스코드 기반 기능 목록
- [UI시각화 내용 설명서](#/doc/spec-doc-01) — 소스코드 기반 레이아웃·토큰
- [MCP브라우징 보고서 v2](#/doc/research-01) — 시각 검증 32컷·픽셀 실측
- [✅ 작업 체크리스트 v6](#/doc/checklist-01) — F-7(테마) / F-9(설정 아코디언) / E-6(Markdown) / I-0(프로필 진입점) 등 최근 통합 사항
- [📌 달록 개발 운영 핵심지침](#/doc/rules-04) §9-5 — 본 문서 갱신 트리거 정의
본 문서 갱신 트리거(§9-5 준수):
1. 기능설명서·UI시각화·MCP브라우징 중 **2개 이상**이 새 버전으로 갱신됐을 때
2. 핵심 기능·사용 흐름·타깃·포지셔닝·상품화 방향이 변경됐을 때
3. 사용자가 외부 설명자료 제작을 준비할 때
4. [Claude.ai](http://Claude.ai)가 갱신 필요를 제안하고 **사용자가 승인**했을 때
갱신 흐름: [Claude.ai](http://Claude.ai) 판단 → 사용자 추천 → 사용자 승인 → 원천 문서 종합 → 본문 초안 작성 → 사용자 검토·승인 → (필요 시) Claude Code 노션 최신화. 본문 교체 시 이전 본문은 `달록(PaceLog)설명서_yymmdd_n` 하위 페이지로 보관.
---
## 12. 화면 갤러리 (스크린샷)
> 외부 설명자료에 활용 가능한 최신 화면 캡처. 가장 최근의 시각 검증은 **v3 최종 polish 검수(2026-05-22)** — 다크·라이트 × 데스크탑·모바일 4조합 × 7개 라우트, 23컷, P0/P1 5건 모두 통과 — 이지만 v3 캡처는 로컬(`final-01 ~ final-23.png`, 사무실 D:dallog) 보관본이라 외부 URL이 없다. 따라서 본 갤러리는 **외부에서 접근 가능한 가장 최근의 캡처인 v2(2026-05-21, **[**catbox.moe**](http://catbox.moe)** 32컷)** 를 사용하며, 본 캡처는 v3 polish 검수에서 정상 통과한 상태와 동일하다.
>
> 외부 자료 제작 시: 최신·고해상도가 필요하면 사무실 D:dallog 로컬에서 v3 final-NN.png 사용, 즉시 임베드가 필요하면 아래 v2 URL 사용.
### 12-1. 로그인
- 데스크탑 (브랜드 split):
	![로그인 데스크탑](https://files.catbox.moe/wded6q.png)
- 모바일 (stack):
	![로그인 모바일](https://files.catbox.moe/4chnyd.png)
### 12-2. 대시보드 — 3-도메인 통합 요약
- 데스크탑 BODY 탭:
	![대시보드 데스크탑 BODY](https://files.catbox.moe/b8s2ly.png)
- 데스크탑 RUNNING 탭:
	![대시보드 데스크탑 RUNNING](https://files.catbox.moe/r2yqhp.png)
- 데스크탑 STRENGTH 탭:
	![대시보드 데스크탑 STRENGTH](https://files.catbox.moe/gpi4b6.png)
- 모바일 BODY (하단 탭바 확인):
	![대시보드 모바일 BODY](https://files.catbox.moe/myvumj.png)
### 12-3. 히스토리 — 3-뷰 모드
- 달력 뷰 (셀에 일별 수치 직접 표시):
	![히스토리 달력 뷰](https://files.catbox.moe/4h7zdv.png)
- 큰 썸네일 뷰:
	![히스토리 큰 썸네일](https://files.catbox.moe/9e10o7.png)
- 한 줄 자세히 뷰:
	![히스토리 한 줄 자세히](https://files.catbox.moe/5af5gt.png)
- 러닝 탭 데스크탑:
	![히스토리 러닝 데스크탑](https://files.catbox.moe/iwhjsb.png)
### 12-4. 코치노트 — AI 브리프
- 데스크탑 3-column (좌 시각화 / 중 텍스트 / 우 지침·액션):
	![코치노트 데스크탑](https://files.catbox.moe/kas6ng.png)
- 모바일 stack:
	![코치노트 모바일](https://files.catbox.moe/kof9hi.png)
### 12-5. 기록 입력 — 600px 단일 컬럼
- 체성분 탭:
	![기록 입력 체성분](https://files.catbox.moe/hk92z1.png)
- 러닝 탭:
	![기록 입력 러닝](https://files.catbox.moe/0kpelx.png)
- 근력 탭:
	![기록 입력 근력](https://files.catbox.moe/czzcqp.png)
- 모바일 체성분:
	![기록 입력 모바일 체성분](https://files.catbox.moe/ml1u91.png)
### 12-6. 설정 — 6개 섹션
- 피트니스 목표:
	![설정 피트니스 목표](https://files.catbox.moe/kkog2i.png)
- 개인 러닝 설정:
	![설정 개인 러닝](https://files.catbox.moe/4k5iq1.png)
- 근력운동 종목:
	![설정 근력운동](https://files.catbox.moe/wfrre7.png)
- 계정 설정 (테마·AI 지침):
	![설정 계정 설정](https://files.catbox.moe/tddaku.png)
> 갤러리 외부 호스팅 주의: [catbox.moe](http://catbox.moe)는 익명 무료 영구 호스팅이지만 장기 보존 보장이 없다. 인쇄·투자자료 등 영구 보존이 필요한 경우 로컬 원본(`mcp_reports/_assets/260521_ui_comparison/current/` 또는 사무실 D:dallog `final-NN.png`)에서 다시 추출하여 자체 자산화 권장.
---
## 13. SWOT 분석
외부 설명자료(투자 데크·B2B 제안서·시장 진단 슬라이드)에 그대로 인용 가능한 4분면 요약. 사실 근거는 §1~§9에서 도출.
| 구분 | 핵심 항목 |
|---|---|
| **S — Strengths (강점)** | • 러닝·체성분·근력 **3-도메인 단일 데이터 모델** 통합 (경쟁 트래커 대부분 단일 도메인)<br>• AI 코치가 **사용자 본인의 30일 데이터 + 운영 지침 + 이전 브리프**를 자동 컨텍스트로 응답 (일반 챗봇 대비 차별화)<br>• **데이터 밀도 우선 UI** — 캘린더 셀 직접 표시, 멀티 뷰(달력/썸네일/리스트), SummaryBrief 기간 비교<br>• **다크·라이트·시스템 테마 + PWA** — 스토어 비의존, OS 무관 설치<br>• CF Workers 키 프록시 + 환경 분리(데모/프로덕션)로 **1인 운영 가능한 최소 인프라**<br>• 라임 #c8f135 단일 페이지 76건 일관 적용 — **브랜드 톤 확립** |
| **W — Weaknesses (약점)** | • **멀티유저 미완** — 현재 1인 + 지인 데모 (G-4 보안점검 후 확장)<br>• **입력 자동화 부재** — 모든 기록을 수동 입력 (H파트 OCR 도입 예정)<br>• 운영팀·CS 부재 (1인 사이드 프로젝트)<br>• **브랜드 인지도 0** — 외부 노출·후기·트래픽 없음<br>• **수익 모델 미정** — 가격 정책 검토 중<br>• 일부 자동화 미흡: /settings 수정로그 콘솔 400(fallback 동작), /coach 모바일 액션 버튼 23px (잔여 polish) |
| **O — Opportunities (기회)** | • **다(多) 트래커 사용자 통합 수요** — 러닝(스트라바·나이키런) + 체성분(인바디 앱) + 근력 노트를 각각 쓰는 사용자에게 통합 서비스 부재<br>• **자기 데이터 기반 AI 코칭 수요 증가** — 일반 AI는 본인 데이터 미반영, 트레이너는 비용 부담<br>• **OCR 자동입력 도입 시 진입장벽 급감** — 모든 트래커 앱과 호환 (스크린샷만 있으면 됨)<br>• **멀티유저 + 옵트인 소셜(I파트)** 시 커뮤니티 효과·자연 유입 가능성<br>• **트레이너·피트니스 센터·기업 웰니스** B2B 협업 채널<br>• PWA 기반 — App Store/Play Store **심사·수수료 회피**, 빠른 반복 배포 |
| **T — Threats (위협)** | • **빅테크 트래커(나이키런·스트라바·삼성헬스·애플 Fitness)** 의 통합 기능 확장 — 도메인 확장 시 격차 축소<br>• **외부 인프라 종속** — Anthropic API 가격·정책, Supabase·Cloudflare 정책 변동 리스크<br>• **개인정보 규제 강화** — 건강·운동 데이터 처리 규제 (GDPR·국내 개인정보보호법)<br>• AI API **사용량 비용 변동** — Freemium 구조 시 적자 위험<br>• **1인 운영 지속성 리스크** — 운영자 가용성 변동 시 서비스 중단 우려 (인계·문서화는 본 노션 체계로 일부 완화)<br>• 무료 PWA 트래커 경쟁자 증가 — 차별점 약화 가능성 |

**전략 매트릭스 요지 (SO / WO / ST / WT)**
- **SO (강점×기회)**: 3-도메인 통합 + AI 코치를 OCR 자동입력과 결합해 "트래커는 그대로 쓰되 분석·코칭만 달록" 포지셔닝
- **WO (약점×기회)**: 멀티유저·CS 부재 → 초기엔 **러닝 동호회·트레이너 그룹 한정 베타**로 시작해 사용자가 사용자 지원 (커뮤니티 모델)
- **ST (강점×위협)**: 빅테크 통합 확장에 대비해 **AI 컨텍스트 깊이(개인 지침·메모·이전 브리프)**를 진입 장벽으로 강화
- **WT (약점×위협)**: 외부 인프라 종속·1인 운영 리스크 → 데이터 export·백업 기능을 사용자 신뢰 장치로 우선 구현
---
## 14. 3P 분석 (Marketing Mix — Product · Price · Place)
### 14-1. Product (제품)
- **핵심 가치 제안 (Value Proposition)**: *"내 러닝·체성분·근력 30일 데이터를 한 화면에서 보고, AI 코치가 내 지침을 반영해 매번 다른 코멘트를 준다."*
- **차별화 축**:
	1. **3-도메인 통합 데이터 모델** — `body_records` / `running_logs` / `strength_logs` 정규화 + `app_settings` JSON으로 사용자 지침·루틴 일원화
	2. **AI 컨텍스트 자동 주입** — `buildAIHandoffMarkdown()`가 30일 데이터 + 메모 + 지침 + 직전 브리프를 한 장 마크다운으로 직렬화
	3. **데이터 밀도 우선 UI** — 캘린더 셀 직접 표시 + 멀티 뷰 + URL 쿼리·hash 단축 진입
- **제품 형태**: PWA (React 18 + Vite 5 + Supabase + Cloudflare). 다크·라이트·시스템 테마, 모바일 4-탭, 데스크탑 사이드바·아코디언.
- **현재 라인업 (단일)**: 통합형 1제품. 데모 / 프로덕션 환경만 분리.
- **확장 라인업 (로드맵)**:
	- **H파트** — 스크린샷 OCR 자동기록 + 사용자 보정 UI
	- **G-4** — 멀티유저 (RLS·환경변수·CORS·Rate Limiting 보안 6단계)
	- **I파트** — 옵트인 프로필·SNS형 타임라인
	- **J파트** — 어드민·애널리틱스·AI 자동 리포트·피드백 채널
- **품질 지표 (현재 달성)**: 가로 스크롤 0건 / 콘솔 오류 0건(C-6 잔존 1건은 fallback 가림) / P0·P1 5건 시각 검증 통과 (v3 polish 검수 2026-05-22)
### 14-2. Price (가격)
- **현재 상태**: **무료** — 1인 사용 + 지인 데모 (`dallog.pages.dev`). 가격 정책은 G-4 멀티유저 이후 결정.
- **검토 중인 가격 전략 옵션** (확정 아님 — 외부 자료 인용 시 "검토 중" 명시 필수):
	1. **Freemium** — 기본 무료 + AI 브리프 횟수 / OCR 자동입력 / 고급 분석을 유료 unlock
	2. **월 구독** — 모든 기능 포함 구독, 가격대는 시장 조사 후 결정
	3. **B2B 라이선스** — 트레이너·피트니스 센터·기업 웰니스 그룹 코칭용 별도 라이선스
- **원가 구조 (1인 운영 기준)**:
	- Anthropic API — 브리프 1건당 토큰 사용량 (변동, 코칭 컨텍스트 길이에 비례). haiku-4-5 / sonnet-4 혼합 사용으로 최적화
	- Supabase — 무료 티어 (Postgres + Auth)
	- Cloudflare Workers / Pages — 무료 티어 (요청 수 한도 내)
	- 도메인 비용 — 연 단위 고정 (소액)
- **단가 결정 시 고려 변수**: AI 사용량 상한, OCR 처리 비용(H파트 도입 시), 멀티유저 시 RLS·백업 오버헤드, CS 제공 범위
- **결제 인프라**: 미도입 (가격 확정 후 결정)
### 14-3. Place (유통 · 접점)
- **1차 채널 — 웹 PWA**: `dallog.pages.dev` 직접 URL 공유, 모바일 홈화면 설치("앱처럼" 사용 가능)
- **비-스토어 전략**: App Store / Play Store 미진입 → PWA로 우회. **심사·수수료(15~30%) 회피**, 즉시 배포·즉시 롤백 가능
- **시연 동선**: 데모 모드(`VITE_IS_DEMO=true`) — 인증 가드 우회 + 저장 차단(DemoBlockModal) + 데이터 클립보드 export 가능. **세일즈 미팅·라이브 데모·기자 시연에 안전**
- **잠재 마케팅 채널 (G-4 이후)**:
	- 러닝 동호회·러너 커뮤니티 (러너스월드, 가민포럼, 지역 마라톤 클럽 등)
	- AI 도구 디렉토리 (Product Hunt, AI 도구 모음 사이트)
	- 운동 인플루언서·블로거·유튜버 후기 노출
	- 인스타그램·스레드 등 자기관리 콘텐츠 채널
- **잠재 B2B 채널**:
	- 개인 트레이너 / 퍼스널 트레이닝 센터 — 회원 데이터 통합 코칭 도구
	- 피트니스 센터 / 헬스장 — 회원 진단·관리 부가 서비스
	- 기업 웰니스 프로그램 — 임직원 자기관리 솔루션
- **데이터 인접 진입점**:
	- **AI에게 보내기** (소유주 한정) — 본인 데이터를 외부 AI([Claude.ai](http://Claude.ai) 등)에 즉시 붙여넣어 추가 분석 가능. 외부 AI 사용자가 달록 데이터 컨텍스트를 경험 → 역방향 유입 가능성
> 보조 P 확장 가능성: 서비스 마케팅의 People · Process · Physical evidence (서비스 7P) 관점이 필요한 자료(예: B2B 제안서)에서는 People = "1인 운영 + AI 코치", Process = "기록 → 자동 컨텍스트 직렬화 → AI 응답", Physical evidence = "PWA UI + 마크다운 브리프 + 캘린더 셀 직접 표시" 로 §3·§4·§5 본문에서 발췌 재구성.
---
## 이전버전
(초기 생성 v0.1 — 이전버전 없음)
---
## 갱신 부록 A — 셀 입력 모드 + 신발 마일리지 (2026-05-26)
본 부록은 2026-05-26 본 컨텍스트에서 추가·확정된 기능을 본문 §3-3(통합 히스토리) / §9(로드맵) 항목에 합쳐서 읽기 위한 보강 섹션. 본문 교체 없이 부록 형태 추가.
### A-1. 통합 히스토리 — 셀 입력 모드 추가 (§3-3 보강)
기존 3-뷰 모드(달력 / 큰 썸네일 / 한 줄) 중 **"한 줄 자세히"가 구글시트 스타일의 셀 입력 모드로 진화**.
- 본래 달록 개발 의도가 구글시트에 체성분·러닝 기록을 입력·관리하던 경험을 앱으로 옮긴 것이라, 셀 모드는 달록의 본질적 입력 패러다임을 회복한 것
- 체성분 8컬럼 / 러닝 14컬럼 (날짜·시간·거리·런타입·루틴·신발·소요시간·페이스·속도·평균심박·최대심박·케이던스·칼로리·거리반영)
- **수정 모드 활성화** 시 행별 체크박스 + 페이지 전체선택 + 인라인 셀 편집 + 모두저장 / 취소 / 새 행 추가 / 선택 삭제
- **컬럼 커스텀** — 토글 + 화살표(↑↓) 순서 변경, localStorage 영속
- **컬럼 필터 (MS 엑셀 패턴)** — 카테고리 체크박스 + 검색 + 전체선택/해제 + 적용/해제
- **자동계산 유지** — 체지방률·BMR·페이스·속도 모두 셀 안에 연 라임 톤(`#d4e8a0`)으로 표시
- **자세히 모달 클릭 복원** — 수정 모드 비활성 시 행 클릭 → 기존 상세 모달
- **10/30/50행 페이지네이션** — 정렬·검색·기간 필터와 결합
- **단위 표시** — "110.8 kg" / "138 bpm" / "31.1 %" 등
- 근력 탭은 **Phase 5 세컨드 페이즈 보류** (옵션 B: 1행=1세트, 세션 stripe + 새 세션/세트 분리 버튼, 자동 볼륨·1RM 추정)
### A-2. 러닝 루틴(프로젝트) 신설
피트니스 프로젝트(체성분 위주)와 별개로 **러닝 전용 루틴(프로젝트)** 기능 신설. Settings § 개인 러닝에 CRUD UI 추가.
- 필드: 이름 / 목표 한 줄 / 메모(루틴 세부) / 기본 런타입 / 활성 토글
- 셀 모드 러닝 탭의 "루틴" 컬럼에서 드롭다운으로 선택·저장 (마이그레이션 `running_logs.routine_id` 컬럼 추가)
- 후속 확장(세컨드 페이즈): 마일리지 계획(주/월 목표 km) · 기본 신발 로테이션 · 기간 설정
### A-3. 대시보드 RUNNING — 신발별 누적 마일리지 차트 추가
월별 마일리지 차트 다음에 **신발별 누적 마일리지 가로 막대 차트** 신설.
- `is_record !== false`(거리반영=true) 기록만 합산
- 신발 수에 비례한 동적 높이, 라임 막대
- 사용자가 신발별 누적 km를 한눈에 파악 가능
### A-4. Settings 신발 목록 — 누적 마일리지 병기
기존 신발 카드(이름 + 색 표시)에 **"· N.N km" 누적 마일리지 텍스트** 병기. 새로 추가된 신발은 "0.0 km"로 명시되어 활동 시작 시점부터 누적이 가시화됨.
### A-5. 로드맵 갱신 (§9 보강)
본문 §9 로드맵에 다음 항목 추가 등재:
| 단계 | 추가 항목 | 상태 |
|---|---|---|
| 2단계 — 트래킹 자동화 | OCR MVP (H-1/H-2) — tesseract.js 기반 스크린샷 OCR 자동기록 보조 | **완료 (2026-05-23)** |
| 2단계 (보강) | OCR 파서 P1~P4 정확도 보강 (체성분 weight_kg 0%→100%, fat_pct 50%→100%, 오탐 4건 제거) | **완료 (2026-05-26)** |
| 1.5단계 — 입력 패러다임 회복 | **셀 입력 모드 Phase 1~4** — 한 줄 자세히 viewMode가 구글시트 스타일 셀 입력으로 진화 (체성분·러닝) | **완료 (2026-05-26)** |
| 1.5단계 (보강) | 컬럼 커스텀 (토글+순서) · 컬럼 필터 (MS엑셀) · 신발별 누적 마일리지 · 신발 목록 마일리지 병기 | **완료 (2026-05-26)** |
| 1.5단계 (세컨드 페이즈) | 셀 입력 모드 Phase 5 (근력 — 1행=1세트, 세션 stripe + 자동 볼륨·1RM 추정) | 준비 |
### A-6. 외부 설명자료 작성 시 활용 포인트 (§10 보강)
본 부록의 신규 기능을 외부 자료에 인용할 때:
- **1-pager·세일즈 데크**: §3-3 셀 입력 모드를 "구글시트의 자유도 + 앱의 자동계산·검증" 차별화 포인트로 강조
- **카탈로그·기능 소개서**: A-1~A-4를 §3(핵심 기능)의 5번째 축으로 확장 ("다건 일괄 입력·수정 + 컬럼 커스텀·필터")
- **투자/사업 자료**: 본 부록은 "본래 구글시트 사용 사용자의 자연스러운 이주 경로 확보"라는 사업적 의미로 인용 가능
### A-7. 데이터 모델 갱신 (§6 보강)
기술 요약 §6에 추가:
- `app_settings.run_routines` JSON 신설 (RunRoutine[])
- `running_logs.routine_id` 컬럼 신설 (text, nullable) — 마이그레이션 적용 완료
### A-8. 별도 트랙 (사용자 인지 필요)
- **이슈 11 (OAuth 계정 런타입 RLS 차단)** 및 **셀 모드 삭제 차단** — Supabase RLS 정책 미비 의심. v0.9 작업 2 (멀티유저 보안) 일환으로 해소 예정. 4중 리마인드 등재 완료 (작업 체크리스트 / 핸드오프 / v0.9 충족기준 / 각 작업보고).
---
## 갱신 부록 B — H-3 재정의: Health Connect 통합 채널 전환 (2026-05-27)
본 부록은 2026-05-27 본 컨텍스트에서 H-3(트래킹앱 API 연동)의 방향성을 **개별 앱 직접 연동 → Health Connect 통합 채널 활용**으로 전환한 결정을 본문 §9(로드맵 2단계) / §A-5(로드맵 갱신 표) 항목에 합쳐서 읽기 위한 보강 섹션. 본문 §9 2단계 행 표현은 본 갱신과 함께 일괄 갱신됨.
### B-1. 이슈 전달 — [H-3 트래킹앱 API 연동]
각 앱에 직접 연동하는 방식은 아래 이유로 현실적으로 어렵다고 판단됨:
- **삼성헬스 공식 API** → 파트너 심사 필요, 현재 신청 자체가 중단된 상태
- **가민·스트라바·나이키런 등 개별 연동** → 앱마다 심사·인증 프로세스가 달라 복잡도가 높음
대신 **Health Connect를 통합 채널로 활용하는 방안**으로 방향 전환.
- 삼성헬스·가민·스트라바 등 500개+ 앱이 Health Connect에 이미 연결되어 있음
- Health Connect 하나만 연동하면 연결된 모든 앱의 데이터를 가져올 수 있는 구조
```plain text
갤럭시 워치 → 삼성 헬스 ↘
              가민      → Health Connect → 달록
            스트라바    ↗
```
### B-2. 선행 조건 — PWA화 또는 Android 앱화
Health Connect는 Android API이므로 달록 현재 구조(웹앱/React)로는 직접 접근 불가. 연동을 위해서는 **달록의 PWA화 또는 Android 앱화가 선행 조건**.
본 설명서 §6(기술·인프라 개요)·§14-1(Product)에 "PWA(웹앱)"으로 기술되어 있는 상태는 유지되나, H-3 본격 착수 시점에는 **Android 앱화 또는 Health Connect 접근 가능한 PWA 확장 트랙이 동반**되어야 함을 상기.
### B-3. 진행순서 영향
[작업 체크리스트](#/doc/checklist-01)의 진행순서표(E-7 갱신 시점)에서 H-3는 §5 작업 1~9 완료 후 위치. 본 재정의로 H-3 본격 착수의 전제는 아래 둘 다 충족 시점:
1. §5 작업 1~9 완료 (멀티유저·보안·환경분리·로그인·CS·본인인증·프로필·타임라인·SNS탭)
2. PWA화 또는 Android 앱화 트랙 진행
위 두 트랙 모두 충족된 시점에 Health Connect 연동 구현 착수.
### B-4. 외부 설명자료 작성 시 활용 포인트 (§10 보강)
본 부록의 재정의를 외부 자료에 인용할 때:
- **세일즈 데크·카탈로그**: "H파트 OCR 자동기록 → Health Connect 통합 채널을 통한 무손실 자동 동기화"로 단계적 확장 강조
- **투자/사업 자료**: 개별 앱 심사 우회 + 500개+ 앱 데이터 단일 채널 확보로 "기술적 진입 장벽 회피 + 데이터 범위 확장" 동시 달성 포인트로 인용
### B-5. 출처
- 사용자 결정 (2026-05-27, H-3 이슈 전달)
- 메인 체크리스트 갱신 섹션 ["🆕 갱신 (2026-05-27 — H-3 재정의)"](#/doc/checklist-01)
- 본 설명서 §9 로드맵 2단계 행 — 동일 일자 본문 일괄 갱신됨
### B-6. 별도 트랙 (사용자 인지 필요) — §A-8 보강
§A-8(별도 트랙)에 등재된 항목은 모두 "v0.9 작업 2(멀티유저 보안)" 일환으로 해소 예정. H-3는 v0.9 이후 트랙이며 §5 작업 1~9 + PWA/Android화가 선행되므로 작업 2 트랙과는 별도로 운영.
---
## 갱신 부록 C — 별도 기획서 3종 신설 안내 (2026-05-27 #2)
본 설명서 §9 로드맵의 2단계(트래킹 자동화)·3단계(멀티유저 보안)·14단계(수익화 검토)에 해당하는 별도 정식 기획서가 신설됨. 외부 설명자료 작성 시 본 부록의 페이지 링크 우선 참조.
| 페이지 | 본 설명서 매핑 섹션 | 비고 |
|---|---|---|
| [🧭 PACELINK 기획서](#/doc/planning-07) | §9 2단계 / §A-5 / 부록 B | H-3 대형 기획 정식 설계서 |
| [🛡️ SAFEZONE 기획서](#/doc/security-01) | §7-3 멀티유저 / §A-8 별도 트랙 | v0.9 §5 작업 2 정식 기획서 |
| [💰 수익화 시뮬레이션 보고서](#/doc/business-08) | §14-2 Price / §13 SWOT | 보안체크 + 시각화 포함 |

### 외부 자료 작성 시 권고
- **세일즈 데크·카탈로그**: 본 설명서 §1~§5 그대로 활용 + 로드맵은 §9를 본 부록 C의 PACELINK 페이지로 연결
- **투자/사업 자료**: 본 설명서 §13(SWOT) + §14(3P) + 💰 수익화 시뮬레이션 보고서 §4~§7 결합. 단 **"시뮬레이션 가정"** 명시 필수
- **기술 백서**: PACELINK 페이지의 Phase별 상세 + 본 설명서 §6 인프라 개요 결합
---
## 갱신 부록 D — LIFELINE v.2 + 사업성 체크 발행 안내 (2026-05-27 #2)
본 설명서는 외부 설명자료 원천 문서로서, 본 일자 신규 발행된 두 페이지의 메시지를 외부 자료에 인용할 때 우선 참조.
### D-1. 신규 페이지
| 페이지 | 성격 | 외부 자료 활용 시점 |
|---|---|---|
| [🚦 LIFELINE 설계서 v.2](#/doc/business-09) | 1인 운영 지속가능성 통합 설계 | 운영·인프라·자생력 강조 자료 |
| [📊 사업성 체크 평가서](#/doc/business-10) | 한스브릿지 관점 사업 정체성 재확인 | 내부 의사결정·투자자 설명 자료 |

### D-2. 본 설명서 본문 영향
§7-3 멀티유저(로드맵 G-4) 표현 보강 필요:
- 기존: "보안 6단계 점검 완료 후 지인 그룹 단위로 확장 예정"
- 사업성 체크 반영: **"v0.9 클로즈베타 + SAFEZONE 완료 = 달록 개발 STOP 경계선. 그 이후는 유지보수 모드로 전환, 신규 기능 추가 금지."**
§9 로드맵 표현 보강 필요:
- 기존: "3단계 — 멀티유저·지인 배포 / 4단계 — 프로필·소셜 옵션 / 5단계 — 애널리틱스·어드민"
- 사업성 체크 반영: **3·4·5단계는 "v0.9 충족기준 안에서 마무리, 그 이상 확장 X". 5단계(애널리틱스·어드민)는 본 사업 한스브릿지 본업(팩토핀) 우선순위 회복 후 재검토.**
### D-3. 외부 자료 작성 시 주의 (3원칙)
> ⚠️ (red_bg 콜아웃)
> 1. **"대중 매스 앱" 메시지 금지** — 6 LLM 모두 "버티컬 코어 SaaS" 포지셔닝 합의. "한국형 스트라바" 같은 표현 회피.
> 2. **"수익 모델 확정" 표현 금지** — 모든 가격·전환율은 시뮬레이션 가정. "검토 중" 또는 "예측" 명시.
> 3. **"본업" 정체성 명확화** — 한스브릿지의 메인 사업은 팩토핀(제조업 B2B 매칭). 달록은 서브파이프라인 + 포트폴리오 자산.
