docs: Global Medical Hub PRD v0.1 (INFINITH 토큰 HTML) — 운영 구조·중립성/IP 비교, AIO2O 등록·신청 항목, 완료/부분/신규 기능 표, 로드맵·KPI·리스크. 회고 haewon 수정 반영
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
This commit is contained in:
parent
c55a6ade12
commit
fa44771caa
@ -13,12 +13,12 @@
|
|||||||
|
|
||||||
## 2. 배경과 동기
|
## 2. 배경과 동기
|
||||||
|
|
||||||
INFINITH 는 성형외과의 SNS·검색 채널을 분석해 마케팅 리포트를 내는 서비스였다. 2026년 8월 말, 두 가지 사실이 방향을 바꿨다.
|
INFINITH 는 성형외과의 종합적인 Online Presence, SNS·검색 채널을 분석해 전략마케팅 리포트를 내는 서비스였다. 2026년 8월 말, 두 가지 사실이 방향을 바꿨다.
|
||||||
|
|
||||||
1. **네이버 자산은 글로벌 AI 답변에 기여하지 않는다.** 2026-08-26 실측에서 네이버 블로그·플레이스·카페가 robots.txt 로 AI 크롤러를 전면 차단하고 있음을 확인했다. 병원들이 예산을 쏟는 네이버 마케팅이 ChatGPT·Perplexity·Gemini 답변에는 닿지 않는다. 네이버 AI 브리핑만 별도 트랙이다.
|
1. **네이버 자산은 글로벌 AI 답변에 기여하지 않는다.** 2026-08-26 실측에서 네이버 블로그·플레이스·카페가 robots.txt 로 AI 크롤러를 전면 차단하고 있음을 확인했다. 병원들이 예산을 쏟는 네이버 마케팅이 ChatGPT·Perplexity·Gemini 답변에는 닿지 않는다. 네이버 AI 브리핑만 별도 트랙이다.
|
||||||
2. **병원 홈페이지는 읽을 수는 있어도 인용할 근거가 없다.** 2026-08-28 뷰성형외과 진단에서 크롤러 접근은 열려 있었지만, 정의문·FAQ·표·의료진 스키마가 없고 주소 표기가 3종이었다. "차단"이 아니라 "내용"이 문제였다.
|
2. **병원 홈페이지는 읽을 수는 있어도 인용할 근거가 없다.** 2026-08-28 뷰성형외과 진단에서 크롤러 접근은 열려 있었지만, 정의문·FAQ·표·의료진 스키마가 없고 주소 표기가 3종이었다. "차단"이 아니라 "내용"이 문제였다.
|
||||||
|
|
||||||
여기서 사업 방향이 "채널 분석 리포트"에서 **"AI 답변엔진에 인용될 원문을 만들어 주는 것(AEO/GEO)"** 으로 확장됐다. 진단(AI Discovery)은 입구이고, 서포터즈 사이트가 처방이다.
|
여기서 사업 방향이 "온라인 프리젠스 종합 분석및 마케팅 채널 분석 리포트 와 전략기획"에서 **"AI 답변엔진에 인용될 원문을 만들어 주는 것(AEO/GEO)"** 으로 확장됐다. 진단(AI Discovery)은 입구이고, 서포터즈 사이트가 처방이다.
|
||||||
|
|
||||||
왜 홈페이지를 고치지 않고 별도 매체인가. 홈페이지 수정은 병원 개발사·의사결정에 막혀 느리고, 슬라이더·이미지 글자 구조를 바꾸기 어렵다. 별도 도메인은 병원 사이트를 건드리지 않고, MedicalClinic·Person 스키마와 sameAs 로 같은 엔티티에 묶이며, 원문 텍스트를 계속 공급할 수 있다. 다만 병원 지원을 받는 매체라 의료광고로 본다는 전제에서 설계해야 했다(§7).
|
왜 홈페이지를 고치지 않고 별도 매체인가. 홈페이지 수정은 병원 개발사·의사결정에 막혀 느리고, 슬라이더·이미지 글자 구조를 바꾸기 어렵다. 별도 도메인은 병원 사이트를 건드리지 않고, MedicalClinic·Person 스키마와 sameAs 로 같은 엔티티에 묶이며, 원문 텍스트를 계속 공급할 수 있다. 다만 병원 지원을 받는 매체라 의료광고로 본다는 전제에서 설계해야 했다(§7).
|
||||||
|
|
||||||
@ -44,16 +44,19 @@ INFINITH 는 성형외과의 SNS·검색 채널을 분석해 마케팅 리포트
|
|||||||
## 4. 무엇을 만들었나
|
## 4. 무엇을 만들었나
|
||||||
|
|
||||||
### 4-1. 진단 (AI Discovery)
|
### 4-1. 진단 (AI Discovery)
|
||||||
|
|
||||||
- 기준표 v1.0: 36항목(A 접근성·B 엔티티·C 콘텐츠·D 표면·E 측정·F 위생), 0~3 레벨, 미검증은 분모 제외.
|
- 기준표 v1.0: 36항목(A 접근성·B 엔티티·C 콘텐츠·D 표면·E 측정·F 위생), 0~3 레벨, 미검증은 분모 제외.
|
||||||
- 기준표 v2.0: 같은 실측을 **AEO 답변 준비도 8항목 / GEO 출처 준비도 8항목** 두 축 100점으로 재집계. 치명 게이트(크롤러 차단 등)에 상한.
|
- 기준표 v2.0: 같은 실측을 **AEO 답변 준비도 8항목 / GEO 출처 준비도 8항목** 두 축 100점으로 재집계. 치명 게이트(크롤러 차단 등)에 상한.
|
||||||
- 자동 채점기(auto 21~22항목) + 사람 보정(semi·manual) → `/discovery/:id` 리포트 페이지, 독립 HTML/PDF 리포트 빌더.
|
- 자동 채점기(auto 21~22항목) + 사람 보정(semi·manual) → `/discovery/:id` 리포트 페이지, 독립 HTML/PDF 리포트 빌더.
|
||||||
- 질문 뱅크 120문항(7카테고리)과 2엔진 실측 러너.
|
- 질문 뱅크 120문항(7카테고리)과 2엔진 실측 러너.
|
||||||
|
|
||||||
### 4-2. 서포터즈 사이트 (수작업 정답지)
|
### 4-2. 서포터즈 사이트 (수작업 정답지)
|
||||||
|
|
||||||
- Astro 정적, INFINITH 디자인 토큰, 글 18편(세 줄 요약 → 본문 → 영상 → 갤러리 → FAQ → 검토 박스 → 참고 자료 → 갱신 기록 → 병원 정보 → 고지), 팩트 시트 단일 원본, Person·Physician·MedicalClinic·Article·FAQPage 스키마, noindex 기본.
|
- Astro 정적, INFINITH 디자인 토큰, 글 18편(세 줄 요약 → 본문 → 영상 → 갤러리 → FAQ → 검토 박스 → 참고 자료 → 갱신 기록 → 병원 정보 → 고지), 팩트 시트 단일 원본, Person·Physician·MedicalClinic·Article·FAQPage 스키마, noindex 기본.
|
||||||
- 발행 게이트: JSON-LD·alt·H1·금칙어·홈페이지 40자 연속 일치 → v2 §3 의 검사 11종(운영자 어휘·근거 유형·결론 단정·확인일 일관성·검토자·영상 제목·비교 수치·승인·고지 위치).
|
- 발행 게이트: JSON-LD·alt·H1·금칙어·홈페이지 40자 연속 일치 → v2 §3 의 검사 11종(운영자 어휘·근거 유형·결론 단정·확인일 일관성·검토자·영상 제목·비교 수치·승인·고지 위치).
|
||||||
|
|
||||||
### 4-3. 자동 빌드 파이프라인 (워커)
|
### 4-3. 자동 빌드 파이프라인 (워커)
|
||||||
|
|
||||||
이름 또는 URL → 채널 발견·엔티티 검증 → 근거 수집(223p) → 팩트 시트·의료진 초안 → 유튜브 집계·로고·파비콘 → 이미지(법 기준 필터) → 첫 배치 기획 → GPT-4.1 생성(수치 대조·근거 대조·수정 2회) → 빌드·게이트 → Vercel 미리보기 → 병원 입력 폼 → 입력 반영 재빌드.
|
이름 또는 URL → 채널 발견·엔티티 검증 → 근거 수집(223p) → 팩트 시트·의료진 초안 → 유튜브 집계·로고·파비콘 → 이미지(법 기준 필터) → 첫 배치 기획 → GPT-4.1 생성(수치 대조·근거 대조·수정 2회) → 빌드·게이트 → Vercel 미리보기 → 병원 입력 폼 → 입력 반영 재빌드.
|
||||||
|
|
||||||
---
|
---
|
||||||
@ -101,11 +104,13 @@ v1.0 은 36항목을 하나의 점수로 합쳤다. 뷰성형외과 54/C 는 "
|
|||||||
## 7. 확인된 명제와 조건
|
## 7. 확인된 명제와 조건
|
||||||
|
|
||||||
**확인된 것**
|
**확인된 것**
|
||||||
|
|
||||||
1. 원래 홈페이지를 그대로 둔 채, 엔티티 충돌 없이 서포터즈 사이트를 세울 수 있다. MedicalClinic `@id` 를 홈페이지 URL 로 두고, sameAs 를 확인된 채널로 채우며, 주소·전화를 팩트 시트 한 곳에서만 쓰고, Person(작성자)·Physician(검토 원장)을 분리하면 된다. 원진 라이브 sameAs 4개 확인.
|
1. 원래 홈페이지를 그대로 둔 채, 엔티티 충돌 없이 서포터즈 사이트를 세울 수 있다. MedicalClinic `@id` 를 홈페이지 URL 로 두고, sameAs 를 확인된 채널로 채우며, 주소·전화를 팩트 시트 한 곳에서만 쓰고, Person(작성자)·Physician(검토 원장)을 분리하면 된다. 원진 라이브 sameAs 4개 확인.
|
||||||
2. 지속적인 콘텐츠 업데이트는 자동화된다. 이름 하나로 6편, 병원당 $0.3~0.6, 10~30분, 사람 개입 0. 정답지 18편 회귀 18/18, 원진 6/6 게이트 통과. 근거 없는 수치는 수치 대조와 근거 대조로 0건을 목표로 검사한다(사람 확인용 플래그는 남는다).
|
2. 지속적인 콘텐츠 업데이트는 자동화된다. 이름 하나로 6편, 병원당 $0.3~0.6, 10~30분, 사람 개입 0. 정답지 18편 회귀 18/18, 원진 6/6 게이트 통과. 근거 없는 수치는 수치 대조와 근거 대조로 0건을 목표로 검사한다(사람 확인용 플래그는 남는다).
|
||||||
3. 병원 입력이 비어 있어도 "확인 대기"로 발행되고, 입력하면 코드 수정 없이 검토 완료·스키마가 켜진다.
|
3. 병원 입력이 비어 있어도 "확인 대기"로 발행되고, 입력하면 코드 수정 없이 검토 완료·스키마가 켜진다.
|
||||||
|
|
||||||
**조건 (없으면 안 되는 것)**
|
**조건 (없으면 안 되는 것)**
|
||||||
|
|
||||||
1. **의료법·의료광고 규정 준수.** 의료법 56조 2항(치료경험담 2호, 비교 4호, 수술 장면 6호, 부작용 누락 7호, 과장 8호, 기사·전문가 형태 10호, 인증·보증 14호)을 게이트와 이미지 규칙으로 막는다. 의료광고 주체는 의료기관 개설자이고 AI오투오는 제작·운영 대행이다. 자체 도메인은 57조 사전심의 대상이 아니지만 네이버 재작성본은 게시물별 심의 대상이다. 경제적 이해관계는 글 첫 부분에 표시한다(추천·보증 심사지침). 공정위가 2026-07 뷰성형외과 포함 3곳에 후기 뒷광고 시정명령을 내렸으므로 같은 유형은 가중된다. 이 문서의 법 해석은 자문이 아니며 계약 전 변호사 확인이 필요하다.
|
1. **의료법·의료광고 규정 준수.** 의료법 56조 2항(치료경험담 2호, 비교 4호, 수술 장면 6호, 부작용 누락 7호, 과장 8호, 기사·전문가 형태 10호, 인증·보증 14호)을 게이트와 이미지 규칙으로 막는다. 의료광고 주체는 의료기관 개설자이고 AI오투오는 제작·운영 대행이다. 자체 도메인은 57조 사전심의 대상이 아니지만 네이버 재작성본은 게시물별 심의 대상이다. 경제적 이해관계는 글 첫 부분에 표시한다(추천·보증 심사지침). 공정위가 2026-07 뷰성형외과 포함 3곳에 후기 뒷광고 시정명령을 내렸으므로 같은 유형은 가중된다. 이 문서의 법 해석은 자문이 아니며 계약 전 변호사 확인이 필요하다.
|
||||||
2. **서포터즈는 실존 개인이어야 유리하다.** Person 스키마의 sameAs(인터뷰·프로필), 편집 책임·정정 경로, 갱신 기록이 GEO 출처 신호의 절반이다. 가명 2명(v3)에서 실명 1명(안성민 대표, v4)으로 바꾼 것이 Codex 평가에서 GEO 열세를 줄인 항목이었다. 자동 빌드는 작성자를 "확인 대기"로 두고 병원·운영자 입력으로 채운다.
|
2. **서포터즈는 실존 개인이어야 유리하다.** Person 스키마의 sameAs(인터뷰·프로필), 편집 책임·정정 경로, 갱신 기록이 GEO 출처 신호의 절반이다. 가명 2명(v3)에서 실명 1명(안성민 대표, v4)으로 바꾼 것이 Codex 평가에서 GEO 열세를 줄인 항목이었다. 자동 빌드는 작성자를 "확인 대기"로 두고 병원·운영자 입력으로 채운다.
|
||||||
3. **원장·의사 검수 파이프라인이 있어야 한다.** 검토자·검토일·개설자 승인은 사람 게이트다. 폼 → supporter_inputs → apply_inputs → 재빌드 → 색인 허용 빌드에는 승인 글만 나가는 경로까지 만들었다. 병원 쪽에 담당자와 주기가 정해져야 실제로 돈다. 검토 병목이 곧 발행 속도의 상한이다.
|
3. **원장·의사 검수 파이프라인이 있어야 한다.** 검토자·검토일·개설자 승인은 사람 게이트다. 폼 → supporter_inputs → apply_inputs → 재빌드 → 색인 허용 빌드에는 승인 글만 나가는 경로까지 만들었다. 병원 쪽에 담당자와 주기가 정해져야 실제로 돈다. 검토 병목이 곧 발행 속도의 상한이다.
|
||||||
|
|||||||
269
docs/prd/INFINITH_Global_Medical_Hub_PRD_v0.1.html
Normal file
269
docs/prd/INFINITH_Global_Medical_Hub_PRD_v0.1.html
Normal file
@ -0,0 +1,269 @@
|
|||||||
|
<!doctype html>
|
||||||
|
<html lang="ko"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1">
|
||||||
|
<title>INFINITH Global Medical Hub PRD v0.1</title>
|
||||||
|
<link rel="preconnect" href="https://fonts.googleapis.com"><link href="https://fonts.googleapis.com/css2?family=Playfair+Display:wght@600;700;900&family=Inter:wght@400;500;600&display=swap" rel="stylesheet">
|
||||||
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/orioncactus/pretendard@v1.3.9/dist/web/static/pretendard.min.css">
|
||||||
|
<style>
|
||||||
|
:root{--navy:#0A1128;--navy800:#1A2B5E;--near:#F4F6FB;--accent:#6C5CE7;--g1:#4F1DA1;--g2:#021341;--slate7:#334155;--slate6:#475569;--slate5:#64748B;--line:#E2E8F0;
|
||||||
|
--crit-bg:#FFF0F0;--crit-tx:#7C3A4B;--crit-bd:#F5D5DC;--crit-dot:#D4889A;--warn-bg:#FFF6ED;--warn-tx:#7C5C3A;--warn-bd:#F5E0C5;--warn-dot:#D4A872;--good-bg:#F3F0FF;--good-tx:#4A3A7C;--good-bd:#D5CDF5;--good-dot:#9B8AD4;--info-bg:#EFF0FF;--info-tx:#3A3F7C;--info-bd:#C5CBF5;--info-dot:#7A84D4}
|
||||||
|
*{box-sizing:border-box}body{margin:0;font-family:Pretendard,Inter,-apple-system,sans-serif;color:var(--navy);background:#fff;line-height:1.65;font-size:15px;word-break:keep-all}
|
||||||
|
.serif{font-family:'Playfair Display',serif}
|
||||||
|
section{padding:96px 24px}.wrap{max-width:1160px;margin:0 auto}
|
||||||
|
.dark{background:var(--navy);color:#fff;position:relative}.dark::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse at top right,rgba(108,92,231,.15),transparent 60%);pointer-events:none}.dark .wrap{position:relative}
|
||||||
|
.light{background:#fff}.near{background:var(--near)}
|
||||||
|
.eyebrow{font-family:Inter,sans-serif;font-size:12px;font-weight:600;letter-spacing:.24em;text-transform:uppercase;color:var(--accent)}.dark .eyebrow{color:#C4B5FD}
|
||||||
|
h1{font-size:56px;line-height:1.05;margin:14px 0 10px;letter-spacing:-.02em}h2{font-size:38px;line-height:1.15;margin:10px 0 14px}h3{font-size:18px;font-weight:700;margin:0 0 8px}
|
||||||
|
.dark h2{background:linear-gradient(90deg,#C4B5FD,#93C5FD);-webkit-background-clip:text;background-clip:text;color:transparent}
|
||||||
|
.sub{font-size:17px;color:var(--slate6);max-width:820px}.dark .sub{color:#DDD6FE}
|
||||||
|
p{margin:0 0 10px}.muted{color:var(--slate5);font-size:13.5px}.dark .muted{color:#C4B5FD}
|
||||||
|
.grid{display:grid;gap:18px}.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
|
||||||
|
@media(max-width:900px){.g2,.g3,.g4{grid-template-columns:1fr}}
|
||||||
|
.card{background:#fff;border:1px solid #F1F5F9;border-radius:18px;padding:22px 24px;box-shadow:3px 4px 12px rgba(0,0,0,.06);color:var(--navy)}.card:hover{box-shadow:4px 6px 16px rgba(0,0,0,.09)}
|
||||||
|
.card p{color:var(--slate7);font-size:14.5px}
|
||||||
|
.grad{background:linear-gradient(90deg,var(--g1),var(--g2));color:#fff;border:0}.grad p,.grad .muted{color:#DDD6FE}.grad h3{color:#fff}
|
||||||
|
.cta{background:linear-gradient(to right,#fff3eb,#e4cfff,#f5f9ff);border:0}
|
||||||
|
.badge{display:inline-block;font-family:Inter,sans-serif;font-size:11.5px;font-weight:600;border:1px solid;border-radius:999px;padding:3px 10px;line-height:1.3}
|
||||||
|
.b-crit{background:var(--crit-bg);color:var(--crit-tx);border-color:var(--crit-bd)}.b-warn{background:var(--warn-bg);color:var(--warn-tx);border-color:var(--warn-bd)}.b-good{background:var(--good-bg);color:var(--good-tx);border-color:var(--good-bd)}.b-info{background:var(--info-bg);color:var(--info-tx);border-color:var(--info-bd)}
|
||||||
|
.dot{display:inline-block;width:9px;height:9px;border-radius:50%;margin-right:6px;vertical-align:middle}
|
||||||
|
table{width:100%;border-collapse:collapse;background:#fff;border-radius:14px;overflow:hidden;font-size:13.5px;box-shadow:3px 4px 12px rgba(0,0,0,.05)}th{background:var(--navy);color:#fff;text-align:left;padding:11px 13px;font-size:12.5px;font-weight:600}td{padding:11px 13px;border-bottom:1px solid #EEF2F7;vertical-align:top;color:var(--slate7)}tr:last-child td{border-bottom:0}td b{color:var(--navy)}
|
||||||
|
.dark table{color:var(--navy)}
|
||||||
|
.kpi{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.kpi .k{background:#fff;border-radius:16px;padding:18px 20px;box-shadow:3px 4px 12px rgba(0,0,0,.06)}.kpi b{display:block;font-family:'Playfair Display',serif;font-size:34px;color:var(--accent);line-height:1}.kpi span{font-size:12.5px;color:var(--slate5)}
|
||||||
|
@media(max-width:900px){.kpi{grid-template-columns:repeat(2,1fr)}}
|
||||||
|
.flow{display:grid;grid-template-columns:repeat(6,1fr);gap:10px;counter-reset:s}.flow .st{background:#fff;border-radius:14px;padding:14px;box-shadow:3px 4px 12px rgba(0,0,0,.06);color:var(--navy);font-size:13px}.flow .st::before{counter-increment:s;content:counter(s);display:inline-block;font-family:'Playfair Display',serif;font-weight:700;color:var(--accent);font-size:20px;margin-bottom:4px}
|
||||||
|
@media(max-width:900px){.flow{grid-template-columns:repeat(2,1fr)}}
|
||||||
|
ul{margin:6px 0 0 18px;padding:0}li{margin:4px 0;color:var(--slate7)}.dark li{color:#E9E5FF}
|
||||||
|
.pill{display:inline-block;background:#F1F5F9;color:var(--slate6);border-radius:999px;padding:2px 9px;font-size:11.5px;font-family:Inter,sans-serif;font-weight:500;margin:0 4px 4px 0}
|
||||||
|
.mono{font-family:ui-monospace,Menlo,monospace;font-size:12px;color:var(--accent)}
|
||||||
|
.toc a{color:var(--accent);text-decoration:none}.toc li{color:var(--slate6)}
|
||||||
|
footer{padding:36px 24px;font-size:12.5px;color:var(--slate5);border-top:1px solid var(--line);text-align:center}
|
||||||
|
@media print{@page{size:A4;margin:11mm}section{padding:26px 6px;page-break-inside:auto}.pb{page-break-before:always}h1{font-size:40px}h2{font-size:28px}.card,tr{page-break-inside:avoid}.dark,.grad,.badge,.kpi .k,.cta,th{-webkit-print-color-adjust:exact;print-color-adjust:exact}}
|
||||||
|
</style></head><body>
|
||||||
|
|
||||||
|
<!-- 0. Cover -->
|
||||||
|
<section class="dark" style="padding-top:120px;padding-bottom:88px"><div class="wrap">
|
||||||
|
<div class="eyebrow">INFINITH · Product Requirements Document · v0.1 Draft</div>
|
||||||
|
<h1 class="serif">Global Medical Hub</h1>
|
||||||
|
<div style="font-size:24px;font-weight:700;margin-bottom:6px">외국인 환자가 AI에 물었을 때 인용되는, AIO2O 운영 중립 의료관광 허브</div>
|
||||||
|
<p class="sub">한국 성형외과·피부과의 시술·의료진·회복·비용 항목을 다국어 원문으로 공급하고, 상담·예약과 회복기 여정(숙박·식사·관광·미용)을 한 곳에서 연결하는 플랫폼. 병원이 아니라 AIO2O가 소유·운영한다. 지금 완성된 AI Discovery 진단과 서포터즈 자동 빌드 파이프라인이 공급 쪽 절반을 이미 자동화했다.</p>
|
||||||
|
<div class="kpi" style="margin-top:34px">
|
||||||
|
<div class="k"><b>3</b><span>제품 층 (정보·발견 / 상담·예약 / 여정 연결)</span></div>
|
||||||
|
<div class="k"><b>2</b><span>검증된 병원 (뷰성형외과 18/18 · 원진 6/6, 사람 개입 0)</span></div>
|
||||||
|
<div class="k"><b>$0.6</b><span>병원 1곳 온보딩 실측 비용 (30분)</span></div>
|
||||||
|
<div class="k"><b>8~12주</b><span>1단계 글로벌 허브 MVP</span></div>
|
||||||
|
</div>
|
||||||
|
<p class="muted" style="margin-top:22px">작성 2026-09-08 · 작성 Claude (haewon 세션) · 검토 haewon · 결정 CEO · 배경: 2026-09-08 CEO·뷰성형외과 미팅 (원장의 의료관광 포털 제안) · 법 해석은 자문이 아니며 계약·등록 전 변호사 확인 필요</p>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- TOC -->
|
||||||
|
<section class="light" style="padding:56px 24px"><div class="wrap toc">
|
||||||
|
<div class="eyebrow">Contents</div>
|
||||||
|
<ol style="columns:2;gap:40px;margin:10px 0 0 18px;font-size:14.5px">
|
||||||
|
<li><a href="#s1">배경과 문제</a></li><li><a href="#s2">제품 정의와 범위</a></li><li><a href="#s3">사용자와 핵심 여정</a></li><li><a href="#s4">중립성과 IP: 운영 구조 비교</a></li><li><a href="#s5">AIO2O가 신청·등록·갖춰야 하는 것</a></li><li><a href="#s6">기술 스택과 기능: 완료 / 부분 / 신규</a></li><li><a href="#s7">아키텍처와 데이터 흐름</a></li><li><a href="#s8">로드맵</a></li><li><a href="#s9">KPI와 측정</a></li><li><a href="#s10">리스크와 미결</a></li><li><a href="#s11">부록: 근거 자료</a></li>
|
||||||
|
</ol>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 1. 배경 -->
|
||||||
|
<section id="s1" class="near"><div class="wrap">
|
||||||
|
<div class="eyebrow">01 · Why Now</div><h2 class="serif">Why Now</h2>
|
||||||
|
<p class="sub">병원 홈페이지와 네이버 자산은 글로벌 AI 답변에 닿지 않는다. 그 빈자리를 원문 매체로 메우는 것이 INFINITH의 처방이고, 외국인 환자 시장은 그 빈자리가 가장 큰 곳이다.</p>
|
||||||
|
<div class="grid g3" style="margin-top:22px">
|
||||||
|
<div class="card"><span class="badge b-crit">진단 근거</span><h3 style="margin-top:10px">병원은 읽히지만 인용되지 않는다</h3><p>뷰성형외과 AEO 42 / GEO 56, 원진성형외과 AEO 15 / GEO 45. 크롤러 접근은 열려 있으나 정의문·FAQ·표·의료진 스키마가 없다. 원진 영문 사이트는 hreflang조차 없다.</p></div>
|
||||||
|
<div class="card"><span class="badge b-warn">시장 신호</span><h3 style="margin-top:10px">병원이 먼저 포털을 원한다</h3><p>2026-09-08 CEO 미팅에서 뷰성형외과 원장이 성형외과·피부과를 모은 글로벌 의료관광 포털을 제안했다. 반응은 좋았으나 "비슷한 제안이 많다"는 말도 들었다. 차별점은 실측 진단과 인용되는 원문, 그리고 자동 온보딩이다.</p></div>
|
||||||
|
<div class="card"><span class="badge b-good">준비된 것</span><h3 style="margin-top:10px">공급 쪽은 이미 자동이다</h3><p>이름 하나로 채널 확인, 근거 수집, 팩트 시트, 의료진, 영상, 이미지(의료법 필터), 글 6편, 발행 게이트, 미리보기까지 30분에 $0.6. 두 병원에서 사람 개입 없이 완주했다.</p></div>
|
||||||
|
</div>
|
||||||
|
<div class="card cta" style="margin-top:18px"><h3>빈자리의 정의</h3><p style="color:var(--navy)">외국인이 ChatGPT·Perplexity·Gemini에 "best rhinoplasty clinic in Seoul for foreigners"라고 물었을 때 인용할 다국어 원문(시술 조건 표·회복 일정·의료진·안전 체계·비용 항목)이 오픈웹에 사실상 없다. 기존 앱(강남언니 글로벌·바비톡·크리에이트립)은 정보를 앱 안에 가두고, 병원 영문 사이트는 슬로건과 이미지다. 네이버 자산은 robots.txt로 AI 크롤러를 막아 기여도 0이다(2026-08-26 실측).</p></div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 2. 제품 정의 -->
|
||||||
|
<section id="s2" class="dark"><div class="wrap">
|
||||||
|
<div class="eyebrow">02 · Product Definition</div><h2 class="serif">What We Build</h2>
|
||||||
|
<p class="sub">세 층으로 나눈다. 첫 층은 우리가 만들고, 둘째 층은 자격을 갖춰 만들며, 셋째 층은 만들지 않고 연결한다.</p>
|
||||||
|
<div class="grid g3" style="margin-top:22px">
|
||||||
|
<div class="card"><span class="badge b-good">1층 · 만든다</span><h3 style="margin-top:10px">정보·발견</h3><p>병원별 다국어 원문 페이지(시술 조건 표·회복 일정·의료진·안전·비용 항목·FAQ), 병원 공통 허브(시술별 비교 없는 목록·질문별 답), AI 답변엔진·검색 인용 구조(MedicalClinic·Physician·Article·FAQPage·hreflang). 지금 파이프라인 그대로.</p></div>
|
||||||
|
<div class="card"><span class="badge b-warn">2층 · 자격 후 만든다</span><h3 style="margin-top:10px">상담·예약</h3><p>병원 선택 → 상담 신청 → 통역 포함 예약 확정 → 결제·정산. 대가를 받는 순간 외국인환자 유치업자 등록이 필요하다. 1단계에서는 상담 신청을 병원에 직접 넘기고 수수료를 받지 않는다.</p></div>
|
||||||
|
<div class="card"><span class="badge b-info">3층 · 연결한다</span><h3 style="margin-top:10px">회복기 여정</h3><p>숙박·식사·관광·축제·미용·배달은 제휴 링크와 파트너 API로 연결한다. 직접 판매하면 여행업·통신판매업 등록이 따라온다. 배달은 국내 앱이 외부 API를 열지 않아 정보 안내 수준.</p></div>
|
||||||
|
</div>
|
||||||
|
<div class="grid g2" style="margin-top:18px">
|
||||||
|
<div class="card"><h3>제품이 아닌 것</h3><ul><li>병원 홈페이지를 대체하는 사이트. 홈페이지는 그대로 두고 sameAs로 같은 엔티티에 묶는다.</li><li>후기·전후 사진·병원 비교·가격 할인으로 설득하는 앱. 의료법 56조 2항이 막는 것은 처음부터 없다.</li><li>슈퍼앱. 예약·숙박·배달 시스템을 처음부터 짓지 않는다.</li><li>특정 병원의 사이트. 뷰성형외과는 앵커 파트너이지 소유자가 아니다.</li></ul></div>
|
||||||
|
<div class="card"><h3>성공의 정의 (1단계)</h3><ul><li>병원 4곳 이상이 다국어 원문으로 발행되고 각 병원 개설자 승인이 데이터로 켜진다.</li><li>외국인 질문 뱅크(영·일·중 각 60문항) 실측에서 허브 인용률이 0에서 유의미하게 오른다. 소유 신호(서버 로그 AI 크롤러 히트, GA4 AI 유입)로 잰다.</li><li>상담 신청이 병원으로 전달되고 병원이 응답한 건수를 센다.</li></ul></div>
|
||||||
|
</div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 3. 사용자 -->
|
||||||
|
<section id="s3" class="light"><div class="wrap">
|
||||||
|
<div class="eyebrow">03 · Users & Journeys</div><h2 class="serif">Who It Serves</h2>
|
||||||
|
<div class="grid g4" style="margin-top:22px">
|
||||||
|
<div class="card"><h3>외국인 환자</h3><p>일본·중국어권·동남아·영어권. AI와 검색에 질문 → 허브 원문 → 병원 페이지 → 상담 신청 → 방문·회복. 원하는 것은 조건(시간·마취·회복·비용 항목)과 안전, 그리고 의사소통.</p></div>
|
||||||
|
<div class="card"><h3>병원 담당자</h3><p>온보딩 폼(v2 §6 9항목), 글별 검토자·검토일 입력, 상담 신청 응답. 기술 지식 없음. 지금 만든 `/supporters/:id` 패널이 시작점.</p></div>
|
||||||
|
<div class="card"><h3>원장·개설자</h3><p>의학 검토, 게시 승인. 의료광고 주체. 승인 기록(승인자·직함·일시·글 버전)이 법적 근거가 된다.</p></div>
|
||||||
|
<div class="card"><h3>AIO2O 운영자</h3><p>큐·워커 운영, 게이트 실패 처리, 이미지 육안 확인, "확인 필요" 채널 판정, 정정 접수. 비개발자가 운영할 수 있어야 한다.</p></div>
|
||||||
|
</div>
|
||||||
|
<div class="card" style="margin-top:18px"><h3>핵심 여정 (외국인 환자)</h3>
|
||||||
|
<div class="flow" style="margin-top:10px">
|
||||||
|
<div class="st">AI·검색에 질문. 허브의 질문형 글이 인용된다</div><div class="st">시술 조건 표·회복 일정·비용 항목을 언어별로 읽는다</div><div class="st">병원 페이지에서 의료진·안전 체계·확인일을 본다</div><div class="st">상담 신청(언어·희망 시술·일정). 1단계는 병원 직결</div><div class="st">예약 확정·통역·결제 (2단계, 유치업 등록 후)</div><div class="st">회복기 숙박·식사·관광 제휴 링크와 주의사항 안내 (3단계)</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 4. 중립성과 IP -->
|
||||||
|
<section id="s4" class="near"><div class="wrap">
|
||||||
|
<div class="eyebrow">04 · Neutrality & IP</div><h2 class="serif">Ownership Structure</h2>
|
||||||
|
<p class="sub">포털의 생명은 중립성이다. 한 병원의 계열 플랫폼에는 두 번째 병원이 들어오지 않는다. 파이프라인 IP는 AIO2O 사업 자체이므로 어떤 구조에서도 밖에 두지 않는다.</p>
|
||||||
|
<div style="overflow-x:auto;margin-top:22px"><table>
|
||||||
|
<thead><tr><th style="width:150px">기준</th><th>뷰성형외과 자회사</th><th>뷰 · AIO2O 합작법인</th><th>AIO2O 단독 + 뷰 앵커 파트너 (추천)</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><b>다른 병원 참여</b></td><td><span class="dot" style="background:var(--crit-dot)"></span>어렵다. 경쟁 병원 계열사에 의료진·비용 항목을 올릴 이유가 없다</td><td><span class="dot" style="background:var(--warn-dot)"></span>뷰 지분이 보이면 같은 경계. 지분이 작고 공개돼 있으면 완화</td><td><span class="dot" style="background:var(--good-dot)"></span>문제없다</td></tr>
|
||||||
|
<tr><td><b>의료광고·고지</b></td><td>자회사 매체가 모병원을 노출하면 경제적 이해관계 고지가 페이지마다 붙고 추천·보증 심사지침 대상</td><td>같다. 뷰 관련 페이지에 지분 관계 고지</td><td>병원별 지원 관계 고지만</td></tr>
|
||||||
|
<tr><td><b>유치업 등록</b></td><td>의료기관도 유치 등록은 가능하나 타 병원 환자 중개는 별도 법인이 깔끔</td><td>합작법인이 유치업자로 등록하면 자연스럽다</td><td>AIO2O 법인이 등록 (2단계 전)</td></tr>
|
||||||
|
<tr><td><b>자본·앵커</b></td><td>병원이 자본을 댄다</td><td>자본·첫 병원·의료 자문을 같이 얻는다</td><td>자본은 AIO2O 몫. 앵커는 계약으로</td></tr>
|
||||||
|
<tr><td><b>IP·속도</b></td><td>파이프라인이 병원 소유가 된다</td><td>IP를 JV에 넣으면 사업이 JV에 묶인다. 의사결정 둘</td><td>IP·속도 모두 AIO2O</td></tr>
|
||||||
|
<tr><td><b>브랜드 리스크</b></td><td>뷰의 2026-07 공정위 시정명령(후기 뒷광고) 이력이 그대로 붙는다</td><td>같은 이력이 JV 브랜드에 묻는다</td><td>파트너 병원 중 하나의 이력</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table></div>
|
||||||
|
<div class="grid g2" style="margin-top:18px">
|
||||||
|
<div class="card grad"><h3>추천 구조</h3><ul style="color:#E9E5FF"><li>플랫폼·파이프라인·게이트·데이터 모델 IP는 AIO2O 100%. 라이선스도 넘기지 않는다.</li><li>뷰성형외과는 앵커 파트너 계약: 첫 병원 무상 온보딩, 다국어 첫 발행, 병원 2~4곳 소개, 의료 자문. 대가는 소액 지분(10% 미만, 공개) 또는 소개 수수료.</li><li>예약 수수료를 받는 2단계에서 유치업 전용 법인이 필요하면 그 법인만 합작 검토. 자본금·배상보험을 나눠 지고 플랫폼 IP는 밖에 둔다.</li></ul></div>
|
||||||
|
<div class="card"><h3>합작을 하게 된다면 계약 필수 조항</h3><ul><li>IP 귀속: 파이프라인·게이트·데이터 모델은 AIO2O 소유, JV는 사용권.</li><li>뷰 지분 상한과 중립성 조항: 노출 순서·비교 금지, 타 병원 정보 접근 제한.</li><li>의료광고 책임 분리: 각 병원 개설자가 광고 주체, JV는 매체·대행. 사전심의·유치 광고 규정 준수는 병원 책임.</li><li>공정위 이력에 대한 표명·보증. JV 이름에 병원명을 넣지 않는다.</li><li>데이터: 병원 자산 사용 허락 범위, 환자 데이터 처리 주체.</li></ul></div>
|
||||||
|
</div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 5. 신청·등록 -->
|
||||||
|
<section id="s5" class="dark pb"><div class="wrap">
|
||||||
|
<div class="eyebrow">05 · Registrations & Compliance</div><h2 class="serif">What AIO2O Must Obtain</h2>
|
||||||
|
<p class="sub">단계별로 필요한 등록·신고·계약·계정을 전부 적었다. "확인"은 요건 수치나 적용 여부를 담당 기관 또는 변호사에게 확인해야 하는 항목이다.</p>
|
||||||
|
<div style="overflow-x:auto;margin-top:22px"><table>
|
||||||
|
<thead><tr><th style="width:56px">단계</th><th style="width:230px">항목</th><th>근거·요건</th><th style="width:170px">담당·비고</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><span class="badge b-good">1</span></td><td><b>사업자 업종 추가</b></td><td>정보서비스업(포털·데이터), 광고대행업, 소프트웨어 개발. 의료관광 유치업은 등록 후 추가.</td><td>세무 대리인</td></tr>
|
||||||
|
<tr><td><span class="badge b-good">1</span></td><td><b>병원 파트너 계약 (병원마다)</b></td><td>홈페이지·영상·이미지 자산 사용 허락 범위, 의료광고 주체는 개설자·AIO2O는 제작·운영 대행, 글별 의학 검토·게시 승인 의무와 주기, 지원 관계 고지 문구, 정정 절차, 환자 데이터 처리 역할. 뷰성형외과와의 앵커 조항(소개·자문·지분 또는 수수료)은 별도 부속.</td><td>변호사 검토. 표준 계약서 1종</td></tr>
|
||||||
|
<tr><td><span class="badge b-good">1</span></td><td><b>의료광고 규정 준수 체계</b></td><td>의료법 56조 2항(치료경험담 2호, 비교 4호, 수술 장면 6호, 부작용 누락 7호, 과장 8호, 기사·전문가 형태 10호, 인증·보증 14호)을 발행 게이트와 이미지 규칙으로 차단. 경제적 이해관계 표시는 추천·보증 심사지침대로 글 첫 부분. 외국어 페이지도 동일 적용.</td><td>완료(코드). 외국어 게이트 어휘 추가 필요</td></tr>
|
||||||
|
<tr><td><span class="badge b-warn">1→2</span></td><td><b>의료광고 사전심의 (매체 기준)</b></td><td>의료법 57조. 자체 도메인 신규 매체는 전년도 일평균 이용자 10만 미만이라 의무 아님. 10만을 넘기면 대한의사협회 의료광고심의위원회 심의 대상. 네이버 블로그 재작성본은 게시물별 심의 대상이며 신청은 병원 명의.</td><td>이용자 수 모니터링. 확인: 외국어 매체 적용 여부</td></tr>
|
||||||
|
<tr><td><span class="badge b-warn">1→2</span></td><td><b>외국인환자 유치 광고 규정</b></td><td>의료해외진출 및 외국인환자 유치 지원법. 유치업자·의료기관의 외국인환자 유치 광고는 국내 지정 장소(공항·항만·면세구역 등) 외 제한, 진료 비용 할인·과장 금지. 온라인 다국어 매체가 이 규정에서 어떻게 취급되는지 확인.</td><td>확인: 보건복지부·KHIDI</td></tr>
|
||||||
|
<tr><td><span class="badge b-warn">2</span></td><td><b>외국인환자 유치업자 등록</b></td><td>같은 법 6조. 상담·예약을 중개하고 대가를 받으면 필수. 요건(확인): 법인, 자본금 1억 원 이상, 의료사고 배상책임보험 또는 공제(보장 한도 기준 있음), 사무실. 시·도에 등록, 3년마다 갱신, 유치 실적 연 1회 보고. 미등록 유치·수수료는 형사 처벌 대상.</td><td>AIO2O 법인. 2단계 착수 전 3개월</td></tr>
|
||||||
|
<tr><td><span class="badge b-warn">2</span></td><td><b>통신판매업 신고 · 결제(PG)</b></td><td>예약금·상담비를 온라인으로 받으면 통신판매업 신고(구청). 해외 카드 결제 PG(Stripe·토스 해외결제) 계약, 외화 정산 계좌. 환불·취소 약관.</td><td>2단계</td></tr>
|
||||||
|
<tr><td><span class="badge b-warn">2</span></td><td><b>개인정보·민감정보 처리</b></td><td>개인정보처리방침(한·영·일·중), 건강 정보는 민감정보라 별도 동의, 외국인 데이터의 국외 이전 동의(해외 결제·번역 API 사용 시), 병원과의 처리 위탁·제공 계약. GDPR·일본 개인정보보호법 적용 여부 확인(대상 국가별). 상담 신청 폼은 최소 수집.</td><td>변호사·개인정보 담당자 지정</td></tr>
|
||||||
|
<tr><td><span class="badge b-info">3</span></td><td><b>여행업 등록 (직접 판매 시)</b></td><td>숙박·관광 상품을 직접 판매·알선하면 관광진흥법 여행업 등록. 제휴 링크(아고다·클룩·야놀자 어필리에이트)만 쓰면 불필요. 배달은 제휴 API 부재.</td><td>3단계에서 결정</td></tr>
|
||||||
|
<tr><td><span class="badge b-info">1</span></td><td><b>상표·도메인</b></td><td>허브 브랜드 상표 출원(한국·주요 대상국), 국제 도메인, 언어별 서브패스(/en /ja /zh) 또는 서브도메인 결정(hreflang 설계에 영향).</td><td>브랜드 확정 후</td></tr>
|
||||||
|
<tr><td><span class="badge b-info">1</span></td><td><b>API·플랫폼 계정</b></td><td>Google Cloud 프로젝트 쿼터(신청 중) → Places API(GBP 평점·리뷰 수·NAP 실측), YouTube Data API 쿼터 증량(기본 1만 유닛/일, 병원 10곳 이상 시 신청), OpenAI 조직 한도, Firecrawl·네이버 검색 API, 번역(DeepL 또는 GPT), Vercel Pro(팀·도메인), Supabase Pro, Trigger.dev(워커), Apify 미납 해소(인스타 수집).</td><td>AIO2O 계정 소유자 통일</td></tr>
|
||||||
|
<tr><td><span class="badge b-info">1</span></td><td><b>보험·회계</b></td><td>매체 배상책임(명예훼손·저작권) 보험 검토, 병원 구독·수수료 세금계산서 체계, 외화 수익 회계.</td><td>확인</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table></div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 6. 기술 스택과 기능 -->
|
||||||
|
<section id="s6" class="light pb"><div class="wrap">
|
||||||
|
<div class="eyebrow">06 · Stack & Capabilities</div><h2 class="serif">Done, Partial, New</h2>
|
||||||
|
<p class="sub">완료는 두 병원에서 검증된 것, 부분은 있으나 포털 규모로 바꿔야 하는 것, 신규는 없는 것. 근거 열은 저장소 파일이다.</p>
|
||||||
|
<div class="grid g3" style="margin-top:22px">
|
||||||
|
<div class="card"><h3>현재 스택</h3><p><span class="pill">React 19</span><span class="pill">Vite 6</span><span class="pill">Tailwind 4</span><span class="pill">React Router 7</span><span class="pill">Astro 7 (서포터즈)</span><span class="pill">Supabase (DB·Edge Functions)</span><span class="pill">Vercel</span><span class="pill">Node 22 워커</span><span class="pill">Python (채점기·이미지)</span><span class="pill">GPT-4.1</span><span class="pill">YouTube Data API</span><span class="pill">Firecrawl</span><span class="pill">네이버 검색 API</span></p></div>
|
||||||
|
<div class="card"><h3>추가 스택 (1~2단계)</h3><p><span class="pill">번역: GPT-4.1 근거 프로토콜 재실행 + DeepL 검수</span><span class="pill">Trigger.dev (워커 상시)</span><span class="pill">Supabase Auth (병원·운영자 역할)</span><span class="pill">Stripe / 토스 해외결제</span><span class="pill">Google Places API</span><span class="pill">Resend·SES (알림 메일)</span><span class="pill">Plausible 또는 GA4 (AI 유입 채널그룹)</span><span class="pill">Vercel 로그 드레인 (AI 크롤러 계측)</span></p></div>
|
||||||
|
<div class="card"><h3>원칙 (변하지 않는 것)</h3><ul><li>근거 없는 사실은 생성하지 않는다. "확인 대기".</li><li>사람 게이트(검토·승인·채널 확인·이미지 육안)는 자동화하지 않는다.</li><li>고객 화면에 운영자 설명 없음. 확정 디자인은 텍스트만.</li><li>부재는 증명한다(채널 탐색 다섯 갈래).</li></ul></div>
|
||||||
|
</div>
|
||||||
|
<div style="overflow-x:auto;margin-top:22px"><table>
|
||||||
|
<thead><tr><th style="width:150px">영역</th><th>기능</th><th style="width:78px">상태</th><th style="width:260px">근거 파일 · 비고</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td rowspan="3"><b>진단 (AI Discovery)</b></td><td>기준표 v1.0 36항목 · v2.0 AEO/GEO 분리 채점, 미검증 분모 제외, 치명 게이트</td><td><span class="badge b-good">완료</span></td><td class="mono">src/data/aeoGeoRubric*.ts · src/lib/discoveryScore*.ts</td></tr>
|
||||||
|
<tr><td>자동 채점기(auto 21~22항목) · 리포트 페이지 · 독립 HTML/PDF 리포트</td><td><span class="badge b-good">완료</span></td><td class="mono">scripts/audit_aeo_geo.py · /discovery/:id · scripts/build_discovery_report.ts</td></tr>
|
||||||
|
<tr><td>외국인 질문 뱅크(영·일·중) · 다국어 답변엔진 실측 러너 · GBP·강남언니·플레이스 자동 실측(D1·D2·D4·D5)</td><td><span class="badge b-crit">신규</span></td><td>국문 120문항 러너 `scripts/run_question_bank_openai.py` 확장. Places API 키 필요</td></tr>
|
||||||
|
<tr><td rowspan="4"><b>온보딩 파이프라인</b></td><td>채널 발견·엔티티 검증(5갈래, 근거 점수 3-state) · 근거 수집(223p) · 팩트 시트·의료진 초안</td><td><span class="badge b-good">완료</span></td><td class="mono">supporters/scripts/discover_channels.mjs · collect_evidence.mjs</td></tr>
|
||||||
|
<tr><td>유튜브 집계(정보형 필터·쇼츠 판별) · 로고·파비콘 · 이미지(의료법 규칙·글자 이미지 검사)</td><td><span class="badge b-good">완료</span></td><td class="mono">collect_youtube.mjs · collect_images.mjs · img_process.py · docs/INFINITH_Supporters_Image_Rules.md</td></tr>
|
||||||
|
<tr><td>첫 배치 기획(2층 구조) · GPT-4.1 글 생성 · 수치 대조 · 모델 근거 대조 · 수정 2회</td><td><span class="badge b-good">완료</span></td><td class="mono">default_briefs.mjs · generate_posts.mjs · gen/*</td></tr>
|
||||||
|
<tr><td>뉴스룸 단계 · 감사 재실행(색인 허용 빌드 비교) · 유튜브 자막(IP 차단 대비 큐·프록시)</td><td><span class="badge b-warn">부분</span></td><td>뷰 수작업 스크립트 있음(`build_news.py`·`build_supporters_audit_xlsx.py`). 워커 단계로 미연결. 자막은 미구현</td></tr>
|
||||||
|
<tr><td rowspan="2"><b>발행 게이트</b></td><td>error 11종 + warn 6종 + 비교 수치 · 승인 · 고지 위치 · 기자 화법 · 구조 지문, 픽스처 테스트 16/16</td><td><span class="badge b-good">완료</span></td><td class="mono">supporters/scripts/gate/rules.mjs · check.mjs</td></tr>
|
||||||
|
<tr><td>외국어 금칙어·결론 단정·비교 표현 사전(영·일·중), 외국어 홈페이지 40자 중복 기준</td><td><span class="badge b-crit">신규</span></td><td>언어별 규칙 모듈. 원문 병원 페이지가 국문이면 번역 중복 검사 방식 결정 필요</td></tr>
|
||||||
|
<tr><td rowspan="3"><b>서포터즈 사이트 (병원 페이지)</b></td><td>Astro 템플릿(INFINITH 토큰) · 팩트 시트 단일 원본 · 신뢰 층(작성자·검토·승인·근거 유형·갱신·정정) · MedicalClinic·Physician·Article·FAQPage · noindex→색인 전환</td><td><span class="badge b-good">완료</span></td><td class="mono">templates/supporters-astro · supporters/src/lib.ts</td></tr>
|
||||||
|
<tr><td>다국어(hreflang·언어별 라우팅·언어별 팩트 시트 표기·통화·날짜) · 언어별 상담 신청 폼</td><td><span class="badge b-crit">신규</span></td><td>같은 팩트 시트에서 언어별 렌더. 수치·시점은 언어 간 동일해야 함</td></tr>
|
||||||
|
<tr><td>병원 N개를 한 도메인에서: 병원 서브패스 또는 서브도메인, 공통 홈·시술별 허브·질문별 답 페이지·병원 목록(비교·순위 없음)</td><td><span class="badge b-crit">신규</span></td><td>현재는 병원당 Vercel 프로젝트. 허브 도메인 설계와 canonical·sitemap 분리 필요</td></tr>
|
||||||
|
<tr><td rowspan="3"><b>승인·운영 UI</b></td><td>병원 확인 항목 폼(9항목) · 글별 검토·승인 기록 · 발견 채널 확인 · 미리보기 · 입력 반영 재빌드</td><td><span class="badge b-good">완료</span></td><td class="mono">src/components/discovery/ClinicInputsPanel.tsx · apply_inputs.mjs</td></tr>
|
||||||
|
<tr><td>계정·역할(병원 담당자·원장·운영자) · 로그인 · 병원별 권한 · 승인 서명 기록(승인자·직함·일시·글 버전 해시)</td><td><span class="badge b-crit">신규</span></td><td>지금은 익명 입력. Supabase Auth + RLS 병원 스코프</td></tr>
|
||||||
|
<tr><td>운영자 콘솔: 게이트 실패 목록, 이미지 육안 확인 체크, 확인 필요 채널 판정, 정정 접수, 비용·쿼터 대시보드</td><td><span class="badge b-warn">부분</span></td><td>status.json·report.md로 존재. 화면 없음</td></tr>
|
||||||
|
<tr><td rowspan="2"><b>워커·인프라</b></td><td>워커 11단계 · 큐(supporter_builds) · 폴러 · 랜딩 URL 신청 → 큐 · Vercel 미리보기 배포</td><td><span class="badge b-good">완료</span></td><td class="mono">workers/supporters-build/run.mjs · poll.mjs</td></tr>
|
||||||
|
<tr><td>상시 실행(Trigger.dev) · 입력 변경 시 자동 재빌드 트리거 · 실패 알림 · 병원 10곳 이상 동시 큐</td><td><span class="badge b-warn">부분</span></td><td>launchd plist 준비, 미설치. Trigger.dev 이관은 가입·키만 필요</td></tr>
|
||||||
|
<tr><td rowspan="2"><b>상담·예약 (2단계)</b></td><td>상담 신청 폼(언어·시술·일정·연락처) → 병원 이메일·카카오 알림 · 응답 추적</td><td><span class="badge b-crit">신규</span></td><td>1단계는 병원 직결(수수료 없음)</td></tr>
|
||||||
|
<tr><td>예약 확정·통역 배정·예약금 결제·취소 환불·정산 · 유치 실적 보고 데이터</td><td><span class="badge b-crit">신규</span></td><td>유치업 등록 후. Stripe·토스, 정산 테이블, 실적 보고 양식</td></tr>
|
||||||
|
<tr><td><b>여정 연결 (3단계)</b></td><td>회복 일정 기반 숙박·식사·관광 추천 · 제휴 링크 트래킹 · 축제·행사 데이터 연동(한국관광공사 API)</td><td><span class="badge b-crit">신규</span></td><td>제휴 API·어필리에이트 계정. 직접 판매 없음</td></tr>
|
||||||
|
<tr><td rowspan="2"><b>측정</b></td><td>서버 로그 AI 크롤러 히트 · GA4 AI 유입 채널그룹 · GSC AI Overviews · 기준선 스팟체크(질의 × 반복)</td><td><span class="badge b-crit">신규</span></td><td>E 카테고리 0/4. Vercel 로그 드레인 → Supabase, GA4 채널그룹 정의. 답변엔진 UI 자동 조회는 약관 위반이라 소유 신호만</td></tr>
|
||||||
|
<tr><td>병원별 성과 리포트(인용·유입·상담 신청) 자동 생성</td><td><span class="badge b-warn">부분</span></td><td>리포트 빌더 있음. 측정 데이터가 없어 카드가 비어 있음</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table></div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 7. 아키텍처 -->
|
||||||
|
<section id="s7" class="dark"><div class="wrap">
|
||||||
|
<div class="eyebrow">07 · Architecture</div><h2 class="serif">Data Flow</h2>
|
||||||
|
<p class="sub">공급(병원)은 자동 온보딩 파이프라인, 수요(환자)는 AI·검색 인용, 그 사이를 승인 데이터가 잇는다.</p>
|
||||||
|
<div class="flow" style="margin-top:22px">
|
||||||
|
<div class="st"><b>입력</b><br>병원 이름 또는 URL (랜딩 신청·운영자·앵커 소개) → 큐</div>
|
||||||
|
<div class="st"><b>발견·수집</b><br>채널 엔티티 검증, 근거 223p, 유튜브, 이미지(법 필터), 팩트 시트</div>
|
||||||
|
<div class="st"><b>생성·게이트</b><br>기획 → GPT-4.1 → 수치·근거 대조 → 발행 게이트 → 국문 원문</div>
|
||||||
|
<div class="st"><b>다국어</b><br>같은 팩트 시트·근거로 언어별 재생성(번역 아님) → 언어별 게이트 → hreflang</div>
|
||||||
|
<div class="st"><b>승인</b><br>병원 폼 입력 → 검토·승인 기록 → 색인 허용 빌드에 승인 글만</div>
|
||||||
|
<div class="st"><b>허브 배포·측정</b><br>허브 도메인(병원별 경로) → AI·검색 인용 → 로그·GA4·상담 신청 계측</div>
|
||||||
|
</div>
|
||||||
|
<div class="grid g2" style="margin-top:18px">
|
||||||
|
<div class="card"><h3>데이터 모델 (핵심 테이블)</h3><ul><li><b>clinics</b>: id, 이름(다국어), url, 팩트 시트(JSON, checkedAt/nextCheck), surfaces(확인된 채널), 파트너 계약 상태.</li><li><b>supporter_builds</b>(있음): 빌드 실행·단계·미리보기 URL·리포트.</li><li><b>supporter_inputs</b>(있음): 병원 입력, 글별 검토·승인.</li><li><b>posts</b>: 언어별 글, 근거 유형, 검토·승인, 갱신 기록. 지금은 md frontmatter, 허브 규모에서는 DB로.</li><li><b>inquiries</b>(신규): 상담 신청, 언어, 병원 전달·응답 시각.</li><li><b>bookings·payments</b>(2단계), <b>affiliate_clicks</b>(3단계), <b>ai_crawler_hits·ai_referrals</b>(측정).</li></ul></div>
|
||||||
|
<div class="card"><h3>다국어 설계 원칙</h3><ul><li>번역이 아니라 근거 프로토콜을 언어별로 다시 태운다. 수치·시점·의료진은 팩트 시트 한 곳에서 나온다.</li><li>언어별 게이트: 금칙어·결론 단정·비교 표현 사전을 언어마다 둔다. 부작용 고지·지원 관계 고지는 언어별 문안 고정.</li><li>hreflang 상호 연결, canonical 언어별, sitemap 언어별. 병원 홈페이지 영문 사이트가 있으면 sameAs로 연결.</li><li>통화·단위: 비용 항목만 쓰고 금액은 쓰지 않으므로 환율 문제는 2단계 결제에서만.</li></ul></div>
|
||||||
|
</div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 8. 로드맵 -->
|
||||||
|
<section id="s8" class="near"><div class="wrap">
|
||||||
|
<div class="eyebrow">08 · Roadmap</div><h2 class="serif">Three Phases</h2>
|
||||||
|
<div class="grid g3" style="margin-top:22px">
|
||||||
|
<div class="card"><span class="badge b-good">1단계 · 8~12주</span><h3 style="margin-top:10px">글로벌 허브 MVP</h3><ul><li>허브 브랜드·도메인·언어 라우팅 결정</li><li>다국어 생성(영·일·중) + 언어별 게이트</li><li>다병원 허브(공통 홈·시술 허브·병원 페이지·상담 신청 병원 직결)</li><li>뷰성형외과 + 앵커 소개 병원 2~4곳 온보딩(자동)</li><li>외국인 질문 뱅크 실측(기준선)</li><li>측정 인프라: 로그 드레인·GA4 채널그룹</li><li>계정·역할·운영자 콘솔 최소판</li></ul><p class="muted">게이트: 병원 4곳 개설자 승인, 인용 기준선 확보</p></div>
|
||||||
|
<div class="card"><span class="badge b-warn">2단계 · 3~6개월</span><h3 style="margin-top:10px">예약·수익화</h3><ul><li>유치업자 등록(법인·자본금·배상보험) 완료</li><li>예약 확정·통역·예약금 결제·환불·정산</li><li>병원 구독(온보딩·원문 공급·리포트) 요금제</li><li>뉴스룸·감사 재실행·자막 단계 워커 연결</li><li>Trigger.dev 상시 워커, 입력 변경 자동 재빌드</li><li>개인정보 국외 이전·민감정보 동의 체계</li></ul><p class="muted">게이트: 유치업 등록증, PG 계약, 상담→예약 전환 데이터</p></div>
|
||||||
|
<div class="card"><span class="badge b-info">3단계 · 이후</span><h3 style="margin-top:10px">회복기 여정 연결</h3><ul><li>회복 일정 기반 숙박·식사·관광 추천(제휴)</li><li>축제·행사 데이터(관광공사 API)</li><li>미용 서비스 제휴, 배달은 안내</li><li>병원 10곳 이상, 피부과 확장</li><li>여행업 등록 여부 결정</li></ul><p class="muted">게이트: 제휴 계약, 3단계 수익 검증</p></div>
|
||||||
|
</div>
|
||||||
|
<div class="card cta" style="margin-top:18px"><h3>1단계 착수 전 CEO 결정 3가지</h3><p style="color:var(--navy)">(1) 뷰성형외과 앵커 계약 조건(무상 온보딩·소개·자문 대가로 소액 지분 또는 수수료). (2) 유치업 등록을 AIO2O 법인으로 할지, 등록된 유치업자와 제휴할지. (3) 수익 순서: 병원 구독이 먼저인지 예약 수수료가 먼저인지. 이 셋이 정해지면 나머지는 지금 파이프라인 위에 붙는 개발이다.</p></div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 9. KPI -->
|
||||||
|
<section id="s9" class="light"><div class="wrap">
|
||||||
|
<div class="eyebrow">09 · Metrics</div><h2 class="serif">How We Measure</h2>
|
||||||
|
<p class="sub">답변엔진 UI 자동 조회는 약관 위반이라 주력 지표는 소유 신호다. 효과는 반복 측정과 신뢰구간으로만 보고한다.</p>
|
||||||
|
<div style="overflow-x:auto;margin-top:22px"><table>
|
||||||
|
<thead><tr><th style="width:170px">축</th><th>지표</th><th style="width:220px">소스</th><th style="width:150px">1단계 목표</th></tr></thead>
|
||||||
|
<tbody>
|
||||||
|
<tr><td><b>공급</b></td><td>온보딩 병원 수, 언어별 발행 글 수, 개설자 승인 글 비율, 게이트 오류율, 편당 생성 비용</td><td>supporter_builds·inputs, 생성기 리포트</td><td>병원 4곳 · 승인 60% 이상</td></tr>
|
||||||
|
<tr><td><b>인용(AEO/GEO)</b></td><td>외국인 질문 뱅크 인용률(언어별, 5회 반복), 병원 AEO/GEO 점수 변화, AI 크롤러 히트(IP 검증)</td><td>QB 러너, 채점기, 서버 로그</td><td>기준선 확보, 크롤러 히트 발생</td></tr>
|
||||||
|
<tr><td><b>유입</b></td><td>AI 유입 세션(GA4 채널그룹), 검색 유입, 언어별 체류</td><td>GA4·GSC</td><td>월 AI 유입 세션 측정 시작</td></tr>
|
||||||
|
<tr><td><b>전환</b></td><td>상담 신청 수, 병원 응답률·응답 시간, (2단계) 예약 확정·결제</td><td>inquiries·bookings</td><td>상담 신청 월 10건</td></tr>
|
||||||
|
<tr><td><b>신뢰</b></td><td>정정 접수·처리 시간, 게이트 차단 건수, 확인 대기 항목 해소율</td><td>corrections, 게이트 로그</td><td>정정 72시간 내 처리</td></tr>
|
||||||
|
</tbody>
|
||||||
|
</table></div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 10. 리스크 -->
|
||||||
|
<section id="s10" class="dark"><div class="wrap">
|
||||||
|
<div class="eyebrow">10 · Risks & Open Questions</div><h2 class="serif">What Can Break</h2>
|
||||||
|
<div class="grid g2" style="margin-top:22px">
|
||||||
|
<div class="card"><h3>리스크와 대응</h3><ul><li><b>규제</b>: 유치업 미등록 상태의 수수료, 외국인 유치 광고 규정, 사전심의 매체 기준. 대응: 1단계 무수수료·병원 직결, 2단계 전 등록, 이용자 수 모니터링.</li><li><b>공급 정체</b>: 병원이 검토·승인을 안 한다. 대응: 미승인이어도 "확인 대기" 미리보기 발행, 검토 담당자·주기를 계약에.</li><li><b>중립성 의심</b>: 앵커 병원 편향. 대응: 지분 공개·고지, 노출 순서 규칙 공개, 비교·순위 없음.</li><li><b>생성 품질</b>: 근거 없는 수치·오역. 대응: 언어별 수치 대조·근거 대조, 사람 확인 플래그, 정정 페이지.</li><li><b>경쟁</b>: 크리에이트립·강남언니 글로벌이 AI 인용 구조를 갖추면 빈자리가 닫힌다. 대응: 속도. 온보딩 자동화가 유일한 시간 우위.</li><li><b>운영</b>: 비개발자 운영, 워커 상시 실행 미결정. 대응: Trigger.dev, 운영자 콘솔.</li><li><b>브랜드</b>: 파트너 병원의 공정위·의료사고 이력. 대응: 계약 표명·보증, 뉴스룸 부정 기사 제외 규칙 유지, 허브 이름에 병원명 배제.</li></ul></div>
|
||||||
|
<div class="card"><h3>미결 (결정 주체)</h3><ul><li>허브 브랜드·도메인·언어 라우팅 (CEO·haewon)</li><li>뷰 앵커 계약 조건, 합작 여부 (CEO)</li><li>유치업 등록 주체와 시점 (CEO·법무)</li><li>수익 모델 순서와 병원 구독 가격 (경영진)</li><li>대상 언어·국가 우선순위 (일본·중국어권·영어권) (CEO)</li><li>실존 서포터즈·편집 책임자 명의 (haewon)</li><li>워커 상시 실행 위치 (haewon)</li><li>기존 미결: 뷰 도메인, POC 8주 범위, 서포터즈 모집</li></ul></div>
|
||||||
|
</div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<!-- 11. 부록 -->
|
||||||
|
<section id="s11" class="near"><div class="wrap">
|
||||||
|
<div class="eyebrow">11 · Appendix</div><h2 class="serif">References</h2>
|
||||||
|
<div class="grid g2" style="margin-top:22px">
|
||||||
|
<div class="card"><h3>프로젝트 산출물</h3><ul>
|
||||||
|
<li>진단 리포트: <span class="mono">docs/reports/viewclinic/01_readiness_report</span> · <span class="mono">docs/reports/wonjin/01_readiness_report</span> (HTML·PDF)</li>
|
||||||
|
<li>미리보기: supporters-viewclinic.vercel.app · supporters-wonjin.vercel.app (noindex)</li>
|
||||||
|
<li>병원 확인 항목 패널: infinith-demo.vercel.app/supporters/wonjin</li>
|
||||||
|
<li>핸드오버: <span class="mono">docs/NEXT_SESSION_SUPPORTERS_AUTOBUILD_v3.md</span>, 규칙: v2 §3·§4·§6·§12</li>
|
||||||
|
<li>회고: <span class="mono">docs/INFINITH_AI_Discovery_Retrospective_2026-09-08.md</span></li>
|
||||||
|
<li>이미지 규칙: <span class="mono">docs/INFINITH_Supporters_Image_Rules.md</span></li>
|
||||||
|
<li>워커: <span class="mono">workers/supporters-build/README.md</span></li>
|
||||||
|
</ul></div>
|
||||||
|
<div class="card"><h3>법령·기준 (원문 확인 필요)</h3><ul>
|
||||||
|
<li>의료법 제56조(의료광고의 금지 등) 제2항, 제57조(의료광고의 심의), 시행령 제23조·제24조</li>
|
||||||
|
<li>의료 해외진출 및 외국인환자 유치 지원법 제6조(유치업자 등록), 제15조(의료광고 특례·제한), 시행규칙(등록 요건·보험)</li>
|
||||||
|
<li>표시·광고의 공정화에 관한 법률, 추천·보증 등에 관한 표시·광고 심사지침(2024-12 개정)</li>
|
||||||
|
<li>개인정보 보호법(민감정보·국외 이전), 정보통신망법</li>
|
||||||
|
<li>전자상거래법(통신판매업 신고), 관광진흥법(여행업)</li>
|
||||||
|
<li>공정거래위원회 2026-07-12 성형외과 후기 뒷광고 시정명령(뷰성형외과 포함 3곳)</li>
|
||||||
|
</ul></div>
|
||||||
|
</div>
|
||||||
|
</div></section>
|
||||||
|
|
||||||
|
<footer>INFINITH · AI오투오 · o2oteam@o2o.kr · PRD v0.1 초안 2026-09-08 · 법 해석은 자문이 아니며 계약·등록 전 변호사 확인이 필요합니다.</footer>
|
||||||
|
</body></html>
|
||||||
Loading…
Reference in New Issue
Block a user