---
title: 작업보고 — 본버전(dallog.kr) 패치 + 스튜디오 데모 전용 격리
category: workreport
document_type: 작업보고
source_status: published
knowledge_group: 03_history
priority: Normal
purpose: demo 누적 변경 전체를 본버전 패치·스튜디오를 IS_DEMO_HOST로 진입·실행 완전 격리
read_when: 본버전 패치 이력·스튜디오 격리 메커니즘·IS_DEMO_HOST 관련 작업 시
updated: 2026-06-22
work_timestamp: 20260622_120000
source_of_truth: dallog-tools
---

# 작업보고 — 본버전(dallog.kr) 패치 + 스튜디오 데모 전용 격리

## 한 줄 요약
demo(dallog-demo)에서 검증돼 쌓여 있던 비스튜디오 변경 전체를 본버전(dallog.kr)에 패치하고, **스튜디오(운영자 전용 데모 기능)는 본버전에서 노출·실행 0으로 격리**했다.

## 배경
- 운영 방침: 스튜디오는 고객 공개가 아닌 운영자 전용. demo에만 설치·검증 후 본버전 패치, 본버전 미포함 선언.
- KB 마지막 본버전 반영 이후 demo에 231커밋(빈 커밋 다수 제외)·80여 파일이 미반영으로 쌓임 — 근력 분석·대시보드·브리프·코치·AI 내보내기·기록/설정/온보딩·brief-proxy 워커 + 스튜디오. 사실상 그동안의 누적 전체를 처음 본버전에 올리는 큰 릴리스.

## 진행
- **스튜디오 격리 메커니즘(IS_DEMO_HOST)**: `src/lib/demoHost.ts`가 호스트명으로 데모 여부 판정(dallog-demo.pages.dev·localhost=true, dallog.kr=false). 진입점 3곳을 이 가드로 격리 —
  - App.tsx `/studio` 라우트(기존 가드)
  - Layout 사이드바 스튜디오 메뉴(기존 가드)
  - main.tsx `startStudioRuntime` 자동실행(이번에 가드 추가 + 데모 호스트에서만 동적 import → 본버전 메인 번들에서 제외)
  - studioRuntime 내부에도 `if(!IS_DEMO_HOST) return` 이중 가드(호출부 가드가 풀려도 안전).
- **DB**: coach_consume_turn(코치 AI 턴 차감 계산 함수) ambiguous 컬럼 수정은 **이미 라이브에 적용돼 있음**을 Supabase 조회로 확인(함수 소스에 수정 흔적 존재) → DB 미접촉, 코드만 패치.
- **index.html title/favicon**: 본버전 패치 시 운영값("달록 — PaceLog"·운영 파비콘) 유지, 데모값(DEMO 제목·핫핑크 러너)으로 덮어쓰기 금지(파일 내 주석 규약). main 머지 충돌 시 운영값으로 해결.
- 머지: demo→main 병합이 index.html에서만 충돌 → 운영값 유지로 해결한 release 브랜치를 main에 squash 머지.

## 핵심 의사결정
- 스튜디오 제외 방식 = **코드 물리 제거가 아니라 "진입로·자동실행 차단"**(노출·실행 0). 파일을 하나씩 지우다 import가 깨지는 위험을 피하면서 "본버전 미포함"을 충족. Studio lazy·uiCatalog는 스튜디오 청크 전용이라 본버전 미다운로드(실효 없어 추가 격리 보류).
- 위험도 재평가: "라이브라 위험"은 과장이었음 — 올릴 코드는 이미 demo에서 검증된 그 코드, DB는 기적용, 스튜디오는 진입 차단. 막연한 공포 대신 실제 헤드룸으로 판단.

## 검증 (dallog.kr 실측)
- 배포 후 dallog.kr/studio 접속 → 스튜디오 미노출(대시보드로), 사이드바 메뉴 없음, 자동실행 안 됨. 운영 제목 유지. 앱 정상(비스튜디오 변경 반영).
- demo(dallog-demo)는 스튜디오 + DEMO 제목 그대로 유지(운영자 빌딩용).
- 빌드·테스트 94 green.

## Codex 검수 반영
- [누락 있음] → 즉시반영: studioRuntime 내부 이중가드 + main.tsx 동적 로드(본버전 번들 제외). [보류]: App.tsx lazy·uiCatalog 조건부(스튜디오 청크 전용이라 본버전 미다운로드, 실효 없음 — 사유 기록).

## 미해결 / 다음
- 스튜디오 자체는 미종결(빌더 후속 — 링크 연결·기존 텍스트 수정 등).
- demo-dallog의 배포 깨우기용 빈 커밋 다수 정리 후속.
- CF 자동배포 누락 안정화(Deploy Hook 등).
