diff --git a/docs/prd/INFINITH_Global_Medical_Hub_PRD_v0.2.html b/docs/prd/INFINITH_Global_Medical_Hub_PRD_v0.2.html new file mode 100644 index 0000000..954fdff --- /dev/null +++ b/docs/prd/INFINITH_Global_Medical_Hub_PRD_v0.2.html @@ -0,0 +1,298 @@ + +
+한국 성형외과·피부과의 시술·의료진·회복·비용 항목을 다국어 원문으로 공급하고, 상담·예약과 회복기 여정(숙박·식사·관광·미용)을 한 곳에서 연결하는 플랫폼. 병원이 아니라 AIO2O가 소유·운영한다. 지금 완성된 AI Discovery 진단과 서포터즈 자동 빌드 파이프라인이 공급 쪽 절반을 이미 자동화했다.
+작성 2026-09-08 · 작성 Claude (haewon 세션) · 검토 haewon · 결정 CEO · 배경: 2026-09-08 CEO·뷰성형외과 미팅 (원장의 의료관광 포털 제안) · 법 해석은 자문이 아니며 계약·등록 전 변호사 확인 필요
v0.2 개정 2026-09-09 · 앵커의 병원 소개 역량 반영 (§04 앵커 계약 조항, §05 소개 구조 확인, §08 소개 규모·CEO 결정, §10 앵커 의존 리스크·미결 2건)
병원 홈페이지와 네이버 자산은 글로벌 AI 답변에 닿지 않는다. 그 공백을 원문 매체로 채우는 것이 INFINITH의 처방이고, 외국인 환자 시장은 인용할 원문이 가장 부족한 곳이다.
+뷰성형외과 AEO 42 / GEO 56, 원진성형외과 AEO 15 / GEO 45. 크롤러 접근은 열려 있으나 정의문·FAQ·표·의료진 스키마가 없다. 원진 영문 사이트는 hreflang조차 없다.
2026-09-08 CEO 미팅에서 뷰성형외과 원장이 성형외과·피부과를 모은 글로벌 의료관광 포털을 제안했다. 반응은 좋았으나 "비슷한 제안이 많다"는 말도 들었다. 차별점은 실측 진단과 인용되는 원문, 그리고 자동 온보딩이다.
이름 하나로 채널 확인, 근거 수집, 팩트 시트, 의료진, 영상, 이미지(의료법 필터), 글 6편, 발행 게이트, 미리보기까지 30분에 $0.6. 두 병원에서 사람 개입 없이 완주했다.
외국인이 ChatGPT·Perplexity·Gemini에 "best rhinoplasty clinic in Seoul for foreigners"라고 물었을 때 인용할 다국어 원문(시술 조건 표·회복 일정·의료진·안전 체계·비용 항목)이 오픈웹에 사실상 없다. 기존 앱(강남언니 글로벌·바비톡·크리에이트립)은 정보를 앱 안에 가두고, 병원 영문 사이트는 슬로건과 이미지다. 네이버 자산은 robots.txt로 AI 크롤러를 막아 기여도 0이다(2026-08-26 실측).
세 층으로 나눈다. 첫 층은 우리가 만들고, 둘째 층은 자격을 갖춰 만들며, 셋째 층은 만들지 않고 연결한다.
+병원별 다국어 원문 페이지(시술 조건 표·회복 일정·의료진·안전·비용 항목·FAQ), 병원 공통 허브(시술별 비교 없는 목록·질문별 답), AI 답변엔진·검색 인용 구조(MedicalClinic·Physician·Article·FAQPage·hreflang). 지금 파이프라인 그대로.
병원 선택 → 상담 신청 → 통역 포함 예약 확정 → 결제·정산. 대가를 받는 순간 외국인환자 유치업자 등록이 필요하다. 1단계에서는 상담 신청을 병원에 직접 넘기고 수수료를 받지 않는다.
숙박·식사·관광·축제·미용·배달은 제휴 링크와 파트너 API로 연결한다. 직접 판매하면 여행업·통신판매업 등록이 따라온다. 배달은 국내 앱이 외부 API를 열지 않아 정보 안내 수준.
일본·중국어권·동남아·영어권. AI와 검색에 질문 → 허브 원문 → 병원 페이지 → 상담 신청 → 방문·회복. 원하는 것은 조건(시간·마취·회복·비용 항목)과 안전, 그리고 의사소통.
온보딩 폼(v2 §6 9항목), 글별 검토자·검토일 입력, 상담 신청 응답. 기술 지식 없음. 지금 만든 `/supporters/:id` 패널이 시작점.
의학 검토, 게시 승인. 의료광고 주체. 승인 기록(승인자·직함·일시·글 버전)이 법적 근거가 된다.
큐·워커 운영, 게이트 실패 처리, 이미지 육안 확인, "확인 필요" 채널 판정, 정정 접수. 비개발자가 운영할 수 있어야 한다.
포털의 생명은 중립성이다. 한 병원의 계열 플랫폼에는 두 번째 병원이 들어오지 않는다. 파이프라인 IP는 AIO2O 사업 자체이므로 어떤 구조에서도 밖에 두지 않는다.
+| 기준 | 뷰성형외과 자회사 | 뷰 · AIO2O 합작법인 | AIO2O 단독 + 뷰 앵커 파트너 (추천) |
|---|---|---|---|
| 다른 병원 참여 | 어렵다. 경쟁 병원 계열사에 의료진·비용 항목을 올릴 이유가 없다 | 뷰 지분이 보이면 같은 경계. 지분이 작고 공개돼 있으면 완화 | 문제없다 |
| 의료광고·고지 | 자회사 매체가 모병원을 노출하면 경제적 이해관계 고지가 페이지마다 붙고 추천·보증 심사지침 대상 | 같다. 뷰 관련 페이지에 지분 관계 고지 | 병원별 지원 관계 고지만 |
| 유치업 등록 | 의료기관도 유치 등록은 가능하나 타 병원 환자 중개는 별도 법인이 깔끔 | 합작법인이 유치업자로 등록하면 자연스럽다 | AIO2O 법인이 등록 (2단계 전) |
| 자본·앵커 | 병원이 자본을 댄다 | 자본·첫 병원·의료 자문을 같이 얻는다 | 자본은 AIO2O 몫. 앵커는 계약으로 |
| IP·속도 | 파이프라인이 병원 소유가 된다 | IP를 JV에 넣으면 사업이 JV에 묶인다. 의사결정 둘 | IP·속도 모두 AIO2O |
| 브랜드 리스크 | 뷰의 2026-07 공정위 시정명령(후기 뒷광고) 이력이 그대로 붙는다 | 같은 이력이 JV 브랜드에 묻는다 | 파트너 병원 중 하나의 이력 |
전달 사항(미확인). 2026-09-09 haewon 전달. 뷰성형외과 원장이 다른 병원 네트워크·파트너십이 많아 병원을 유치할 수 있다고 밝혔다. 병원 명단·수·과목·지역·현재 관계 단계는 확인되지 않았다. 이 문서는 이를 사실이 아니라 확인 대상으로 둔다.
+구조 판단은 바뀌지 않는다. 소개는 계약으로 확보할 수 있다. IP 귀속과 중립성 요건은 소개 규모와 무관하다. 위 비교표의 "다른 병원 참여" 행은 자회사·합작법인 구조에 대한 판단이며, 추천 구조는 이미 앵커가 병원을 소개하는 것을 전제로 한다(§07 입력 경로, §08 1단계). 소개 역량이 크다면 바뀌는 것은 구조가 아니라 소개 목표 수치와 그 대가다.
+답변 전까지 §08 1단계의 소개 병원 수는 최소선 2~4곳을 유지한다.
+단계별로 필요한 등록·신고·계약·계정을 전부 적었다. "확인"은 요건 수치나 적용 여부를 담당 기관 또는 변호사에게 확인해야 하는 항목이다.
+| 단계 | 항목 | 근거·요건 | 담당·비고 |
|---|---|---|---|
| 1 | 사업자 업종 추가 | 정보서비스업(포털·데이터), 광고대행업, 소프트웨어 개발. 의료관광 유치업은 등록 후 추가. | 세무 대리인 |
| 1 | 병원 간 상호 소개 구조 확인 | 의료법 27조 3항(영리 목적 환자 소개·알선·유인 금지). 앵커·파트너 병원이 서로 환자를 소개하는 기존 관계를 허브에 그대로 옮길 때 적용 여부. 앵커에게 지급하는 병원 소개 대가가 이 조항 또는 유치업 등록 전 수수료 제한에 걸리는지 함께 본다. 관계의 성격(공동 마케팅·리퍼럴·학회)에 따라 판단이 갈린다. | 확인: 변호사. 앵커 소개 명단 확보 후 |
| 1 | 병원 파트너 계약 (병원마다) | 홈페이지·영상·이미지 자산 사용 허락 범위, 의료광고 주체는 개설자·AIO2O는 제작·운영 대행, 글별 의학 검토·게시 승인 의무와 주기, 지원 관계 고지 문구, 정정 절차, 환자 데이터 처리 역할. 뷰성형외과와의 앵커 조항(소개·자문·지분 또는 수수료)은 별도 부속. | 변호사 검토. 표준 계약서 1종 |
| 1 | 의료광고 규정 준수 체계 | 의료법 56조 2항(치료경험담 2호, 비교 4호, 수술 장면 6호, 부작용 누락 7호, 과장 8호, 기사·전문가 형태 10호, 인증·보증 14호)을 발행 게이트와 이미지 규칙으로 차단. 경제적 이해관계 표시는 추천·보증 심사지침대로 글 첫 부분. 외국어 페이지도 동일 적용. | 완료(코드). 외국어 게이트 어휘 추가 필요 |
| 1→2 | 의료광고 사전심의 (매체 기준) | 의료법 57조. 자체 도메인 신규 매체는 전년도 일평균 이용자 10만 미만이라 의무 아님. 10만을 넘기면 대한의사협회 의료광고심의위원회 심의 대상. 네이버 블로그 재작성본은 게시물별 심의 대상이며 신청은 병원 명의. | 이용자 수 모니터링. 확인: 외국어 매체 적용 여부 |
| 1→2 | 외국인환자 유치 광고 규정 | 의료해외진출 및 외국인환자 유치 지원법. 유치업자·의료기관의 외국인환자 유치 광고는 국내 지정 장소(공항·항만·면세구역 등) 외 제한, 진료 비용 할인·과장 금지. 온라인 다국어 매체가 이 규정에서 어떻게 취급되는지 확인. | 확인: 보건복지부·KHIDI |
| 2 | 외국인환자 유치업자 등록 | 같은 법 6조. 상담·예약을 중개하고 대가를 받으면 필수. 요건(확인): 법인, 자본금 1억 원 이상, 의료사고 배상책임보험 또는 공제(보장 한도 기준 있음), 사무실. 시·도에 등록, 3년마다 갱신, 유치 실적 연 1회 보고. 미등록 유치·수수료는 형사 처벌 대상. | AIO2O 법인. 2단계 착수 전 3개월 |
| 2 | 통신판매업 신고 · 결제(PG) | 예약금·상담비를 온라인으로 받으면 통신판매업 신고(구청). 해외 카드 결제 PG(Stripe·토스 해외결제) 계약, 외화 정산 계좌. 환불·취소 약관. | 2단계 |
| 2 | 개인정보·민감정보 처리 | 개인정보처리방침(한·영·일·중), 건강 정보는 민감정보라 별도 동의, 외국인 데이터의 국외 이전 동의(해외 결제·번역 API 사용 시), 병원과의 처리 위탁·제공 계약. GDPR·일본 개인정보보호법 적용 여부 확인(대상 국가별). 상담 신청 폼은 최소 수집. | 변호사·개인정보 담당자 지정 |
| 3 | 여행업 등록 (직접 판매 시) | 숙박·관광 상품을 직접 판매·알선하면 관광진흥법 여행업 등록. 제휴 링크(아고다·클룩·야놀자 어필리에이트)만 쓰면 불필요. 배달은 제휴 API 부재. | 3단계에서 결정 |
| 1 | 상표·도메인 | 허브 브랜드 상표 출원(한국·주요 대상국), 국제 도메인, 언어별 서브패스(/en /ja /zh) 또는 서브도메인 결정(hreflang 설계에 영향). | 브랜드 확정 후 |
| 1 | API·플랫폼 계정 | Google Cloud 프로젝트 쿼터(신청 중) → Places API(GBP 평점·리뷰 수·NAP 실측), YouTube Data API 쿼터 증량(기본 1만 유닛/일, 병원 10곳 이상 시 신청), OpenAI 조직 한도, Firecrawl·네이버 검색 API, 번역(DeepL 또는 GPT), Vercel Pro(팀·도메인), Supabase Pro, Trigger.dev(워커), Apify 미납 해소(인스타 수집). | AIO2O 계정 소유자 통일 |
| 1 | 보험·회계 | 매체 배상책임(명예훼손·저작권) 보험 검토, 병원 구독·수수료 세금계산서 체계, 외화 수익 회계. | 확인 |
완료는 두 병원에서 검증된 것, 부분은 있으나 포털 규모로 바꿔야 하는 것, 신규는 없는 것. 근거 열은 저장소 파일이다.
+React 19Vite 6Tailwind 4React Router 7Astro 7 (서포터즈)Supabase (DB·Edge Functions)VercelNode 22 워커Python (채점기·이미지)GPT-4.1YouTube Data APIFirecrawl네이버 검색 API
번역: GPT-4.1 근거 프로토콜 재실행 + DeepL 검수Trigger.dev (워커 상시)Supabase Auth (병원·운영자 역할)Stripe / 토스 해외결제Google Places APIResend·SES (알림 메일)Plausible 또는 GA4 (AI 유입 채널그룹)Vercel 로그 드레인 (AI 크롤러 계측)
| 영역 | 기능 | 상태 | 근거 파일 · 비고 |
|---|---|---|---|
| 진단 (AI Discovery) | 기준표 v1.0 36항목 · v2.0 AEO/GEO 분리 채점, 미검증 분모 제외, 치명 게이트 | 완료 | src/data/aeoGeoRubric*.ts · src/lib/discoveryScore*.ts |
| 자동 채점기(auto 21~22항목) · 리포트 페이지 · 독립 HTML/PDF 리포트 | 완료 | scripts/audit_aeo_geo.py · /discovery/:id · scripts/build_discovery_report.ts | |
| 외국인 질문 뱅크(영·일·중) · 다국어 답변엔진 실측 러너 · GBP·강남언니·플레이스 자동 실측(D1·D2·D4·D5) | 신규 | 국문 120문항 러너 `scripts/run_question_bank_openai.py` 확장. Places API 키 필요 | |
| 온보딩 파이프라인 | 채널 발견·엔티티 검증(5갈래, 근거 점수 3-state) · 근거 수집(223p) · 팩트 시트·의료진 초안 | 완료 | supporters/scripts/discover_channels.mjs · collect_evidence.mjs |
| 유튜브 집계(정보형 필터·쇼츠 판별) · 로고·파비콘 · 이미지(의료법 규칙·글자 이미지 검사) | 완료 | collect_youtube.mjs · collect_images.mjs · img_process.py · docs/INFINITH_Supporters_Image_Rules.md | |
| 첫 배치 기획(2층 구조) · GPT-4.1 글 생성 · 수치 대조 · 모델 근거 대조 · 수정 2회 | 완료 | default_briefs.mjs · generate_posts.mjs · gen/* | |
| 뉴스룸 단계 · 감사 재실행(색인 허용 빌드 비교) · 유튜브 자막(IP 차단 대비 큐·프록시) | 부분 | 뷰 수작업 스크립트 있음(`build_news.py`·`build_supporters_audit_xlsx.py`). 워커 단계로 미연결. 자막은 미구현 | |
| 발행 게이트 | error 11종 + warn 6종 + 비교 수치 · 승인 · 고지 위치 · 기자 화법 · 구조 지문, 픽스처 테스트 16/16 | 완료 | supporters/scripts/gate/rules.mjs · check.mjs |
| 외국어 금칙어·결론 단정·비교 표현 사전(영·일·중), 외국어 홈페이지 40자 중복 기준 | 신규 | 언어별 규칙 모듈. 원문 병원 페이지가 국문이면 번역 중복 검사 방식 결정 필요 | |
| 서포터즈 사이트 (병원 페이지) | Astro 템플릿(INFINITH 토큰) · 팩트 시트 단일 원본 · 신뢰 층(작성자·검토·승인·근거 유형·갱신·정정) · MedicalClinic·Physician·Article·FAQPage · noindex→색인 전환 | 완료 | templates/supporters-astro · supporters/src/lib.ts |
| 다국어(hreflang·언어별 라우팅·언어별 팩트 시트 표기·통화·날짜) · 언어별 상담 신청 폼 | 신규 | 같은 팩트 시트에서 언어별 렌더. 수치·시점은 언어 간 동일해야 함 | |
| 병원 N개를 한 도메인에서: 병원 서브패스 또는 서브도메인, 공통 홈·시술별 허브·질문별 답 페이지·병원 목록(비교·순위 없음) | 신규 | 현재는 병원당 Vercel 프로젝트. 허브 도메인 설계와 canonical·sitemap 분리 필요 | |
| 승인·운영 UI | 병원 확인 항목 폼(9항목) · 글별 검토·승인 기록 · 발견 채널 확인 · 미리보기 · 입력 반영 재빌드 | 완료 | src/components/discovery/ClinicInputsPanel.tsx · apply_inputs.mjs |
| 계정·역할(병원 담당자·원장·운영자) · 로그인 · 병원별 권한 · 승인 서명 기록(승인자·직함·일시·글 버전 해시) | 신규 | 지금은 익명 입력. Supabase Auth + RLS 병원 스코프 | |
| 운영자 콘솔: 게이트 실패 목록, 이미지 육안 확인 체크, 확인 필요 채널 판정, 정정 접수, 비용·쿼터 대시보드 | 부분 | status.json·report.md로 존재. 화면 없음 | |
| 워커·인프라 | 워커 11단계 · 큐(supporter_builds) · 폴러 · 랜딩 URL 신청 → 큐 · Vercel 미리보기 배포 | 완료 | workers/supporters-build/run.mjs · poll.mjs |
| 상시 실행(Trigger.dev) · 입력 변경 시 자동 재빌드 트리거 · 실패 알림 · 병원 10곳 이상 동시 큐 | 부분 | launchd plist 준비, 미설치. Trigger.dev 이관은 가입·키만 필요 | |
| 상담·예약 (2단계) | 상담 신청 폼(언어·시술·일정·연락처) → 병원 이메일·카카오 알림 · 응답 추적 | 신규 | 1단계는 병원 직결(수수료 없음) |
| 예약 확정·통역 배정·예약금 결제·취소 환불·정산 · 유치 실적 보고 데이터 | 신규 | 유치업 등록 후. Stripe·토스, 정산 테이블, 실적 보고 양식 | |
| 여정 연결 (3단계) | 회복 일정 기반 숙박·식사·관광 추천 · 제휴 링크 트래킹 · 축제·행사 데이터 연동(한국관광공사 API) | 신규 | 제휴 API·어필리에이트 계정. 직접 판매 없음 |
| 측정 | 서버 로그 AI 크롤러 히트 · GA4 AI 유입 채널그룹 · GSC AI Overviews · 기준선 스팟체크(질의 × 반복) | 신규 | E 카테고리 0/4. Vercel 로그 드레인 → Supabase, GA4 채널그룹 정의. 답변엔진 UI 자동 조회는 약관 위반이라 소유 신호만 |
| 병원별 성과 리포트(인용·유입·상담 신청) 자동 생성 | 부분 | 리포트 빌더 있음. 측정 데이터가 없어 카드가 비어 있음 |
공급(병원)은 자동 온보딩 파이프라인, 수요(환자)는 AI·검색 인용, 그 사이를 승인 데이터가 잇는다.
+게이트: 병원 4곳 개설자 승인, 인용 기준선 확보
게이트: 유치업 등록증, PG 계약, 상담→예약 전환 데이터
게이트: 제휴 계약, 3단계 수익 검증
(1) 뷰성형외과 앵커 계약 조건(무상 온보딩·소개·자문 대가로 소액 지분 또는 수수료). 소개 목표 수치, 성과 연동 여부, 소개 병원의 AIO2O 직접 계약 원칙, 노출 우대 배제를 함께 정한다(§04). (2) 유치업 등록을 AIO2O 법인으로 할지, 등록된 유치업자와 제휴할지. (3) 수익 순서: 병원 구독이 먼저인지 예약 수수료가 먼저인지. 이 셋이 정해지면 나머지는 지금 파이프라인 위에 붙는 개발이다.
답변엔진 UI 자동 조회는 약관 위반이라 주력 지표는 소유 신호다. 효과는 반복 측정과 신뢰구간으로만 보고한다.
+| 축 | 지표 | 소스 | 1단계 목표 |
|---|---|---|---|
| 공급 | 온보딩 병원 수, 언어별 발행 글 수, 개설자 승인 글 비율, 게이트 오류율, 편당 생성 비용 | supporter_builds·inputs, 생성기 리포트 | 병원 4곳 · 승인 60% 이상 |
| 인용(AEO/GEO) | 외국인 질문 뱅크 인용률(언어별, 5회 반복), 병원 AEO/GEO 점수 변화, AI 크롤러 히트(IP 검증) | QB 러너, 채점기, 서버 로그 | 기준선 확보, 크롤러 히트 발생 |
| 유입 | AI 유입 세션(GA4 채널그룹), 검색 유입, 언어별 체류 | GA4·GSC | 월 AI 유입 세션 측정 시작 |
| 전환 | 상담 신청 수, 병원 응답률·응답 시간, (2단계) 예약 확정·결제 | inquiries·bookings | 상담 신청 월 10건 |
| 신뢰 | 정정 접수·처리 시간, 게이트 차단 건수, 확인 대기 항목 해소율 | corrections, 게이트 로그 | 정정 72시간 내 처리 |