o2o-infinith-demo/docs/INFINITH_AI_Discovery_Retrospective_2026-09-08.md

160 lines
19 KiB
Markdown

# INFINITH AI Discovery 회고 · 2026-08-26 ~ 2026-09-08
작성 2026-09-08 · 작성자 Claude (haewon 세션 기록 기준) · 상태: v1.1 (haewon 2026-09-08 §2 기존 서비스 정의 수정 반영). 확정 전.
범위: INFINITH 의 사업 확장·피봇 결정부터 AI Discovery 진단, 뷰성형외과·원진성형외과 분석·설계, 서포터즈 사이트 수작업 빌드, 자동 빌드 파이프라인 구현과 두 병원 검증까지. 사실은 저장소 커밋·문서·메모리에 남은 것만 쓴다. 추정은 추정이라고 적는다.
---
## 1. 한 줄 요약
"병원이 AI 답변에 안 나온다"는 문제를, 병원 홈페이지를 고치는 대신 **병원이 지원하는 별도 매체(서포터즈 사이트)를 원문 출처로 세우는 방식**으로 풀기로 했고, 그 매체를 병원 이름 하나로 자동 빌드하는 파이프라인을 만들어 두 병원에서 사람 개입 없이 완주시켰다. 자동화가 못 하는 것은 셋으로 좁혀졌다. 병원만 아는 사실의 입력, 원장의 의학 검토와 개설자의 게시 승인, 실존 개인 서포터즈.
---
## 2. 배경과 동기
INFINITH 는 성형외과의 종합적인 Online Presence, SNS·검색 채널을 분석해 전략마케팅 리포트를 내는 서비스였다. 2026년 8월 말, 두 가지 사실이 방향을 바꿨다.
1. **네이버 자산은 글로벌 AI 답변에 기여하지 않는다.** 2026-08-26 실측에서 네이버 블로그·플레이스·카페가 robots.txt 로 AI 크롤러를 전면 차단하고 있음을 확인했다. 병원들이 예산을 쏟는 네이버 마케팅이 ChatGPT·Perplexity·Gemini 답변에는 닿지 않는다. 네이버 AI 브리핑만 별도 트랙이다.
2. **병원 홈페이지는 읽을 수는 있어도 인용할 근거가 없다.** 2026-08-28 뷰성형외과 진단에서 크롤러 접근은 열려 있었지만, 정의문·FAQ·표·의료진 스키마가 없고 주소 표기가 3종이었다. "차단"이 아니라 "내용"이 문제였다.
여기서 사업 방향이 "온라인 프리젠스 종합 분석 및 마케팅 채널 분석 리포트와 전략 기획"에서 **"AI 답변엔진에 인용될 원문을 만들어 주는 것(AEO/GEO)"** 으로 확장됐다. 진단(AI Discovery)은 입구이고, 서포터즈 사이트가 처방이다.
왜 홈페이지를 고치지 않고 별도 매체인가. 홈페이지 수정은 병원 개발사·의사결정에 막혀 느리고, 슬라이더·이미지 글자 구조를 바꾸기 어렵다. 별도 도메인은 병원 사이트를 건드리지 않고, MedicalClinic·Person 스키마와 sameAs 로 같은 엔티티에 묶이며, 원문 텍스트를 계속 공급할 수 있다. 다만 병원 지원을 받는 매체라 의료광고로 본다는 전제에서 설계해야 했다(§7).
---
## 3. 타임라인
| 날짜 | 일 | 근거 |
| --- | --- | --- |
| 08-26 | 네이버 robots 가 AI 크롤러 차단 확인. 오픈웹 자산 필요성 확정 | 메모리 |
| 08-28 | 뷰성형외과 1차 진단(기준표 v1.0, 36항목) 50/C | `discovery_viewclinic.ts` |
| 08-31 ~ 09-01 | 자동 채점기 `audit_aeo_geo.py`, 질문 뱅크 120문항 2엔진 실측(논브랜드 언급률 ChatGPT 11%, Perplexity 3%) | `docs/reports/viewclinic/03_question_bank` |
| 09-04 | 서포터즈 샘플 v1→v3 수작업 빌드(글 8편, 이미지 92장, 뉴스룸 1,137건, 영상 집계). 첫 룩앤필 거부 → INFINITH 토큰. 공정위 뒷광고 사건 발견 | 메모리, `supporters/` |
| 09-07 | v4(글 18편, 고객용 화법 분리, 신뢰 층). 기준표 v2.0 AEO/GEO 분리 채택. 핸드오버 v2. 게이트 확장·템플릿화·근거 수집기·글 생성기·승인 UI·워커 | 커밋 49c5e46~7e515b7 |
| 09-07 밤 | 결정 4건(탭 제거·$10·원진·워커 위치). 원진 회귀 3회 실패 후 인터넷 끊김 | 커밋 ee8c06f |
| 09-08 | 원진 완주·배포, 유튜브·로고, 이미지(법 기준), 원진 진단 리포트 HTML/PDF, 채널 발견·엔티티 검증, 기준 채널 고정 | 커밋 572978c~d1b22b9 |
세션 수는 대략 6번, 저장소 커밋은 08-25 이후 69건이다.
---
## 4. 무엇을 만들었나
### 4-1. 진단 (AI Discovery)
기존 INFINITH 리포트(온라인 프리젠스·마케팅 채널 분석과 전략 기획)의 앞단에 붙는 진단이다. 채널 분석이 "어디에 얼마나 있는가"를 봤다면, AI Discovery 는 "AI 가 그것을 읽고 인용할 수 있는가"를 본다. 같은 병원 데이터(채널·수치)를 쓰되 판정 기준이 다르다.
- 기준표 v1.0: 36항목(A 접근성·B 엔티티·C 콘텐츠·D 표면·E 측정·F 위생), 0~3 레벨, 미검증은 분모 제외.
- 기준표 v2.0: 같은 실측을 **AEO 답변 준비도 8항목 / GEO 출처 준비도 8항목** 두 축 100점으로 재집계. 치명 게이트(크롤러 차단 등)에 상한.
- 자동 채점기(auto 21~22항목) + 사람 보정(semi·manual) → `/discovery/:id` 리포트 페이지, 독립 HTML/PDF 리포트 빌더.
- 질문 뱅크 120문항(7카테고리)과 2엔진 실측 러너.
### 4-2. 서포터즈 사이트 (수작업 정답지)
- Astro 정적, INFINITH 디자인 토큰, 글 18편(세 줄 요약 → 본문 → 영상 → 갤러리 → FAQ → 검토 박스 → 참고 자료 → 갱신 기록 → 병원 정보 → 고지), 팩트 시트 단일 원본, Person·Physician·MedicalClinic·Article·FAQPage 스키마, noindex 기본.
- 발행 게이트: JSON-LD·alt·H1·금칙어·홈페이지 40자 연속 일치 → v2 §3 의 검사 11종(운영자 어휘·근거 유형·결론 단정·확인일 일관성·검토자·영상 제목·비교 수치·승인·고지 위치).
### 4-3. 자동 빌드 파이프라인 (워커)
이름 또는 URL → 채널 발견·엔티티 검증 → 근거 수집(223p) → 팩트 시트·의료진 초안 → 유튜브 집계·로고·파비콘 → 이미지(법 기준 필터) → 첫 배치 기획 → GPT-4.1 생성(수치 대조·근거 대조·수정 2회) → 빌드·게이트 → Vercel 미리보기 → 병원 입력 폼 → 입력 반영 재빌드.
---
## 5. 문제, AI 의 첫 대응, haewon 의 피드백, 달라진 것
| # | 문제 | AI 가 처음 한 것 | haewon 피드백 | 달라진 것 |
| --- | --- | --- | --- | --- |
| 1 | 산출물 형식 | 티켓 문의서를 Artifact 로 발행 | "워드 문서를 기대했다", 전량 재작업 | 전역 규칙: 지시 없으면 로컬 파일. 이번 회고도 md 로컬 파일 |
| 2 | 1차 진단 오판 3건(블로그 정지·FAQ 0·수치 없음) | 요약 도구(WebFetch)와 URL 2개 표본으로 판정 | 09-07 재검증 요청 | 실측 규칙: 원본 HTML 파서로만, 표본 5개 URL 이상. 50→54 정정 |
| 3 | 서포터즈 첫 룩앤필(녹색 에디토리얼) | 매체다운 별도 디자인 | 거부, INFINITH 토큰으로 | 서포터즈도 INFINITH 토큰. 텍스트 많은 블록은 그라디언트 금지 |
| 4 | "내용이 부실하다" | 텍스트 위주 글 8편 | 이미지·유튜브 임베드 기본, 병원 자산은 파트너십 전제 | 홈페이지 이미지 92장, 글마다 영상·갤러리 |
| 5 | "사이트가 제안서처럼 읽힌다" | 홈에 "답변엔진 인용", "질문 뱅크 120문항" 노출 | 고객은 그 논리를 볼 이유가 없다 | 고객/운영자 화면 분리. 운영자 어휘는 게이트 오류 |
| 6 | 화법 수정 중 룩앤필까지 바뀜 | 섹션 구조·영어 헤딩·통계 블록 재설계 | "돌려놓고 텍스트만" | 확정 디자인은 텍스트만. 구조 지문 검사 |
| 7 | 카드 제목 "합니다/밝힙니다", 덱 제목 반말 | 영어 직역 화법 | 명사구, 고객용은 존댓말 | 규칙 + 게이트 경고(HEADING_VERB·PLAIN_ENDING) |
| 8 | 근거 없는 수치(출근 시점·지속 기간·재수술 시점) | 홈페이지 없으면 일반 지식으로 채움 | 없는 것은 없다고 | 근거 프로토콜 §4, "자료에 없음/병원 확인 대기". 생성기 수치 대조 + 근거 대조 |
| 9 | 영상 출연 원장을 감수자로 자동 표기 | 영상에 나왔으니 감수로 | 검토는 사람이 확정 | 검토자·검토일은 병원 입력. reviewedBy 스키마는 reviewed 일 때만 |
| 10 | 외부 개선안(Astra 44건, Codex 평가) | 전부 반영 시도 | 사실 지적만 수용, 기획 취향은 반려 | 수용 기준 3갈래(사실/구조/취향) |
| 11 | 공정위 뒷광고 사건(2026-07-12, 뷰 포함 3곳) 발견 | 뉴스룸에 넣을지 판단 | 보고 후 제외 | 후기 인용 금지·대가 고지의 근거가 됨. 경제적 이해관계 고지를 글 첫 부분으로(제안) |
| 12 | 자동 빌드 미리보기 카드에 검은 도형 | 자산 없으면 프레임워크 파비콘으로 대체 | "이런 이미지는 뭐지, 원진은 사진 없어?" | 유튜브·이미지 단계 추가, 카드 대체는 병원 로고 |
| 13 | 전후 사진 거르는 규칙 | 전후 사진 전부 제외 | 법 기준으로, 파트너라 자산은 쓰되 법에 걸리지 않게 | 의료법 56조 2항·심의 기준·초상권을 이미지 규칙표로. 조건을 자동 확인 못 하는 것만 제외 |
| 14 | 원진 유튜브 공식 채널 2개 | 구독자 많은 쪽 자동 선택 | 설명 영상 736편 채널로 고정 | 병원별 고정값 파일, 자동 선택 기준을 영상 수로 |
| 15 | 워커 위치 | 선택지 4개 제시 | "난 비개발자야, 네가 추천" | Mac 폴러(파일럿) → Trigger.dev(정착), haewon 은 가입·키만 |
AI 쪽에서 스스로 잡은 문제도 있었다. 생성기 근거 대조기가 "근거에 명시되어 있음"이라고 적으면서 플래그를 세우는 오탐(항목별 supported 판정으로 해결), 안전 페이지의 "병원급 평균 23.1% vs 43%" 비교 수치를 모델이 그대로 옮긴 것(COMPARISON_CLAIM 게이트 신설), 영상 제목 "부작용은 없을까?"가 게이트에 걸려 배포가 막힌 것(수집 단계에서 같은 규칙 적용), 채널 탐색에서 홈페이지 역링크를 부분 문자열로 인정해 변형 핸들이 전부 확인됨으로 잡힌 것(경로 경계 정규식으로 해결), 투명 PNG 글자 이미지 검사 순서.
---
## 6. ChatGPT 의견으로 AEO 와 GEO 를 분리한 뒤 달라진 것
v1.0 은 36항목을 하나의 점수로 합쳤다. 뷰성형외과 54/C 는 "중간쯤"으로 읽혀 무엇을 먼저 고칠지 말해 주지 않았다. ChatGPT 의견을 받아 **답변 준비도(AEO: 질문에 얼마나 명확하게 답하는가)** 와 **출처 준비도(GEO: 그 답을 얼마나 믿을 수 있는 출처로 쓸 수 있는가)** 를 각 100점으로 나눴다(기준표 v2.0, 2026-09-07 채택).
| 병원 | v1.0 종합 | AEO | GEO | 읽히는 처방 |
| --- | --- | --- | --- | --- |
| 뷰성형외과 | 54 / C | 42 / C | 56 / C | "답은 부족하고 출처로는 절반쯤". 프리저베 페이지의 FAQ·수치 구조를 다른 시술 페이지로 확산 |
| 원진성형외과 | 49 / C | 15 / D | 45 / C | 종합은 뷰와 비슷하지만 답변 준비도가 D. H1·표·FAQ·정의문이 전부 없다. 엔티티(sameAs 10개)는 오히려 낫다 |
같은 C 등급 두 병원이 분리하면 다른 병원이 된다. 원진은 콘텐츠 구조부터, 뷰는 엔티티·표면 정합부터다. 서포터즈 사이트의 역할도 달라진다. 원진은 사이트가 첫 "답"이 되고, 뷰는 "출처"를 보강한다. 리포트와 덱의 제목("답은 부족하고, 출처로는 절반쯤 됩니다")이 이 분리에서 나왔다.
외부 AI 는 셋을 썼다. ChatGPT(기준 설계 의견), Codex(공식 70.5 vs 서포터즈 76.5 비교 평가, GEO 67.5 열세 지적), Astra(개선안 44건). 셋 다 "무엇을 고칠지"에는 쓰고 "효과가 얼마인지"의 근거로는 쓰지 않았다(v2 §3-9).
---
## 7. 확인된 명제와 조건
**확인된 것**
1. 원래 홈페이지를 그대로 둔 채, 엔티티 충돌 없이 서포터즈 사이트를 세울 수 있다. MedicalClinic `@id` 를 홈페이지 URL 로 두고, sameAs 를 확인된 채널로 채우며, 주소·전화를 팩트 시트 한 곳에서만 쓰고, Person(작성자)·Physician(검토 원장)을 분리하면 된다. 원진 라이브 sameAs 4개 확인.
2. 지속적인 콘텐츠 업데이트는 자동화된다. 이름 하나로 6편, 병원당 $0.3~0.6, 10~30분, 사람 개입 0. 정답지 18편 회귀 18/18, 원진 6/6 게이트 통과. 근거 없는 수치는 수치 대조와 근거 대조로 0건을 목표로 검사한다(사람 확인용 플래그는 남는다).
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 열세를 줄인 항목이었다. 자동 빌드는 작성자를 "확인 대기"로 두고 병원·운영자 입력으로 채운다.
3. **원장·의사 검수 파이프라인이 있어야 한다.** 검토자·검토일·개설자 승인은 사람 게이트다. 폼 → supporter_inputs → apply_inputs → 재빌드 → 색인 허용 빌드에는 승인 글만 나가는 경로까지 만들었다. 병원 쪽에 담당자와 주기가 정해져야 실제로 돈다. 검토 병목이 곧 발행 속도의 상한이다.
---
## 8. haewon 이 적지 않았지만 회고에 넣어야 할 것
1. **측정 인프라가 0 이다.** E 카테고리(서버 로그 AI 크롤러 히트, GA4 AI 유입, GSC AI Overviews, 기준선 스팟체크)는 두 병원 모두 0/4 미검증이다. 답변엔진 UI 자동 조회는 약관 위반이라 주력 측정은 오너가 소유한 신호여야 하는데, 그 접근권을 아직 받지 못했다. "효과가 났다"를 말할 근거가 지금은 없다.
2. **네이버는 별도 트랙이다.** 글로벌 AI 에 기여 0 이지만 국내 환자의 실제 검색은 네이버다. 허브(자체 도메인 원문) 선발행 후 네이버 블로그 60% 이하 재작성 2트랙 설계는 문서로만 있고 구현하지 않았다. 네이버 트랙은 게시물별 심의 대상이다.
3. **자막이 없다.** youtube_transcript_api 가 25편 후 IP 차단됐다. 자동 빌드 글이 뷰 정답지보다 얇은 첫째 이유다. 영상 발언은 사람이 정리한 쇼츠 답만 쓴다.
4. **이미지는 육안 확인이 남는다.** 파일명·alt·흰 배경 휴리스틱으로 거르고 얼굴·신체 검출은 없다. 병원 송부 전 갤러리를 한 번 훑어야 한다.
5. **사이트 편차는 병원마다 새로 나온다.** 원진에서 UA 403, 슬래시 404, 페이지 구성 차이 세 가지가 나왔고, 세 번째 병원에서도 새 편차가 나온다고 봐야 한다. 회귀(뷰 223페이지 동일)를 매번 같이 돌렸다.
6. **비용과 시간의 실측.** 글 편당 $0.05~0.19(평균 $0.09), 근거 대조 포함. 병원당 첫 배치 $0.3~0.6. 워커 10~30분. 상한은 실행당 $10.
7. **운영 주체가 비개발자다.** 워커는 지금 Mac 에서 손으로 돌린다. 랜딩 신청이 자동 빌드로 이어지려면 폴러 설치 또는 Trigger.dev 가입이 필요하다. 코드보다 이 결정이 병목이다.
8. **경영진 미결.** 도메인(별도 vs 서브도메인), 서포터즈 모집, 법무 확인 주체, POC 8주 범위, 가격 노출. 기술은 이 결정과 무관하게 진행했지만 발행 시점은 여기에 걸려 있다.
9. **리스크.** 병원 입력 의존(입력 없으면 "확인 대기"투성이 사이트), 검토 병목, Apify 미납(인스타 수집 불가), 유튜브 API 쿼터, 모델 근거 대조의 오탐·누락(사람 확인 플래그로 보완), 원진의 후기·이벤트 중심 채널 운영과 서포터즈 원칙의 긴장.
---
## 9. 숫자 정리
| 항목 | 값 |
| --- | --- |
| 뷰성형외과 진단 | v1 54/C · AEO 42/C · GEO 56/C · 실측 32/36 |
| 원진성형외과 진단 | v1 49/C · AEO 15/D · GEO 45/C · 실측 25/36 |
| 질문 뱅크 실측 | 120문항, 논브랜드 언급률 ChatGPT 11% · Perplexity 3%, ◯ 5 · △ 35 · ✕ 80 |
| 수작업 샘플(뷰) | 글 18편(검토 완료 10), 이미지 92장, 뉴스 1,137건, 영상 1,215편 집계. 감사 78/B(noindex)·86/A(색인 허용) |
| 게이트 | error 11종 + warn 6종 → 추가 후 테스트 16/16 |
| 생성기 회귀 | 정답지 18/18, 편당 $0.09 · 22초. 1차 출력 근거 없는 수치 19건 → 수정 후 0 |
| 원진 자동 빌드 | 216페이지, 의료진 17, 채널 8플랫폼 확정, 유튜브 736편, 이미지 66장, 글 6편, $0.58 |
| 저장소 | 08-25 이후 커밋 69건, 워크트리 `orca/workspaces/INFINITH/Productize`, 브랜치 `feature/supporters-autobuild` |
---
## 10. 배운 것 (다음 프로젝트에도 적용할 원칙)
1. 사람 판단은 규칙·검사·사람 셋 중 하나로 분류해 둔다. 규칙은 프롬프트와 템플릿에, 검사는 게이트에, 사람은 승인 UI 에. 자동화하려 들지 말 것은 사람 칸에 그대로 둔다.
2. 없는 사실은 없다고 쓴다. 생성기는 근거 컨텍스트 순서를 입력 구조로 강제하고, 출력의 수치를 근거 텍스트와 대조하고, 모델 대조기의 오탐을 다시 거른다.
3. 고객 화면과 운영자 설명은 다른 페이지다. 기획 문서의 논리가 고객 화면에 새면 제안서가 된다.
4. 확정된 디자인은 텍스트만 바꾼다. 구조 지문으로 지킨다.
5. 부재는 증명해야 한다. 스크래퍼 하나의 실패는 근거가 아니다.
6. 한 병원에서 되는 코드는 두 번째 병원 회귀 전까지 코드가 아니다. 회귀는 정답지(뷰) 와 새 병원(원진) 둘 다 돌린다.
7. 법은 "금지"보다 "조건"이 많다. 조건을 자동으로 확인할 수 없으면 자동 단계에서 빼고 사람이 넣는 경로를 남긴다.
8. 외부 AI 의견은 방향 결정에 쓰고 효과 증명에는 쓰지 않는다. 효과는 소유 신호로만 잰다.
9. 산출물은 지시된 형식으로, 로컬에. 열어서 보여 준다.