o2o-infinith-demo/docs/business/build_mou_hub_competition_docx.py
Haewon Kam 98a3e41837 chore(docs): 빌더 설명문 표현 정리
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-16 09:47:01 +09:00

470 lines
44 KiB
Python
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#!/usr/bin/env python3
"""뷰성형외과 MOU·POC 범위 검토 + 의료관광 허브 플랫폼 경쟁분석(상세) 워드 보고서 빌더.
원본 초안: 같은 폴더 INFINITH_뷰성형외과_MOU_POC범위_검토보고서_2026-09-15.md
AI 답변 인용 집계(4-6): scripts/out/qb_*_results.jsonl(국문 120, 2026-09-01),
docs/reports/viewclinic/05_global_en/qb_en_*_results.jsonl(영문 60, 2026-09-10)
python3 docs/business/build_mou_hub_competition_docx.py [--force]
주의: 2026-09-15 이후 haewon이 이 문서를 직접 편집했다. 이 빌더로 다시 만들면 편집이 사라지므로
결과 파일이 있으면 멈춘다. 이후 변경은 patch_*.py 처럼 편집본에 직접 삽입한다.
"""
import sys
from pathlib import Path
HERE = Path(__file__).resolve().parent
sys.path.insert(0, str(HERE.parent / "reports" / "answer_engines"))
from build_engine_review_docx import Document, Cm, Pt, INDIGO, VIOLET, GRAY, bullets, heading, para, set_font, table # noqa: E402
OUT = HERE / "INFINITH_의료관광허브_경쟁분석_및_뷰성형외과_MOU범위_2026-09-15.docx"
def h3(doc, text):
heading(doc, text, 2)
def note(doc, text):
para(doc, text, 10, False, GRAY)
def profile(doc, title, rows, implication):
h3(doc, title)
table(doc, ["항목", "내용"], rows, widths=[3.4, 13.6], size=9.5)
p = doc.add_paragraph()
p.paragraph_format.space_after = Pt(10)
p.paragraph_format.line_spacing = 1.35
set_font(p.add_run("허브 관점: "), 10.5, True)
set_font(p.add_run(implication), 10.5)
def build():
doc = Document()
sec = doc.sections[0]
sec.page_width, sec.page_height = Cm(21.0), Cm(29.7)
sec.left_margin = sec.right_margin = Cm(2.0)
sec.top_margin = sec.bottom_margin = Cm(2.0)
# 표지
para(doc, "INFINITH AI Discovery · 대표 보고", 11, True, VIOLET, 4)
heading(doc, "의료관광 허브 플랫폼 경쟁분석과 뷰성형외과 MOU 범위 검토", 0)
para(doc, "회의록 검토 · Global Medical Hub PRD v0.2 검토 · 경쟁분석(상세) · 조직 적합성 · MOU·POC 권고안", 12, False, INDIGO, 4)
para(doc, "작성 2026-09-15(화) · 조사 기준일 2026-09-15 · 법 해석은 자문이 아니며 계약·등록 전 변호사 확인이 필요합니다", 10, False, GRAY, 14)
# 0. 결론
heading(doc, "0. 결론")
bullets(doc, [
("이번 MOU·POC 범위는 서포터즈 사이트와 AEO/GEO 진단·측정까지로 한정할 것을 권고합니다. ", "글로벌 의료관광 플랫폼(다병원 허브, 상담·예약 중개, 숙박·관광 연계)은 이번 범위에서 명시적으로 제외합니다."),
("플랫폼 사업은 현재 조직(개발팀장 1명, 주니어 개발자 5명, 운영팀 없음)으로 가능하지 않다고 판단합니다. ", "병목은 개발이 아니라 운영, 수요 확보, 자본·규제 대응입니다. 강남언니는 2025년 광고선전비 343억 원을 썼고, 오프라인 통역센터와 8개 언어 통역을 운영합니다."),
("허브가 노리는 'AI가 인용하는 다국어 원문' 영역에는 이미 경쟁자가 있습니다. ", "외국인 질문 60문항 실측에서 Perplexity는 Bookimed(28문항), ClinicsOnCall(26), Korea Clinic Guide(20), ClinicSeoul(17), 강남언니 영문(14)을 인용했습니다. 광고 없는 영문 가이드 사이트가 120개 FAQ 형태로 운영 중입니다."),
("PRD v0.2의 '기존 앱은 정보를 앱 안에 가둔다'는 전제는 일부만 맞습니다. ", "크리에이트립·여신티켓은 AI 크롤러 허용, llms.txt, 다국어 블로그를 운영합니다. 강남언니도 AI 검색봇을 허용하고 후기만 막습니다."),
("MOU의 목적은 사례 확보와 홍보입니다. ", "무상 POC라면 제공 범위, 뷰성형외과가 제공할 것, 종료일을 문서로 고정해야 합니다. 대표 결정 안건 8건은 8장에 있습니다."),
])
# 1. 회의록 검토
heading(doc, "1. 회의록 검토 (2026-09-15)")
h3(doc, "1-1. 확인된 사항")
table(doc, ["구분", "내용", "담당"], [
["뷰성형외과 내부 진행", "실무진이 원장 보고를 마쳤고 진행 결정이 났습니다", "뷰성형외과"],
["진행 순서", "MOU → 홍보 기사 → 프로젝트 런칭", "양사"],
["순서 이견", "대표는 MOU 우선. 뷰성형외과는 범위를 구체화한 뒤 MOU", "황본부장 조율"],
["뷰성형외과 쪽 방향", "보고 이후 원장 쪽 방향(B2C 의료관광 포털)이 무게를 가짐", ""],
["감본부장 입장", "비용 없는 플랫폼 POC면 미팅 불참, 문서로 범위 선정리. 유료 논의면 참석", "감본부장"],
["범위 문서", "향후 1~2개월 할 일을 구체화해 대표 보고 후 뷰성형외과와 협의", "감본부장"],
["황본부장 입장", "서포터즈는 기본 범위. 메디컬·버티컬 포털은 미결정. 1단계에서 큰 그림은 불필요", "황본부장"],
["배포 현황", "webforai.kr 랜딩과 서포터즈 3곳 배포, 구글·네이버 서치콘솔 등록, 색인 보류", "감본부장"],
["자동화 수준", "뷰성형외과 품질을 100으로 보면 URL만으로 다른 병원은 60~70%", "감본부장, 9/18 연구소 회의 시연"],
], widths=[3.4, 10.4, 3.2])
h3(doc, "1-2. 문서에 옮기기 전에 바로잡을 발언")
table(doc, ["회의 발언", "확인 결과", "문서에 쓸 표현"], [
["답변엔진을 추가하면 한 번에 몇천 원이 몇만 원 단위로 오른다",
"비용 방향은 맞습니다. 다만 Gemini 검색 그라운딩 약관은 결과의 분석·자동 수집을 금지하고, Google AI Overview는 공식 API가 없습니다. 비용만의 문제가 아닙니다",
"현재 2개 엔진. Claude는 추가 가능, Gemini·AI Overview는 약관·수집 원칙 확인이 먼저"],
["의료관광법상 기관 검증을 거치지 않은 실물 인물 콘텐츠를 배포하지 못해 색인을 안 했다",
"해당 조문을 확인하지 못했습니다. 9/14 사유 보고 기준 보류 사유는 병원 승인 글 0편과 지원 관계 고지 문구 미확정입니다. 법률 확인은 사전심의·유치업 2건입니다",
"병원 승인 글 0편, 고지 문구 미확정. 법률 확인 2건"],
["강남언니·바비톡은 사용자 600만~천만, 병원 3천~5천 곳",
"강남언니 해외 누적회원 148만·해외 MAU 23만(2025-09), 일본 제휴병원 1,500곳(2025-10). 바비톡 병원 3,300곳은 1차 출처 미확인",
"4장 확인 수치"],
], widths=[4.6, 7.6, 4.8], size=9)
table(doc, ["답변엔진 구성 (120문항, 후처리 포함, 중앙값)", "1회 측정", "5회 반복"], [
["현행 2개 (ChatGPT, Perplexity)", "약 ₩11,440", "약 ₩57,200"],
["+ Claude", "약 ₩29,150", "약 ₩145,740"],
["+ Claude, Gemini, Google AI Mode", "약 ₩35,790", "약 ₩178,950"],
], widths=[9.0, 4.0, 4.0])
note(doc, "회의록 음성 인식 표기: 비성형외과·비서약과 → 뷰성형외과, 김수원 원장 → 최순우 원장(대표자), 데미나이 → Gemini, AOG·AO → AEO·GEO, 인류관광 → 의료관광, 웹 포 AI → webforai.kr. '메트코'는 확인 필요.")
# 2. PRD 검토
heading(doc, "2. Global Medical Hub PRD v0.2 검토")
h3(doc, "2-1. PRD가 제안한 것")
bullets(doc, [
"3층 구조: 1층 정보·발견(다국어 병원 원문 허브), 2층 상담·예약(유치업 등록 후), 3층 회복기 여정(숙박·식사·관광 제휴 링크)",
"구조: AIO2O 단독 소유, 뷰성형외과는 앵커 파트너(첫 병원, 병원 2~4곳 소개, 의료 자문)",
"1단계(8~12주) 게이트: 병원 4곳 개설자 승인, 외국인 질문 뱅크 인용 기준선, 상담 신청 월 10건",
], size=10.5)
h3(doc, "2-2. 지금도 유효한 판단")
bullets(doc, [
"파이프라인 IP는 AIO2O 100%. 병원 자회사·합작법인 구조는 중립성과 IP에서 불리",
"1단계는 수수료 없이 병원 직결. 대가를 받으면 유치업 등록 대상",
"후기·전후 사진·비교·할인으로 설득하는 기능은 만들지 않음(의료법 56조)",
], size=10.5)
h3(doc, "2-3. 공백과 보완")
table(doc, ["공백", "내용", "보완"], [
["운영 인력 가정 없음", "비개발자 운영자를 전제했으나 운영팀이 없습니다. 게이트 실패·이미지 육안·채널 판정·정정·병원 응대·상담 전달은 사람 업무입니다", "운영 인원을 선행 조건으로"],
["수요 확보 계획 없음", "AI 인용만으로 유입을 기대합니다. 경쟁 앱은 광고비·오프라인 센터로 수요를 확보합니다", "유입 채널·예산 추정"],
["경쟁 전제 일부 오류", "앱들이 정보를 가둔다고 봤지만 크리에이트립·여신티켓·BeautsGO는 오픈웹·AI 대응을 합니다. 영문 가이드 사이트가 이미 AI 인용을 받습니다(4-6)", "차별점 재정의(4-7)"],
["1단계 개발량", "§06 기준 신규 7건(외국인 질문 뱅크, 외국어 게이트, 다국어 라우팅·상담 폼, 다병원 허브 도메인, 계정·권한, 상담 알림, 측정 인프라)과 부분 2건(운영 콘솔, 상시 워커)", "현재 인력으로 8~12주는 낙관적"],
["규제 변경 미반영", "2026-05-15 시행규칙 개정으로 여행업자 자본금 5천만 원 예외 삭제. 유치업은 자본금·보증보험 각 1억 원. 등록 후 2년 무실적이면 취소 사유. 2026-05-12부터 병원이 유치 경로 보고", "§05 갱신"],
["민감정보 리스크", "2026-09-04~05 강남언니 22만 명(해외 약 6만 명) 민감정보 유출. 상담 폼만 받아도 건강정보 처리자가 됩니다", "최소 수집, 보안 체계 선행"],
["앵커 소개 역량 미확인", "원장의 병원 네트워크 명단·수·관계 단계 미확인", "MOU 전 확인 질문"],
["브랜드 리스크", "앵커 병원의 2026-07 공정위 시정명령 이력", "홍보 기사 문안 관리"],
], widths=[3.2, 9.8, 4.0], size=9)
# 3. 시장
heading(doc, "3. 시장 개요")
table(doc, ["항목", "수치", "출처"], [
["외국인 환자", "2024년 117만 명 → 2025년 201만 명(연환자 272만 명)", "보건복지부 2025-04, 2026-04"],
["2025 진료과", "피부과 62.9%(131.3만 명), 성형외과 11.2%(23.3만 명), 내과 9.2%", "보건복지부 2026-04"],
["2025 국적", "중국 30.8%, 일본 29.8%, 대만 9.2%, 미국 8.6%, 태국 약 2.9%", "보건복지부 2026-04"],
["의원급·서울 비중", "의원급 87.7%, 서울 87.2%", "보건복지부 2026-04"],
["2026 상반기 외국인 카드 결제", "1조4,203억 원(전년 대비 +38.6%), 피부과 7,685억 원", "하나카드 데이터 2026-08-27"],
["정부 목표", "2027년 70만 명(2023 발표), 2024년 조기 달성. 새 목표 미확인", "보건복지부 2023-05-29"],
["미용성형 부가세 환급", "2025-12-31 종료. 재도입 법안 국회 소위(2026-07-29). 성형외과의사회는 종료 후 20~30% 감소 주장(통계 아님)", "2025-07-31, 2026-08-14"],
], widths=[3.6, 9.4, 4.0], size=9.5)
note(doc, "시장은 커지고 있으나 성장의 중심은 피부과입니다. 성형외과 비중은 11%이고, 부가세 환급 종료의 영향은 공식 통계로 아직 확인되지 않았습니다.")
# 4. 경쟁분석
heading(doc, "4. 경쟁분석 (상세)")
h3(doc, "4-1. 경쟁 구도")
table(doc, ["유형", "사업자", "핵심 자산", "허브(PRD 1층)와 겹치는 부분"], [
["국내 미용의료 앱의 해외 확장", "강남언니, 바비톡, 여신티켓", "병원 수천 곳 제휴, 후기·가격 데이터, 광고 매출", "다국어 병원 정보, 상담·예약"],
["외국인 여행·뷰티 예약 플랫폼", "크리에이트립, BeautsGO, Klook", "외국인 사용자, 숙박·관광 결합, 유치업 등록(크리에이트립)", "상담·예약, 회복기 여정"],
["해외 의료관광 중개 사이트", "Bookimed, ClinicsOnCall, PlacidWay", "다국가 병원 비교, 무료 코디네이터, 병원 수수료", "영문 병원 정보, AI 인용"],
["영문 한국 클리닉 가이드 사이트", "Korea Clinic Guide, ClinicSeoul, 개별 가이드 사이트 다수", "영문 원문·FAQ·가격 정보, 저비용 운영", "AI가 인용하는 다국어 원문. 허브의 핵심 가치와 직접 겹침"],
["공공 포털", "메디컬코리아(KHIDI), 강남구 의료관광, 한국관광공사 영문", "공신력, 유치기관 조회, 무료", "병원 목록·안내"],
["커뮤니티·후기", "Reddit, RealSelf", "실사용자 경험담. AI 답변의 주요 근거", "외국인 질문 답변(후기는 의료법상 허브가 만들 수 없음)"],
], widths=[3.4, 3.8, 4.8, 5.0], size=9)
h3(doc, "4-2. 사업자별 프로필")
profile(doc, "① 강남언니 (힐링페이퍼)", [
["해외 출시", "일본 2019-11, 영어(UNNI) 2023-12, 태국 2024 말, 중국·대만 2025-10-15. 한·영·일·태·중(간체·번체) 6개 언어"],
["규모", "해외 누적회원 148만, 해외 MAU 23만, 월 상담 약 1.3만 건(2025-09). 일본 사용자 160만·제휴병원 1,500곳(2025-10). 일본 앱 예약 연 약 55만 건(2026-08). 73개국 이용"],
["성장", "태국 7개월 만에 예약자 10배(2025-06). 2026-07 기준 전년 대비 태국 13배, 중국 12배"],
["오프라인·통역", "2026-03 논현동 언니가이드 센터 개소. 2026-05 오프라인 통역(8개 언어, 환자 무료). LINE·WeChat·WhatsApp 상담. 5개월 통역 1,600건"],
["수익 모델", "이벤트 페이지 조회당 과금(CPV). 상담·내원과 무관하게 과금. 성과형 광고 상품 병행. 입점 병원에 유치의료기관 등록 요구"],
["실적", "매출 2023 417억 / 2024 530억 / 2025 752억. 영업이익 122억 / 128억 / 75억(2025년 -41.3%). 2025 광고선전비 343억(+100.6%), 일본법인 순손실 46억"],
["규제 이력", "진료비 비율 수수료 모델로 의료법 27조 3항 위반 1심(2022-01)·2심(2023-07) 징역 8월·집행유예 2년. 이후 광고형 전환. 2026-09-04~05 민감정보 219,665명 유출(해외 약 6만 명)"],
["AI·오픈웹", "AI 검색봇(OAI-SearchBot·PerplexityBot·Claude-SearchBot) 허용, 후기(/reviews) 차단, 학습 크롤러 차단. hreflang 6개 언어. 영문 unni.app/us, US 병원 사이트맵 20건. llms.txt 없음"],
], "외국인 수요와 병원 공급을 이미 확보한 선두 사업자입니다. 허브가 정보 허브로 경쟁하면 병원 수·후기·통역에서 비교가 되지 않습니다. 다만 영업이익이 줄고 개인정보 사고가 난 시점이라 병원들의 대안 채널 수요는 있을 수 있습니다.")
profile(doc, "② 바비톡 (케어랩스 계열)", [
["해외 출시", "일본어 웹 2025-08-25. 영어·중국어 이벤트는 CPV 무과금 시범. 중국·대만·영미권은 계획 단계"],
["병원 입점", "유치의료기관 등록 필수. 이벤트 등록 시 구글 예약 자동 연동"],
["실적", "2025 매출 367.7억, 영업이익 73억(재무정보 사이트, 게시일 미확인)"],
["미확인", "병원 3,300곳·1,000만 다운로드(채용 플랫폼 소개문만 있음), 해외 사용자 수, 유치업 등록"],
["AI·오픈웹", "robots.txt 전체 허용, /ja 사이트맵. /en 주소가 일본어를 보여줌. llms.txt 없음"],
], "해외 확장 초기이며 일본 중심입니다. 구글 예약 연동처럼 외부 표면으로 나가는 방향이라, 영문·다국어 원문 영역에 들어올 가능성이 있습니다.")
profile(doc, "③ 크리에이트립 (Creatrip)", [
["포지션", "외국인 한국 여행 앱. 뷰티·의료 예약, 숙소 예약, 통역 버디(14일)"],
["규모", "누적가입 94만(80개국, 2024-11), MAU 160만, 제휴 약 1,200곳, 12개 언어(사이트 15개 로케일)"],
["거래", "2025 거래 +40%, 뷰티·메디컬 +71%로 거래의 51%. 대만은 의료 비중 49%"],
["투자", "시리즈B까지 누적 181억 원 이상. 마이리얼트립 30억(2024-08)"],
["규제", "외국인환자 유치업 등록번호 A-2019-01-01-3686(자사 공지)"],
["AI·오픈웹", "전체 허용, llms.txt 공개, 'Best Seoul Skin Clinics 2026' 등 영문 블로그"],
], "PRD의 2층(상담·예약)과 3층(여정)을 이미 합법 구조로 운영하는 사업자입니다. 허브가 2~3층으로 가면 정면 경쟁이고, 반대로 상담·예약을 위탁할 제휴 후보이기도 합니다.")
profile(doc, "④ 여신티켓 (YeoTi)", [
["해외 출시", "2024-01 영·일·중 글로벌 앱"],
["규모", "글로벌 MAU 4만 이상, 2025 상반기 +173.4%. 국내 병원 약 5,000곳"],
["차별 기능", "부작용 보험(1건당 최대 100만 원), 앱 구매"],
["AI·오픈웹", "GPTBot·ClaudeBot·PerplexityBot 개별 허용(결제 경로만 차단, 2026-08-12 갱신). 영문 llms.txt, 영·일·중 블로그"],
], "국내 병원 수가 크고 AI 크롤러 대응을 명시적으로 하는 사업자입니다. '앱은 AI에 닿지 않는다'는 전제를 쓸 수 없는 근거입니다.")
profile(doc, "⑤ BeautsGO", [
["포지션", "외국인 대상 한국 뷰티·클리닉 예약. 5개 언어, 숙박 지원"],
["규모", "제휴 클리닉 1,300곳 이상. 운영사·투자 미확인"],
["AI 대응", "AI 에이전트용 예약 스킬을 GitHub(2026-03-31)·Smithery·ModelScope에 배포"],
], "AI 답변엔진을 넘어 AI 에이전트가 직접 예약하는 경로까지 준비하고 있습니다. 허브가 '인용'만 목표로 하면 한 단계 뒤처집니다.")
profile(doc, "⑥ 해외 의료관광 중개 사이트: Bookimed · ClinicsOnCall · PlacidWay", [
["Bookimed", "우크라이나 기반 다국가 의료관광 마켓플레이스. 환자 무료, 병원이 수수료(요율 비공개). 연간 거래액 2,210만 달러, 문의 17만 건(자사 보고서). 영문 한국 병원 페이지 운영"],
["ClinicsOnCall", "영국(글래스고) 소재. 환자 무료 코디네이션, 프리미엄 옵션 $20·$50. 통역·픽업·숙박·비자·24시간 코디네이터. 러시아어 중심 6개 언어. 한국 클리닉 수 미확인"],
["PlacidWay", "해외 의료관광 중개 사이트. 운영 주체·한국 병원 수는 이번 조사에서 미확인(사이트 응답 시간 초과)"],
["AI 인용 실측", "영문 60문항 Perplexity 답변에서 Bookimed 28문항, ClinicsOnCall 26문항, PlacidWay 14문항 인용(2026-09-10)"],
], "외국인이 영어로 물을 때 AI가 실제로 가져다 쓰는 출처입니다. 허브의 'AI 인용' 목표는 이 사이트들과 경쟁합니다. 이들은 다국가·다언어 코디네이터 조직을 이미 갖고 있습니다.")
profile(doc, "⑦ 영문 한국 클리닉 가이드 사이트: Korea Clinic Guide · ClinicSeoul", [
["Korea Clinic Guide", "한국 클리닉 537곳 이상 목록, 20개 이상 진료 분야, 블로그·후기·영상·여행 계획 가이드. 병원 노출 광고형으로 보임. 운영 주체 미확인"],
["ClinicSeoul", "RiskIntel Corp 운영 독립 가이드. '클리닉 후원 0, 유료 순위 0'을 표방. 35개 이상 심층 가이드, 120개 FAQ, 검증 가격 정보"],
["AI 인용 실측", "영문 60문항 Perplexity 답변에서 Korea Clinic Guide 20문항, ClinicSeoul 17문항 인용. ChatGPT에서도 ClinicSeoul 4문항"],
], "PRD 1층이 만들려는 것(중립, 원문, FAQ, 비교·순위 없음)과 가장 가까운 형태가 소규모 영문 사이트로 이미 운영되고 있고, AI 인용도 받고 있습니다. 허브의 차별점은 '병원 승인 원문''실측 측정'만 남습니다.")
profile(doc, "⑧ 공공 포털과 여행 OTA", [
["메디컬코리아(KHIDI)", "유치기관 등록 조회 시스템, 영문·일문 사이트. 공신력"],
["강남구 의료관광", "medicaltour.gangnam.go.kr. 국문 120문항 Perplexity 답변 14문항, ChatGPT 3문항에서 인용"],
["한국관광공사 영문", "english.visitkorea.or.kr. 영문 60문항 Perplexity 12문항, ChatGPT 5문항 인용"],
["Klook", "강남언니(UNNI) 연계 한국 뷰티·스킨케어 클리닉 예약 상품(페이지 접속 불가로 검색 결과만 확인)"],
], "공공 포털은 무료이고 공신력이 있어 AI가 인용합니다. 허브가 공공 데이터와 같은 목록형 정보를 만들면 차별점이 없습니다.")
h3(doc, "4-3. 기능 비교")
table(doc, ["기능", "강남언니", "바비톡 JP", "크리에이트립", "여신티켓", "BeautsGO", "해외 중개", "영문 가이드", "INFINITH 허브 1단계"], [
["다국어 병원 정보", "O(6)", "O(일)", "O(12)", "O(3)", "O(5)", "O", "O(영)", "O(영·일·중 계획)"],
["후기", "O", "O", "O", "O", "O", "O", "O", "X(의료법)"],
["가격 공개", "이벤트가", "O", "O", "O", "가격표", "견적", "O", "비용 항목만"],
["상담·예약", "O", "O", "O", "O", "O", "O", "X", "상담 신청 병원 직결"],
["통역", "O(동행)", "병원별", "O(버디)", "미확인", "미확인", "O", "X", "X"],
["숙박·여정", "미확인", "미확인", "O", "미확인", "O", "O", "안내", "제휴 링크(3단계)"],
["결제", "O", "미확인", "O", "O", "미확인", "미확인", "X", "X(2단계)"],
["병원 승인 원문", "X", "X", "X", "X", "X", "X", "X", "O"],
["AI 인용 실측·리포트", "X", "X", "X", "X", "X", "X", "X", "O"],
], widths=[2.6, 1.6, 1.6, 1.8, 1.6, 1.6, 1.6, 1.6, 2.4], size=8)
note(doc, "O: 제공 확인, X: 제공하지 않음 또는 해당 없음, 미확인: 공개 자료로 확인 못 함. 병원 승인 원문과 AI 인용 실측은 공개 자료에서 다른 사업자의 제공 사실을 찾지 못한 항목입니다.")
h3(doc, "4-4. 수익 모델과 규제 대응")
table(doc, ["사업자", "수익 모델", "유치업 등록", "규제 리스크"], [
["강남언니", "CPV 광고, 성과형 광고", "입점 병원에 유치의료기관 등록 요구. 자사 등록 미확인", "과거 수수료 모델 유죄, 민감정보 유출"],
["바비톡", "CPV 광고(해외 일부 무과금 시범)", "입점 병원에 유치의료기관 등록 요구", "공개 사례 미확인"],
["크리에이트립", "예약 거래(수수료 구조 미공개)", "등록(A-2019-01-01-3686)", "공개 사례 미확인"],
["여신티켓", "시술권 판매·광고", "미확인", "공개 사례 미확인"],
["Bookimed", "병원 수수료", "해외 법인. 한국 등록 미확인", "한국 병원 알선 시 등록 여부가 쟁점이 될 수 있음"],
["영문 가이드 사이트", "광고 또는 무광고(운영 주체별)", "해당 없음(중개 안 함)", "낮음"],
["INFINITH 허브(PRD)", "1단계 무수수료, 2단계 병원 구독·예약 수수료", "2단계 전 등록 필요(자본금·보증보험 각 1억 원)", "1단계는 낮음, 2단계부터 알선·광고·민감정보"],
], widths=[3.0, 4.6, 4.8, 4.6], size=9)
table(doc, ["규제 요건", "내용 (변호사 확인 필요)"], [
["유치업 등록", "의료해외진출법 제6조, 시행규칙 제4조: 자본금 1억 원, 보증보험 1억 원, 국내 사무소, 3년 갱신. 2년 무실적이면 등록취소 사유(제24조)"],
["미등록 유치", "3년 이하 징역 또는 3천만 원 이하 벌금(제28조). 2026-06 미등록 업자 경유 유치 병원의 등록취소가 법원에서 유지됨"],
["수수료 상한", "의원 30%, 병원·종합병원 20%, 상급종합병원 15%(보건복지부 고시)"],
["환자 알선 금지", "의료법 제27조 제3항. 건강보험 미가입 외국인 유치는 예외 허용, 국내 거주 외국인은 제외"],
["외국인 유치 광고", "의료법 제56조 제2항 제12호, 의료해외진출법 제15조: 국내 광고는 공항·보세판매장 등 지정 장소만. 온라인 다국어 매체 적용 여부는 미확인"],
["사전심의 매체", "의료법 제57조, 시행령 제24조: 일평균 이용자 10만 명 이상 인터넷매체"],
["개인정보", "개인정보보호법 제23조(민감정보 별도 동의), 제28조의8(국외 이전)"],
["여행업", "관광진흥법 시행령: 종합여행업 자본금 5천만 원, 국내외여행업 3천만 원"],
], widths=[3.4, 13.6], size=9)
h3(doc, "4-5. AI 답변엔진·오픈웹 대응 (2026-09-15 직접 조회)")
table(doc, ["사업자", "AI 크롤러", "llms.txt", "다국어 오픈웹 콘텐츠"], [
["강남언니", "검색봇 허용, 후기 차단, 학습봇 차단", "없음", "hreflang 6개 언어, 영문 병원 사이트맵 20건"],
["바비톡", "전체 허용", "없음", "일본어 사이트맵"],
["크리에이트립", "전체 허용", "있음", "15개 로케일, 영문 클리닉 블로그"],
["여신티켓", "GPTBot·ClaudeBot·PerplexityBot 개별 허용", "있음(영문)", "영·일·중 블로그"],
["BeautsGO", "미확인", "미확인", "5개 언어 사이트맵, AI 에이전트 예약 스킬"],
], widths=[3.0, 5.4, 2.6, 6.0], size=9)
h3(doc, "4-6. 실측: AI 답변은 어떤 출처를 인용했나")
para(doc, "INFINITH가 뷰성형외과 진단에서 수집한 공식 API 답변의 인용 URL을 도메인별로 집계했습니다. 수치는 해당 도메인을 1회 이상 인용한 답변 수입니다. 1회 측정이며 소비자 앱 화면과 다를 수 있습니다.", 10.5)
table(doc, ["출처", "국문 120문항 ChatGPT", "국문 120문항 Perplexity"], [
["네이버 블로그", "0", "81"],
["강남언니", "4", "45"],
["하이닥", "0", "28"],
["캐시닥", "3", "27"],
["병원 공식(뷰)", "6", "27"],
["강남구 의료관광", "3", "14"],
["바비톡", "3", "7"],
["여신티켓", "0", "3"],
["인용 URL이 있는 답변 수", "43", "120"],
], widths=[7.0, 5.0, 5.0], size=9.5)
note(doc, "국문 측정 2026-09-01. Perplexity는 robots.txt로 AI 크롤러를 막는 네이버 블로그를 81개 답변에서 인용했습니다. 네이버 자산의 기여도를 0으로 본 기존 판단은 Perplexity에 한해 수정이 필요합니다.")
table(doc, ["출처", "영문 60문항 ChatGPT", "영문 60문항 Perplexity", "유형"], [
["병원 공식(뷰 영문)", "18", "38", "병원"],
["Reddit", "16", "33", "커뮤니티"],
["Bookimed", "4", "28", "해외 중개"],
["ClinicsOnCall", "0", "26", "해외 중개"],
["Korea Clinic Guide", "0", "20", "영문 가이드"],
["ClinicSeoul", "4", "17", "영문 가이드"],
["강남언니(unni.app)", "0", "14", "국내 앱"],
["PlacidWay", "0", "14", "해외 중개"],
["한국관광공사 영문", "5", "12", "공공"],
["RealSelf", "5", "11", "커뮤니티"],
["크리에이트립", "0", "0", "여행 플랫폼"],
["바비톡", "0", "0", "국내 앱"],
], widths=[5.0, 3.6, 3.8, 4.6], size=9.5)
note(doc, "영문 측정 2026-09-10, 미국 뉴욕 위치 기준. 인용 URL 수 ChatGPT 448개, Perplexity 2,316개.")
bullets(doc, [
("국내 질문에서는 강남언니와 네이버 블로그가 인용을 가져갑니다. ", "허브가 국문으로 들어갈 여지는 작습니다."),
("외국인 질문에서는 국내 앱보다 해외 중개 사이트와 영문 가이드 사이트가 인용됩니다. ", "크리에이트립·바비톡은 0건이었습니다. 이 영역은 대형 앱이 비어 있지만, 소규모 영문 사이트가 이미 채우고 있습니다."),
("병원 공식 영문 사이트가 가장 많이 인용됩니다. ", "병원 사이트를 강화하는 서포터즈·AEO 작업이 허브를 만드는 것보다 인용에 직접 연결됩니다."),
], size=10.5)
h3(doc, "4-7. INFINITH 허브 차별점 검증")
table(doc, ["PRD의 차별점", "경쟁 현실", "평가"], [
["AI가 인용할 다국어 원문이 오픈웹에 없다", "영문 가이드·해외 중개 사이트가 이미 인용받고 있습니다(4-6)", "약함"],
["기존 앱은 정보를 앱 안에 가둔다", "크리에이트립·여신티켓은 llms.txt·블로그, 강남언니는 AI 검색봇 허용", "일부만 유효"],
["자동 온보딩(병원당 30분, $0.6)", "경쟁사는 병원이 직접 입력하거나 영업이 입력. 우리 자동화 품질은 60~70% 구간 존재", "유효하나 품질 보완 필요"],
["병원 승인 원문(의학 검토·게시 승인 기록)", "공개 자료에서 같은 체계를 찾지 못함", "유효"],
["AEO/GEO 실측 진단과 인용 측정 리포트", "플랫폼들은 제공하지 않음. GEO 대행사는 제공(항목·방법 비공개가 많음)", "유효"],
["중립(비교·순위 없음)", "ClinicSeoul이 '후원 0, 유료 순위 0'을 표방", "약함"],
["회복 일정·주변 안내 여정", "크리에이트립·BeautsGO·해외 중개가 숙박·통역까지 제공", "약함(정보 수준)"],
], widths=[5.0, 8.4, 3.6], size=9)
note(doc, "유효한 차별점 두 가지(병원 승인 원문, 실측 측정)는 플랫폼 없이 서포터즈 사이트와 진단 제품으로도 제공할 수 있습니다.")
h3(doc, "4-8. 진입 장벽")
table(doc, ["장벽", "선두 사업자 수준", "INFINITH 현재"], [
["병원 공급", "수천 곳 제휴(강남언니 일본 1,500곳, 여신티켓 국내 5,000곳)", "서포터즈 3곳, 승인 0편"],
["외국인 수요", "해외 MAU 23만(강남언니), MAU 160만(크리에이트립)", "0. AI 인용 기준선만 있음"],
["마케팅 자본", "광고선전비 343억(강남언니 2025), 누적 투자 181억 원 이상(크리에이트립)", "미편성"],
["운영 조직", "오프라인 센터, 8개 언어 통역, 24시간 다국어 상담", "운영팀 없음"],
["규제 자격", "유치업 등록(크리에이트립), 입점 병원 유치기관 등록 요구", "미등록, 자본금·보증보험 2억 원 필요"],
["데이터·보안", "민감정보 처리 체계(그래도 유출 사고 발생)", "상담 데이터 없음, 체계 없음"],
], widths=[3.2, 8.0, 5.8], size=9)
h3(doc, "4-9. 시사점")
bullets(doc, [
"플랫폼 경쟁의 승부는 병원 수, 외국인 사용자 수, 통역·예약 운영입니다. 이 셋에서 INFINITH는 출발점이 0입니다.",
"INFINITH가 유효하게 가진 것은 병원 승인 원문 체계와 AI 인용 실측입니다. 이 둘은 병원 단위 B2B 제품으로 파는 편이 수요와 맞습니다.",
"외국인 AI 답변에서 병원 공식 영문 사이트가 가장 많이 인용되므로, 병원별 서포터즈·영문 AEO 개선이 허브보다 효과 경로가 짧습니다.",
"상담·예약이 필요해지면 직접 등록하지 말고, 유치업 등록 사업자(예: 크리에이트립)와 제휴하는 구조를 먼저 검토합니다.",
], size=10.5)
# 5. 조직 적합성
heading(doc, "5. 현재 조직으로 가능한 사업인가")
table(doc, ["역량", "플랫폼에 필요한 수준", "현재", "판정"], [
["병원 원문 생성·발행", "병원당 자동 온보딩, 다국어", "서포터즈 워커 동작, URL만으로 60~70% 품질, 승인 0편", "보유(개선 필요)"],
["다병원 허브 개발", "계정·권한, 허브 도메인, 다국어 라우팅, 상담 폼, 운영 콘솔", "팀장 1명·주니어 5명, 기존 제품 병행", "1층만 가능, 기간 연장"],
["운영", "병원 응대, 검수, 이미지 육안, 정정, 게이트 실패 처리", "운영팀 없음", "부족"],
["외국인 응대", "영·일·중 상담, 예약 조율, 통역, 분쟁", "없음", "불가"],
["수요 확보", "해외 광고, 현지 마케팅", "없음, AI 인용에만 의존", "불가"],
["병원 공급", "병원 영업 조직", "앵커 소개 의존, 명단 미확인", "부족"],
["규제·자본", "유치업 법인, 자본금·보증보험 2억 원, 2년 내 실적, 민감정보 보안", "없음", "2층 이상 불가"],
], widths=[3.0, 5.4, 5.6, 3.0], size=9)
bullets(doc, [
("2층(상담·예약)과 3층(여정)은 현재 조직으로 할 수 없습니다. ", "개발 인력이 아니라 응대·영업·자본·규제 조직이 없습니다."),
("1층(정보 허브)만은 기술적으로 가능합니다. ", "그러나 운영과 유입 없이는 서포터즈 사이트를 병원 수만큼 늘린 것과 결과가 비슷하고, 4-6에서 본 영문 가이드 사이트와 차별점이 약합니다."),
("기회비용이 큽니다. ", "같은 인력으로 AI Discovery 진단 판매, 서포터즈 자동화 품질 개선(60~70% 구간), 병원 승인 흐름, 측정 리포트 자동화를 할 수 있고, 이 일들은 유료 전환과 직접 이어집니다."),
], size=10.5)
h3(doc, "5-1. 플랫폼을 다시 검토할 조건 (제안)")
bullets(doc, [
"서포터즈 유료 계약 병원 10곳 이상",
"병원 승인 글 기준 외국인 질문 뱅크 인용률 개선을 2곳 이상에서 확인",
"운영 인력 2명 이상 확보(병원 응대·콘텐츠 검수)",
"유치업 등록 사업자와 상담·예약 위탁 제휴 구조 확인",
"앵커 소개 병원 명단의 계약 가능성 확인",
], size=10.5)
# 6. 권고 범위
heading(doc, "6. 권고 범위: MOU · POC (8주)")
h3(doc, "6-1. 포함")
table(doc, ["번호", "항목", "산출물", "비고"], [
["1", "뷰성형외과 서포터즈 사이트 운영(국문·영문)", "viewpl.webforai.kr: 글, 영상, 뉴스룸, 방문 안내, 회복 일정 플래너, 주변 안내", "배포 완료, 색인은 승인 후"],
["2", "병원 승인 흐름", "원장 의학 검토·개설자 게시 승인 기록, 지원 관계 고지 문구 확정", "색인 전환 조건"],
["3", "색인 전환", "승인 글만 공개 재배포, IndexNow·서치콘솔 제출", "법률 확인 2건 결과에 따름"],
["4", "AEO/GEO 기준선과 재측정", "국문 120·영문 60문항 × ChatGPT·Perplexity, 착수·4주·8주, 5회 반복", "언급률·신뢰구간으로만 보고"],
["5", "공식 홈페이지 개선 가이드", "9/1 POC 제안서 P0·P1(스키마, NAP, 정의문, FAQ) 적용 명세", "적용 주체는 8장 안건"],
["6", "측정 연결", "GA4 AI 유입 채널그룹, 서치콘솔, 가능 시 서버 로그", "병원 계정 권한 필요"],
["7", "결과 보고서와 사례", "8주 결과 보고서, 사례 요약 1쪽", "MOU 홍보·타 병원 영업"],
], widths=[1.2, 4.4, 7.6, 3.8], size=9)
h3(doc, "6-2. 제외 (MOU 문구에 명시)")
bullets(doc, [
"다병원 의료관광 포털, 병원 비교·목록 서비스",
"외국인 환자 상담·예약 중개, 통역, 픽업, 결제, 수수료",
"숙박·관광 상품 판매, 앱 개발",
"답변엔진 추가(Claude, Gemini, Google AI Overview). 유료 전환 시 옵션",
"공식 홈페이지 직접 개발·유지보수(8장 안건 4 결정에 따름)",
], size=10.5)
h3(doc, "6-3. 뷰성형외과가 제공할 것")
table(doc, ["항목", "이유"], [
["원장 의학 검토와 개설자 게시 승인(주기·담당자 지정)", "승인 없이는 색인을 열 수 없습니다"],
["지원 관계 고지 문구 확정", "추천·보증 심사지침"],
["홈페이지·영상·이미지 자산 사용 허락 범위", "저작권·의료광고 책임"],
["GA4·서치콘솔 권한", "측정 항목 4개가 계정 없이는 미검증"],
["사례 공개와 홍보 기사 사용 동의(병원명, 수치 공개 범위)", "MOU의 목적"],
["(선택) 소개 가능한 병원 명단", "향후 확장 검토용, 이번 범위의 의무 아님"],
], widths=[8.5, 8.5], size=9.5)
h3(doc, "6-4. 비용")
bullets(doc, [
("직접 비용은 작습니다. ", "측정 3회 × 5회 반복 기준 약 17만 원(현행 2개 엔진)입니다. 사이트 호스팅·빌드 비용은 병원당 소액입니다."),
("실제 비용은 인력 시간입니다. ", "병원 응대, 승인 수집, 보고서 작성에 감본부장 시간이 들어갑니다. POC 기간을 8주로 고정하는 이유입니다."),
], size=10.5)
# 7. 답변 문안
heading(doc, "7. 원장의 포털 제안에 대한 답변 문안 (안)")
para(doc, "원장님께서 말씀하신 글로벌 의료관광 포털 방향에 공감합니다. 다만 외국인 환자 상담·예약 중개는 유치업 등록과 다국어 응대 조직이 필요한 사업이라, 이번 협약에서는 뷰성형외과 서포터즈 사이트와 AI 답변 노출 측정으로 효과를 먼저 확인하려고 합니다. 8주 결과가 나오고 참여 병원이 늘어나면, 포털 단계는 그 결과를 근거로 다시 제안드리겠습니다.", 11, False, INDIGO, 10)
# 8. 결정 안건
heading(doc, "8. 대표 보고 시 결정 요청 안건")
table(doc, ["번호", "결정 사항", "권고안", "대안"], [
["1", "MOU·POC 범위", "서포터즈 사이트 + 진단·측정(6-1)", "PRD 1층 포함"],
["2", "플랫폼 사업 추진", "이번에는 제외, 5-1 조건 충족 시 재검토", "PRD 1단계 착수"],
["3", "POC 비용", "무상, 8주 고정, 홍보·사례 사용권을 대가로", "유료 POC(최소 금액 제시)"],
["4", "공식 홈페이지 개선", "가이드 제공, 적용은 병원", "직접 수정(추가 인력 필요)"],
["5", "답변엔진 추가", "현행 2개 유지, Claude는 유료 옵션", "Claude 포함"],
["6", "색인 전환 전 법률 확인", "사전심의·유치업 해당 여부 변호사 확인 후 전환", "승인만 받고 전환"],
["7", "MOU 순서", "범위 문서 합의 → MOU → 홍보 기사", "MOU 먼저, 범위는 부속서"],
["8", "미팅 참석", "문서 합의 후 실행 단계에서 참석", "이번 조율 미팅부터 참석"],
], widths=[1.2, 3.8, 7.0, 5.0], size=9.5)
# 9. 질문
heading(doc, "9. 뷰성형외과 미팅에서 확인할 질문")
bullets(doc, [
"MOU로 원하는 결과의 우선순위: 홍보, 외국인 환자 유입, 포털 참여",
"원장 검토·승인 담당자와 주기",
"홍보 기사에 병원명과 수치를 공개할 범위",
"공식 홈페이지 수정 권한과 담당자",
"소개 가능한 병원 명단, 병원 수, 현재 관계 단계",
"포털을 원한다면 비용 분담이나 투자 의향",
], size=10.5)
# 10. 액션
heading(doc, "10. 다음 액션")
table(doc, ["날짜", "할 일", "담당"], [
["9/15(화)", "사이트 URL management 방 공유", "감본부장"],
["9/16(수)", "이 문서 대표 보고, 8장 안건 결정", "감본부장 → 대표"],
["9/17(목)", "결정안으로 범위 문서 확정, 뷰성형외과 전달", "감본부장, 황본부장"],
["9/18(금)", "연구소 회의: 병원별 자동화 수준 시연(60~70% 구간 사례 포함)", "감본부장"],
["합의 후", "변호사 확인 2건 요청, 병원 승인 요청서 발송", "감본부장"],
], widths=[2.4, 10.6, 4.0], size=9.5)
# 부록
heading(doc, "부록. 출처")
groups = [
("내부 자료", [
"Global Medical Hub PRD v0.2: docs/prd/INFINITH_Global_Medical_Hub_PRD_v0.2.html (2026-09-09)",
"뷰성형외과 POC 제안서: docs/reports/viewclinic/02_poc_proposal/Viewclinic_POC_Proposal.pptx (2026-09-01)",
"서포터즈 색인 보류 사유 보고: docs/business/INFINITH_서포터즈_색인보류_사유보고_2026-09-14.docx",
"답변엔진 확장 검토 보고서: docs/reports/answer_engines/INFINITH_답변엔진_확장검토_2026-09-15.docx",
"AI 답변 인용 원자료: scripts/out/qb_openai_results.jsonl, qb_perplexity_results.jsonl (2026-09-01), docs/reports/viewclinic/05_global_en/qb_en_*_results.jsonl (2026-09-10)",
]),
("시장·규제", [
"보건복지부 2025 외국인환자 유치 실적 https://www.mohw.go.kr/board.es?mid=a10503010100&bid=0027&act=view&list_no=1490280 (2026-04)",
"보건복지부 2024 실적 https://www.mohw.go.kr/board.es?mid=a10503000000&bid=0027&act=view&list_no=1485191 (2025-04)",
"2026 상반기 외국인 카드 결제 https://www.medicaldaily.co.kr/post/22664 (2026-08-27)",
"부가세 환급 종료 후 동향 https://www.hankyung.com/article/2026081424556 (2026-08-14)",
"유치 수수료 고시 제2024-79호 https://www.mohw.go.kr/boardDownload.es?bid=0026&list_no=1481343&seq=1 (2024-05-08, 현행 제2025-72호 본문 미대조)",
"의료해외진출법·시행령·시행규칙, 의료법, 개인정보보호법, 관광진흥법 시행령: 국가법령정보센터 law.go.kr",
"대법원 2018도20928 https://www.scourt.go.kr/portal/news/NewsViewAction.work?seqnum=6637&gubun=4",
"강남언니 의료법 위반 1심 https://www.fnnews.com/news/202201271700056405 (2022-01-27), 2심 https://www.fnnews.com/news/202307061827216638 (2023-07-06)",
"미등록 유치 병원 등록취소 소송 https://www.doctorsnews.co.kr/news/articleView.html?idxno=165135",
]),
("경쟁 사업자", [
"강남언니 글로벌 확장 https://zdnet.co.kr/view/?no=20251015091542 (2025-10-15)",
"강남언니 글로벌 서비스 소개서 https://docs.channel.io/unni/ko/articles/%EA%B8%80%EB%A1%9C%EB%B2%8C-%EC%84%9C%EB%B9%84%EC%8A%A4-%EC%86%8C%EA%B0%9C%EC%84%9C--a34d448f",
"강남언니 CPV 소개서 https://docs.channel.io/unni/ko/articles/CPV%EA%B3%BC%EA%B8%88-%EB%B0%A9%EC%8B%9D-%EC%86%8C%EA%B0%9C%EC%84%9C--e045a4e3",
"강남언니 태국 성장 https://www.news2day.co.kr/article/20250624500218 (2025-06-24)",
"강남언니 통역·예약 https://www.mt.co.kr/industry/2026/08/12/2026081210155697732 (2026-08-12)",
"강남언니 통역 도입 https://zdnet.co.kr/view/?no=20260511103126 (2026-05-11)",
"강남언니 실적 https://www.newsspace.kr/news/article.html?no=15572 (발행일 미확인)",
"강남언니 개인정보 유출 https://www.swtvnews.com/news/newsview.php?ncode=1065595512012384 (2026-09-08)",
"바비톡 일본 진출 https://www.venturesquare.net/1001286 (2025-08)",
"바비톡 글로벌 서비스 https://docs.channel.io/f47c5d3a/ko/articles/%EB%B0%94%EB%B9%84%ED%86%A1-%EA%B8%80%EB%A1%9C%EB%B2%8C-%EC%84%9C%EB%B9%84%EC%8A%A4--5dc781ba",
"크리에이트립 규모 https://www.asiatime.co.kr/article/20250516500383 (2025-05-17), 거래 https://www.mt.co.kr/future/2026/01/29/2026012908442998862 (2026-01-29), 유치업 등록 https://creatrip.com/en/blog/14800",
"크리에이트립 투자 https://zdnet.co.kr/view/?no=20240814174433 (2024-08-14)",
"여신티켓 글로벌 https://www.enetnews.co.kr/news/articleView.html?idxno=39846",
"BeautsGO https://www.beautsgo.com/ · https://github.com/BeautsGO/beautsgo-booking",
"Bookimed 보고서 https://us-uk.bookimed.com/b2b-article/medical-tourism-report-bookimed-platform/",
"ClinicsOnCall https://clinicsoncall.com (2026-09-15 조회)",
"Korea Clinic Guide https://koreaclinicguide.com (2026-09-15 조회)",
"ClinicSeoul https://clinicseoul.net (2026-09-15 조회)",
"메디컬코리아 https://www.medicalkorea.or.kr/korp/main.do",
"AI 크롤러·llms.txt: 각 사이트 robots.txt·sitemap·llms.txt 직접 조회 (2026-09-15)",
]),
]
for title, items in groups:
h3(doc, title)
for it in items:
p = doc.add_paragraph()
p.paragraph_format.space_after = Pt(2)
set_font(p.add_run(it), 9, False, GRAY)
if OUT.exists() and "--force" not in sys.argv:
sys.exit(f"{OUT.name} 이 이미 있어 멈춥니다(haewon 편집본 보호). 새로 만들려면 --force")
doc.save(OUT)
print(OUT)
if __name__ == "__main__":
build()