Core Ontology v2.2 — Mindful-Aligned · Evidence-Based
5층 × 12 카테고리 + Triangulation 15종 + 학술 evidence base 보강. 측정 X · 알아차림 O 원칙으로 외모·거리·페이스 일괄 배제. 일반 러닝 앱이 측정하는 메트릭을 영구 제외하고, 마음·자기 관계·코호흡·몸 균형 알아차림을 1차 데이터로 둔 백엔드 데이터 모델의 단일 진실원.
019가지 설계 원칙
본 9 원칙이 모든 카테고리·진단·메시지의 게이트키퍼. 위배 시 카테고리 자체를 제외한다 (P7·P9가 BMI·페이스·VO2max·케이던스 영구 제외 근거).
| # | 원칙 | 구현 함의 |
|---|---|---|
| P1 | 분석·제안까지, 디렉션은 사람 | AI 출력은 4-tier에서 Tier 1~3까지만 (Tier 4 디렉션 금지) |
| P2 | 오로지 나를 위한 | 다른 사람과 비교·랭킹 절대 X. 본인의 시계열 비교만 |
| P3 | Observed vs Inferred 분리 | 사용자 직접 입력 = Observed, LLM 추출 = Inferred 라벨 |
| P4 | Triangulation ≥ 2 | Inferred 진단은 최소 2개 카테고리 결합 시에만 |
| P5 | Privacy first | 본인 보기 default, 공유 명시 opt-in |
| P6 | 확장 가능성 | v2.2 12 카테고리 골격 유지, v3+ 추가 가능 |
| P7 ★ | 마인드풀 정합 | 외모·숫자·비교 데이터 일괄 배제 (체중·체지방·BMI·거리·페이스·VO2max·강도분포) |
| P8 ★ | Felt Sense 우선 | 측정값보다 본인의 알아차림이 1차 데이터. "오늘 몸이 가벼운지" > 체중 측정 |
| P9 ★ | 부상 예방형 몸 균형 | 가동성·대칭은 측정하되 본인 추세만, 절대값 ranking·타인 비교 금지 |
v1 → v2.2 영구 배제 항목
- ❌ BODY Composition — 체중·체지방·근육량·BMI (P7)
- ❌ Cardio Metrics — VO2max · max HR · 강도분포(LSD/템포/인터벌) (P7)
- ❌ Distance/Pace — total_distance_km · avg_pace_min_per_km · Speed (P7)
- ❌ Running Form Metrics — 케이던스 · 보폭 · 수직 진폭 · Foot Strike Pattern (P9)
- ❌ Social/Comparison — Strava-like 친구 비교·랭킹·리더보드 (P2)
- ⚠️ Resting HR은 옵셔널 유지 — 회복 신호 보조로만, 측정 강요 X (V2 스마트워치 연동)
025층 12카테고리 타워 구조
마음(MIND) 5종이 가장 큰 비중. 몸(BODY)은 측정-알아차림 결합. 달리기(RUN)는 시간·호흡만. 삶(LIFE)·맥락(CONTEXT)은 Triangulation 보조 변수.
총량: 12 카테고리 × 3 진단 상태(Good / Watch / Watch-Care) = 36 baseline + 3 message variants/state = 108 message templates. ★ = MFRS 핵심 차별화 메트릭 (러닝 앱 어디에도 측정 사례 없음).
03Layer 1 · MIND (마음) — 5 카테고리
Mood (기분) — 12 감정 어휘 × Russell 4분면
한국 정서 + Russell Circumplex(1980) 4분면 매핑. 부정 감정 자체는 문제 X — 알아차림이 좁아지는 것이 신호. 단조로운 표현(rumination)은 우울 유지 요인, 다양 어휘는 회복 facilitator.
불안
긴장
기쁨
호기심
외로움
공허
감사
만족
DATA MODEL
| Field | Type | Source |
|---|---|---|
| mood_keywords | string[] | 사용자 직접 입력 (1~3개, 12 어휘) |
| mood_quadrant | enum | derived (4분면 자동 계산) |
| mood_intensity | int (1~5) | 사용자 입력 |
| mood_inferred | string[] | LLM (F1 텍스트 기록 분석) |
| mood_trend_4w | derived | 본인 비교만 (P2 정합) |
진단 상태
Stress (스트레스) — 강도 + 원인 + 표출 + 지속 4축
4축 구조
| 축 | 옵션 |
|---|---|
| 강도 | 1~5 슬라이더 |
| 원인 (다중) | 🏢 직장 · 👥 관계 · 🩺 건강 · 💰 재정 · 🌌 실존 · 🌧 없음/모름 |
| 표출 | 🪨 몸으로 (어깨·두통·소화·심장) · 🧠 마음으로 (잠·반추·집중) · ⚖️ 둘 다 |
| 지속 | 🌤 일시적 · 🌦 1주 · ☔ 2~4주 · 🌪 만성 (1개월+) |
Energy (에너지) — 신체 / 정신 분리
단일 1~5 점수 X. 신체와 정신 활력을 4-quadrant로 분리해 "정신만 활력" = 탈진 전조 신호 조기 감지.
Mindfulness (알아차림 · 현재 머무름)
Kabat-Zinn 정의: "Mindfulness = paying attention on purpose, in the present moment, non-judgmentally."
핵심 질문 (APP 입력)
- "오늘 자신의 몸이나 마음을 알아차린 순간이 있었나요?" (체크 + 자유 텍스트)
- "지금 이 순간에 머물 수 있었나요?" (1~5)
- "달리는 중 가장 기억에 남는 한 순간을 한 줄로 적어보세요." (자유 텍스트, 옵셔널)
★ v2 차별화: 다른 모든 러닝/명상 앱은 "달린 거리·명상 시간"을 측정하지만, 알아차림 자체를 사용자 자기 평가 + 텍스트로 기록하는 데이터 모델은 마인드풀 러닝 고유 메트릭.
Self-relation (자기 친절 ↔ 자기 비난)
핵심 질문
- "오늘 빠진 날 / 못한 날에 자책했나요?" (yes / no / 조금)
- '괜찮아'라고 자신에게 말할 수 있었나요? (1~5)
- "오늘 나에게 친절했나요?" (1~5)
- "오늘 자신에게 해주고 싶은 한마디" (자유 텍스트, 옵셔널)
★ v2 차별화: Neff Self-Compassion은 임상심리 표준이지만 러닝 앱 측정 사례 부재. MFRS는 빠진 날·못한 날을 어떻게 처리하는가를 핵심 메트릭으로 차별화.
04Layer 2 · BODY (몸) — 2 카테고리
Felt Sense & Pain (몸 감각 · 통증 · 부상 회복도)
DATA MODEL
| Field | Type | 예시 |
|---|---|---|
| body_lightness | int (1~5) | 가벼움 ↔ 무거움 |
| body_tension_areas | enum[] | 어깨 · 허리 · 다리 · 목 (다중) |
| pain_location | enum | 다리 · 무릎 · 발목 · 허리 · 기타 |
| pain_intensity | int (1~5) | |
| injury_phase | enum | active / recovering / clear (derived) |
P7 정합 — 의도적 제외: ❌ 체중·체지방·근육량 · ❌ BMI·체성분 변화 · ❌ VO2max·max HR · ❌ "체중 -3kg" 외모 목표
Body Balance & Movement Quality — 8 자가 점검 (월 1회)
포지셔닝: "더 잘 달리기 위한 균형"이 아니라 "부상 없이 오래 달리기 위한 몸 알아차림". 러닝 부상의 ≥80%는 몸 균형 결손에서 비롯. 입문~평생러너 누구나 점검 가능한 8 항목을 mindful self-test로 재구성.
발목 굽힘 (Wall Ankle Test)
고관절 움직임 (Modified Thomas Test)
등 위쪽 펴짐 (Thoracic Rotation)
종아리 풀림 (Single-Leg Heel Raise)
몸통 버팀 (Plank)
엉덩이 단단함 (Glute Bridge Quality)
한 발 서기 균형 (Single-Leg Balance)
좌우 대칭 알아차림 (Bilateral Symmetry)
P9 정합 — 의도적 제외
❌ 케이던스 · ❌ 보폭 · ❌ 수직 진폭 · ❌ Foot Strike Pattern · ❌ Q-각·발 아치·회내·회외 측정 · ❌ "이상적 폼"·"나쁜 폼" 라벨 (UX-1 자책 디자인 위배). 위 항목은 부상 관리 권한자(외부 의료 자문, V2)와 1:1 대화에서만.
본인 추세 시각화 (절대값 ranking X)
내 발목 굽힘 (Wall Ankle Test, 우)
12cm ┤ ●
10cm ┤ ● ●
8cm ┤ ─── (3개월 평균선)
6cm ●
└────────────────────
3월 4월 5월
★ 절대값 ranking 표시 X
★ "정상 범위" vs "이상" 라벨 X
★ 본인의 3개월 추세 + 좌우 대칭 시각화만
05Layer 3 · RUN (달리기) — 시간 · 호흡만
Time & Frequency — 시간 · 빈도 (거리 X · 페이스 X)
| Field | Type |
|---|---|
| sessions_per_week | int (derived) |
| total_minutes_per_week | int (F2 시간 측정) |
| longest_session_minutes | int (derived) |
| consistency_4w | derived (본인 4주 평균 ±20%) |
P7 정합 — 의도적 제외: ❌ 거리(km) · ❌ 페이스 (min/km) · ❌ Speed · ❌ 케이던스. 거리·페이스는 사용자 명시 opt-in 시에만 표시, default 숨김.
Breath (코호흡 비율 · 호흡 리듬)
| Field | Type | 예시 |
|---|---|---|
| breathing_mode | enum | 코호흡 / 구호흡 / 혼합 |
| breathing_ratio | int (0~100%) | 그 세션 코호흡 시간 비율 |
| breath_rhythm | enum | 안정 · 끊김 · 가쁨 |
의도적 제외: ❌ 강도 분포 (LSD/템포/인터벌) · ❌ HR zone
06Layer 4 · LIFE (삶) — 2 카테고리
Sleep (수면 — 길이 · 질)
| Field | Source |
|---|---|
| sleep_hours (옵셔널) | 사용자 입력 |
| sleep_quality (1~5) | 사용자 입력 |
| sleep_keyword | "뒤척임"·"푹 잠" 자유 |
Workload (업무 부담 · 일정 압박)
| Field | Source |
|---|---|
| workload_level (1~5) | 사용자 입력 |
| schedule_pressure | 여유 · 바쁨 · 폭주 |
| workload_inferred | LLM (텍스트 분석) |
07Layer 5 · CONTEXT (맥락) — 1 카테고리
Environment (장소 · 동행 · 계절 · 시간대)
| Field | 예시 |
|---|---|
| location_type | 도심 · 강변 · 공원 · 산 · 트랙 · 러닝머신 |
| social_context | 혼자 · 번개 · 정기수업 · 코호트 · 셰르파 동행 |
| time_of_day | 새벽 · 아침 · 점심 · 저녁 · 밤 |
| season_inferred | derived (월 기준) |
컨텍스트는 진단 자체에 사용 X — Triangulation의 보조 변수로만 (D8 고독한 운동, D9 계절 적응).
08AI 진단 4-Tier · "No 디렉션" 운영 가이드
BMC §1 "AI 분석·제안까지, 디렉션은 사람" 합의의 운영 구현. AI는 Tier 1~3만, Tier 4는 절대 사람 코치 영역.
Tier 4 휴먼 인터럽트 트리거 (4종)
- 🟠 Mood Watch-Care 2주+ (저각성·부정 ≥80%)
- 🟠 Self-relation 자책 1주+ (비난 ≥4 + 친절 ≤2)
- 🟠 Felt Sense 통증 동일 부위 반복 (3회+)
- 🟠 Run 단절 2주+ (-50% 급감)
→ AI는 Tier 3까지만. Premium 멤버는 김성우 1:1 체크인 콜 자동 예약 제안.
마인드풀 톤 가이드 (System Prompt)
| 구분 | 적용 |
|---|---|
| 권장 어휘 | 알아차리다 · 머물다 · 흐르다 · 안아주다 · 살피다 · 함께 |
| 금지 어휘 | 해야 한다 · 안 됩니다 · 위험 · 경고 · 빨리 · 잘못 |
| 문장 끝 | "~해보시면 어떨까요?" "~도 좋아요" / 명령형 X |
| 이모지 | 🟢 💛 🟠 만 사용 (🔴 빨강 절대 X — UX-4 정합) |
09Triangulation 15종 — 결합 진단 + Tier 3 메시지
P4 원칙: Inferred 진단은 최소 2개 카테고리 결합 시에만. v1 9종 + v2 D10·D11·D12 + v2.1 D13·D14·D15 = 15종.
회복이 필요한 흐름
번아웃 회복기
부상 누적 신호
마인드풀 정합 (좋은 흐름)
수면 부족 운동
업무 폭주 + 운동 이탈
재진입 안정화
고독한 운동
계절 적응
자기 친절 회복
알아차림 회복 권유
활력 ↔ 코호흡 정합
좌우 비대칭 + 통증 누적
가동성 부족 + 운동량 증가
균형 좋음 + 코호흡 정합
10★ 나의 달리기 안내 — 온톨로지 기반 일일 가이던스
오늘은 무엇을 알아차리며 달릴까?
사용자가 달리기 시작 버튼을 누르기 직전, AI는 12 카테고리의 최근 7일 데이터에서 가장 약한 알아차림 영역을 찾아 그날의 mindful intent를 한 줄로 제안한다.
모든 메시지는 Tier 3 (질문형/옵션형). "~해보시면 어떨까요?" 톤. 명령형·금지·경쟁 어휘 X. 사용자는 받거나 무시할 수 있고, 자신의 의도를 직접 입력할 수도 있다 (UX-1 정합).
예시 (사용자 요청): "오늘은 왼발/오른발의 밸런스를 자각하면서 뛰어보세요." → 2.2 Body Balance ⑧ 좌우 대칭 알아차림 카테고리 기반.
카테고리별 안내 메시지 셋 (총 24종, MVP1 라이브러리)
Layer 1 · MIND 기반 (마음 알아차림)
Layer 2 · BODY 기반 (몸 알아차림) ★ 사용자 예시 영역
Layer 3 · RUN 기반 (시간·호흡 알아차림)
Layer 4 · LIFE 기반 (회복·균형 알아차림)
Layer 5 · CONTEXT 기반 (환경 알아차림)
안내 메시지 운영 로직 (System Prompt)
매일 달리기 시작 직전 → AI 안내 메시지 1건 추천:
Step 1. 최근 7일 데이터 스캔
├─ MIND 5종 점수 + 자유 텍스트 빈도
├─ BODY 2종 (Felt Sense + 마지막 월 1회 자가 점검)
├─ RUN 2종 (시간·코호흡 비율)
├─ LIFE 2종 (Sleep · Workload)
└─ CONTEXT 1종 (환경 다양성)
Step 2. 가장 약한 알아차림 영역 선택
├─ Triangulation 15종 매칭 시도 (D1~D15)
└─ 매칭 없으면 단일 카테고리 안내 풀 (24종)
Step 3. Tier 3 톤 검증
├─ "~해보세요?" / "~어떨까요?" / "~좋아요"
├─ 금지 어휘 필터: 해야 / 안 됩니다 / 위험 / 빨리
└─ 명령형 X · 경쟁 어휘 X
Step 4. 사용자 노출
├─ 받기: 안내 표시 + 달리기 시작
├─ 무시: 안내 미노출 + 달리기 시작
└─ 직접 입력: 사용자 자체 의도 ★ UX-1 정합
Step 5. 사후 회고 (F6 회고 요약)
└─ "오늘 안내한 알아차림이 어땠나요?" 1~5 (옵셔널)
핵심 원칙: 안내는 사용자 자유의 보조이지 강제가 아니다 (UX-1 "오로지 나를 위한"). 매일 같은 안내가 반복되지 않도록 24 메시지 라이브러리를 7일 cooldown으로 순환. Tier 4 진단 발생 시 안내가 아닌 코치 1:1 콜 CTA로 분기.
11데이터 수집 흐름 (Privacy First — P5)
사용자 입력 (Observed)
│
├──> 직접 12 감정 어휘 선택 ←── APP F1 텍스트 기록 진입 시 1탭
│
├──> 자유 텍스트 기록 ──────── APP F1 (일기·생각)
│
├──> 호흡·시간 ─────────────── APP F2 + F1 사후 입력
│
└──> 알아차림·자기친절 한 줄 ─ APP F1 사후 회고
│
▼
LLM 추출 (Inferred — P3 라벨)
│
├──> Mood inferred (감정 어휘 자동 추출 from 자유 텍스트)
├──> Stress source inferred (직장 / 관계 / 건강 / ...)
├──> Workload inferred
└──> Self-talk tone inferred (친절 vs 비난)
│
▼
온톨로지 노드 채움 (per user, per day)
│
▼
Triangulation (≥2 카테고리 — P4)
│
▼
진단 (Tier 1~3 자동, Watch-Care 시 Tier 4 휴먼 트리거)
│
▼
사용자 본인만 보기 (default — P5)
│
└──> 명시 opt-in 시에만 코치(김성우)와 공유
(1.4·1.5는 본인 한정, 1.1·1.2만 공유 가능)
12Hybrid Tier 활성 매트릭스
| 카테고리 | Free | Pro | Premium |
|---|---|---|---|
| 1.1 Mood (12 어휘 + 4분면) | 입력 | + 시계열 | + Inferred |
| 1.2 Stress · 1.3 Energy · 4.1 Sleep · 4.2 Workload | — | ✓ | + Inferred |
| 1.4 Mindfulness · 1.5 Self-relation 풀 · 5.1 Environment | — | — | ✓ |
| 2.1 Felt Sense (가벼움/무거움) | 기본 | + tension | + 시계열 |
| 2.2 Body Balance (월 1회) | — | ✓ 자가 점검 | + 1:1 코치 review |
| 3.1 Time | 시간만 | + 4주 평균 | + ACWR |
| 3.2 Breath (코호흡) | y/n | + 비율 | + Triangulation |
| 나의 달리기 안내 (24 메시지) | 5 기본 | + 12 (MIND·BODY) | 전 24 + Triangulation 매칭 |
일일 입력: Free 75초 · Pro 3분 · Premium 5분 (Inferred 활용 시 ≈ Pro)
13APP MVP1 통합 매핑
| MVP1 기능 | v2.2 온톨로지 카테고리 |
|---|---|
| F1 텍스트 기록 | 1.1 Mood (직접 12 어휘 + Inferred), 1.2 Stress 원인 (Inferred), 1.4 Mindfulness 키워드 (직접), 1.5 Self-talk (직접), 2.1 Pain (직접) |
| F2 시간 측정 | 3.1 Time & Frequency (거리·페이스 X) |
| F3 스케줄·도장 | 3.1 Time target vs actual + 1.5 자책 회피 디자인 |
| F4 오디오 가이드 | 출력 — 진단 결과 분기 + ★ 나의 달리기 안내 음성 분기 |
| F5 키워드 캘린더 | 1.1 Mood keyword 시계열 (12 감정 어휘 컬러 매핑) |
| F6 회고 요약 | 1.1~1.5 MIND 5종 + 2.1 Felt Sense + 3.2 Breath 결합 → Tier 1~3 마인드풀 톤 |
| F-new 몸 점검 ★v2.1 | 2.2 Body Balance — 월 1회 자가 점검 (8 항목) → 본인 3개월 추세 + 좌우 대칭 시각화 |
| F-new 안내 메시지 ★v2.2 | ★ 나의 달리기 안내 — 24 메시지 라이브러리 + Triangulation 15 매칭 + Tier 3 톤 검증 |
14데이터 거버넌스 (Core C8 통합)
| 항목 | 정책 |
|---|---|
| 보존 기간 | 회원 계정 활성 + 탈퇴 후 90일 (이관 grace) |
| 다운로드 권리 | JSON · CSV · PDF — 본인 마음 일기 = 자기 자산 |
| 삭제 권리 | 14일 내 영구 삭제 (백업 포함) |
| 백업 RPO / RTO | RPO 24시간 / RTO 4시간 |
| 코치 공유 | opt-in 명시 동의 시에만 (default OFF) |
| 익명 통계 | aggregated only — 개인 식별 불가 형태로만 |
| 마음 데이터 특수 처리 ★v2 | 1.1~1.5 MIND 5종 = 민감 정보 (sensitive) 분류 — 이중 암호화 + 코치 공유도 1.1·1.2만 (1.4·1.5는 본인 한정) |
| PIPA 대응 | 변호사 1회 약관 review (T2 PRD 단계) |
15Evidence Base 종합
| 카테고리 | 핵심 출처 |
|---|---|
| 1.1 Mood | Russell Circumplex 1980 · PANAS · Plutchik · Barrett Emotion Granularity |
| 1.2 Stress | Lazarus Transactional 1984 · McEwen HPA · PSS · Salmon 운동 buffer |
| 1.3 Energy | RESTQ-Sport · Vitality Scale · POMS · Spoon Theory · Maslach Burnout |
| 1.4 Mindfulness ★ | MBSR (Kabat-Zinn 1979) · MAAS · FFMQ · DMN · Sakyong Mipham |
| 1.5 Self-relation ★ | Neff SCS 2003 · IFS · Gilbert CFT · Mosewich Athletic SC 2013 |
| 2.1 Felt Sense | Gendlin Focusing 1978 · Body Scan MBSR · VAS · Interoception |
| 2.2 Body Balance | FMS · ACSM · Heiderscheit · Davis 러닝 부상 연구 |
| 3.1 Time / Frequency | Maffetone MAF · Seiler Polarized · Gabbett ACWR · Wood/Fogg Habit · NHS C25K |
| 3.2 Breath ★ | Nestor "Breath" · Bramble LRC 1983 · McKeown Oxygen Advantage · Pranayama |
| 4.1 Sleep | AASM · Mah Stanford · Walker · PSQI · Halson Recovery |
| 4.2 Workload | Karasek · JD-R · Maslach · Sonnentag Recovery |
| 5.1 Environment | Wilson Biophilia · Kaplan ART · Ulrich SRT · Qing Li Forest Bathing · Pretty Green Exercise |
⚠️ 본 출처는 작성 시점의 일반 학술 지식 수준 인용. 정확한 DOI·페이지 verification은 후속 액션 O11 (담당: 김태영 + 외부 학술 자문 / 마감: T+30일).
16v3+ 확장 후보
| 우선 | 카테고리 | 설명 |
|---|---|---|
| v3 | 1.6 Spirituality | 명상·기도·자연 시간 (마인드풀 깊이) |
| v3 | 2.2 확장 — Foot Intrinsic | 발 내재근 자가 점검 (수건 잡기 등) |
| v3 | 2.2 확장 — Dynamic Mobility | 워밍업 중 동적 가동성 |
| v3 | 2.2 확장 — Breath × Mobility | 코호흡 시 흉추 가동범위 연결 |
| v3 | 4.3 Recovery | 폼롤러·스트레치·요가 시간 (활동 기반, 측정 X) |
| v3 | 1.7 Embodiment | 호흡 ↔ 감정 연결 (호흡할 때 어떤 감정?) |
| v4 | 2.3 HRV | 회복 보조 (옵셔널, 측정 강요 X) |
| (영구 제외) | Body Composition · Distance/Pace/VO2max · Cadence/Stride · Foot Strike · Strava-like 비교 | P2·P7·P9 위배 |
온톨로지의 힘은 "추가"가 아니라 "배제"에서 온다
v1 → v2.2의 진짜 결단은 12 카테고리를 늘린 것이 아니라 체중·BMI·VO2max·페이스·거리·케이던스를 영구 제외하는 P7·P9 두 원칙. 마인드풀 러닝의 차별화는 측정 항목 더하기가 아니라 일반 러닝 앱의 메트릭을 빼는 데서 발생.
또한 1.4 Mindfulness · 1.5 Self-relation 두 카테고리는 러닝 앱 어디에도 측정 사례가 없다. MAAS·FFMQ·SCS는 임상심리에서 표준 도구지만, 운동 앱이 자가 측정 도구로 차용한 것은 MFRS가 사실상 처음. 이것이 D 시리즈 cohort(Depth)의 evidence-based 근거가 되며, 한국 시장의 진짜 Blue Ocean.
★ 나의 달리기 안내 (Section 10)는 본 온톨로지가 단지 백엔드 데이터 모델이 아니라 매일의 mindful intent로 land하는 운영 매개체임을 보여준다. "오늘은 왼발/오른발의 밸런스를 자각하면서 뛰어보세요" 한 문장이 2.2 Body Balance ⑧ 좌우 대칭 알아차림 카테고리의 evidence(FMS·Heiderscheit)와 P9 원칙(절대값 ranking X) 위에서 작동한다.
2026-05-02 · Core Ontology v2.2 · Phase 2 Briefing · 원본: internal/20260502-core-ontology-definition.md (860 lines)