---
title: "작업보고 — 약관 3종 공개 페이지·KB 신뢰도 훅·디자인 이식 검증"
category: "workreport"
document_type: "작업보고"
source_status: "generated"
knowledge_group: "03_history"
priority: "High"
purpose: "2026-06-05 본레포 세션 연속편: 직전 작업보고(132140)가 '다음 세션 예정'으로 미룬 약관/CS·디자인 이식·KB 신뢰도 훅을 완료. 약관 3종을 앱 공개 라우트로 구현·배포(PR#34, 카카오 비즈앱 검수용 공개 개인정보처리방침 URL 확보), KB 인박스 발행규칙 자동주입 훅 추가(PR#35), 디자인 이식은 검증 결과 이미 완료(정적 인라인 0)."
read_when: ["최신상태복구","약관·CS·법무","인증OAuth"]
updated: "2026-06-05"
work_timestamp: "20260605_133544"
context: "달록본레포CC (D:\\dallog\\dallog_git)"
source_of_truth: "https://dallog-tools.hansbridge.co.kr/knowledge/"
---

# 작업보고 — 약관 3종 공개 페이지·KB 신뢰도 훅·디자인 이식 검증

> 2026-06-05 본레포CC 세션 기록. 직전 작업보고 `20260605_132140`(골든셋·docs정리·테스터시드·카카오OAuth) §5에서 **"다음 세션 예정"으로 미뤄둔 3건(약관/CS·디자인 이식·KB 신뢰도 훅)을 본 세션에서 완료**했다. 본 문서는 그 완료 기록이다(132140과 중복 아님 — 연속편).

## 0. 요약
v0.9 충족기준 **작업5(약관/CS)** 의 핵심을 닫았다. 약관 3종(개인정보처리방침·이용약관·건강정보 별도동의)을 앱 내 **비로그인 공개 라우트**로 구현·배포해 `https://dallog.kr/privacy` 등 공개 URL을 확보(= 카카오 비즈앱 검수 선행조건 충족). 더해 KB 발행 신뢰도 훅을 추가하고, 디자인 이식 잔여는 검증 결과 이미 완료 상태임을 확인했다.

## 1. 약관 3종 공개 페이지 (PR#34)
- **배경**: 외부 사용자 유입 시 개인정보보호법·정보통신망법상 약관·개인정보처리방침·민감정보(건강) 별도동의 필요. v1 초안(`docs/archive/260529_terms_privacy_health_v1_draft.html`) 기반으로 다듬어 라이브화. 카카오 비즈앱 검수도 공개 개인정보처리방침 URL을 요구.
- **구현**:
  - 신규 `src/pages/legal/LegalPage.tsx` — 개인정보처리방침(12조)·이용약관(10조+부칙)·건강정보 별도동의(7조+동의문구) 3종.
  - 공개 라우트 `/privacy`·`/terms`·`/health-consent` 를 `App.tsx`에서 OAuth 콜백처럼 **인증 가드 앞단**에서 처리 → 비로그인·검수봇도 접근 가능.
  - `index.css` `.legal-*` 디자인 토큰 기반(다크/라이트 자동추종, 데스크탑 우선). 로그인 푸터에 약관 링크.
- **반영 사업자정보(사업자등록증 기준)**: 한스브릿지(대표 최창용) · 사업자등록번호 229-14-67292 · 경기도 안산시 단원구 적금로 57, 2층 203호(고잔동) · 개인정보 보호책임자 최창용 · 문의 ccy4848@hansbridge.co.kr · 시행일 2026-06-05. (기존 초안의 ccy8215@gmail.com 개인계정은 전 구간 제거.)
- **판단**: 공개판에서는 내부용 "DRAFT 배너·사장님 해설·검토승인 필요" 블록 제외(라이브 정책 효력). 보호 콜아웃(민감정보·의료 비대체·AI 위탁·국외이전)은 유지. 원본 초안은 archive 보존.
- **검증**: `npm run build` 통과 + 로컬 dev에서 MCP 렌더 확인(/privacy·/health-consent, 콘솔 에러 0, 사업자정보·테이블·콜아웃·탭 정상).
- **후속**: 정식 출시 전 변호사 자문(초안 단계부터 계획). 전화번호는 법적 필수 아님 → 이메일 단일 창구 채택.

## 2. KB 신뢰도 훅 (PR#35)
- **배경**: "KB 발행 시 기존문서 확인→신규 대신 수정-업데이트" 규칙이 회상 의존이라 누락 위험(SQL 발행규칙 위반 전례). 회상이 아니라 하네스가 강제하는 대책 필요(사장님 승인).
- **구현**: `.claude/settings.json`에 PreToolUse(Write) 훅 + `.claude/hooks/kb-inbox-reminder.cjs`(node). Write 대상 file_path에 `kb-inbox` 포함 시에만 발행 체크리스트(①기존문서 확인 ②수정-업데이트 지시 ③frontmatter ④비밀정보 금지 ⑤툴레포 분리블록)를 컨텍스트에 비차단 주입.
- **결정**: jq 미설치 환경 → node 스크립트 채택(중첩 따옴표 회피). 매치/비매치 파이프 테스트 통과, permissions.allow 보존.

## 3. 디자인 이식 검증 — 이미 완료 확인
- **조사 결과**: CoachNotes·History·Settings 잔여 인라인 스타일 35곳을 전수 점검. 정적 하드코딩 인라인은 **0**. 전부 (a) 토큰값 조건부(`isToday ? var(--color-today-fg) : var(--accent)` 등) 또는 (b) 사용자·데이터 구동 색(`adjustColorForTheme(font_color)`·preset swatch·shoe色·계산 너비·마우스좌표). `categoryColor`·`PROJECT_LIME`도 이미 `var(--token)`.
- **앱 표준 일치**: 동적 스타일은 인라인 유지가 앱 표준(앱 전체 인라인 69곳, CSS변수 passthrough는 Studio만). 값이 이미 토큰이라 추가 토큰화 이득 없음.
- **결정**: 칼렌더 구조를 class-toggle로 바꾸는 리팩터는 토큰화 이득 0·회귀 위험만 있어 "기존 UI 무손상" 원칙상 미실행. item 완료(추가 변경 불필요)로 종결.

## 4. 후속 / 미해결
- 약관 변호사 자문(정식 출시 전). 카카오 비즈앱 검수(외부 다수 공개 시, 개인정보처리방침 URL 라이브로 선행조건은 충족됨).
- 디자인: 동적색 잔여를 굳이 class-toggle로 강제 전환할지는 별도 표준 결정 사항(현 권고=현행 유지).

## 5. 커밋 / PR (참고)
- PR#34 `feat(legal)` — 약관 3종 공개 페이지(본레포 main 머지).
- PR#35 `chore(hooks)` — KB 인박스 발행 체크리스트 훅(본레포 main 머지).
- 디자인 이식: 코드 변경 없음(검증만).
