o2o-infinith-demo/docs/HANDOVER_2026-09-18.md
Haewon Kam 11c4bb24b3 docs: 2026-09-18 핸드오버와 다음 세션 프롬프트
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-18 17:27:50 +09:00

8.7 KiB

핸드오버 · 2026-09-18 (금)

다음 작업은 2026-09-19(토) 또는 다음 주. 이 문서 하나만 읽으면 이어서 할 수 있게 적는다.


0. 오늘 한 일 한 줄

랜딩에서 들어온 JK성형외과 신청을 자동 빌드로 완주시키고, 그 과정에서 드러난 파이프라인 결함 6건을 고쳤다. 그리고 진단 리포트에서 사이트 빌드까지 이어지는 제품 화면을 새로 만들었다.


1. 지금 상태

저장소 두 곳, 커밋 완료

Productize-2 (main) · 프런트엔드

f38c0f3  feat(front): 진단 요약과 보완 계획을 보여 준 뒤 빌드하게 한다
14c4b82  refactor(design): 요청문과 설명문을 텍스트 역할 토큰으로 가른다
be1ea72  feat(front): 진단 리포트에서 사이트 빌드로 이어지는 화면
74c70d6  docs(design): 신청 접수 알림과 완료 안내 메일 설계 v0.1
5cf28d9  feat(front): 병원이 사이트에 실을 사진을 한 장씩 고르는 화면

Productize (feature/supporters-autobuild) · 파이프라인

1eb166e  fix(worker): 병원 입력을 큐 빌드에서도 반영하고, 이미지 확인 결과를 사이트에 적용한다
fa48d43  fix(supporters): 의료진 목록 페이지를 사람별로 나누고 지번 주소도 좌표로 바꾼다

푸시하지 않았다. 두 저장소 모두 로컬에만 있다.

f38c0f3 은 haewon 육안 확인 전에 커밋했다. 퇴근 시점에 작업 트리를 비워 두려고 먼저 넣은 것이라, 마음에 안 들면 git reset --soft HEAD~1 로 되돌리면 된다.

추적하지 않는 파일 2개

scripts/out/naver_briefing_summary.json, scripts/out/sentiment_summary.json 는 09-15 측정 산출물이고 오늘 세션 것이 아니라 그대로 뒀다. 주간보고가 이 파일을 근거로 인용하므로 보고서를 공유할 계획이면 같이 커밋해야 한다.

배포

대상 주소 상태
JK성형외과 서포터즈 https://supporters-jkplastic.vercel.app 배포됨 · noindex · 의료진 9명·주변 안내 123곳 반영
프런트엔드 배포 안 함 오늘 만든 화면은 로컬에만 있다

2. 오늘 고친 파이프라인 결함 6건

# 결함 상태
1 의료진 목록 페이지를 사람별로 못 나눔. 9명이 "과전문의"라는 없는 사람 1명으로 합쳐짐 고침
2 지번 주소를 좌표로 못 바꿔 주변 안내 전체가 빔 고침
3 글이 예전 의료진 id를 들고 있으면 astro build 중단 고침
4 --deploy 없는 부분 재실행이 preview_url 을 지움 고침
5 큐 워커가 --from-supabase 를 안 넘겨 병원 입력이 하나도 반영되지 않던 것 고침
6 이미지 수집 개수 중복 계산 (36장을 51장으로 보고) 고침

수정 효과 (JK 재실행 실측)

항목 전 후
의료진 1명 (가짜 이름) 9명 (실명·직함·약력 분리)
수집 뉴스 958건 1,165건 (기고·인터뷰 217 → 387)
주변 안내 0곳 국문 123곳 · 영문 108곳

3. 오늘 만든 화면

/discovery/:id   진단 리포트  → [이대로 빌드하기]
/build/:id       빌드 진행 (5단계, supporter_builds 폴링)
/images/:id      사진 확인 (한 장씩 사용/빼기)
/supporters/:id  확인 항목 입력 (기존)

새 파일

src/pages/SiteBuildPage.tsx                     빌드 진행 화면
src/pages/ImageReviewPage.tsx                   사진 확인 화면
src/components/discovery/ImageReviewPanel.tsx   사진 확인 본체
src/components/discovery/BuildPlanSection.tsx   진단 요약 → 보완 계획 → 빌드
src/components/ClinicNav.tsx                    4단계 절차 상단 메뉴 + 이전 단계 플로팅 버튼
src/lib/buildPhases.ts                          워커 17단계 → 고객용 5묶음
src/lib/buildCoverage.ts                        빌드가 보완하는 카테고리 선정

설계상 지켜야 할 것 두 가지

  1. 빌드는 병원 홈페이지를 고치지 않는다. 진단의 실행 항목은 단 하나도 빌드로 해결되지 않는다. 화면에서 "실행 항목 N건 해결"로 쓰면 지키지 못할 약속이 된다. 오늘 한 번 그렇게 만들었다가 고쳤다.
  2. "결과"라는 말을 쓰지 않는다. 빌드가 끝나도 사진 확인과 확인 항목이 남아 최종이 아니다.

텍스트 역할 토큰 (src/index.css)

.ui-ask   요청문 (17px·600·인디고) · .ui-ask-block 은 왼쪽 규칙선
.ui-body  설명 본문 (16px·slate-600)
.ui-note  보조·출처 (14px·slate-400)
.on-dark / .on-light  다크 섹션과 그 안의 흰 카드
.btn-on-dark  다크 섹션 위 주 버튼 (기본 CTA 그라디언트는 흰 배경 전용)

4. 바로 이어서 할 수 있는 것

4-1. haewon 육안 확인 (최우선)

f38c0f3 의 화면을 아직 안 보셨다. 확인할 것:

  • /discovery/viewclinic 하단 What We Will Fix 섹션의 문구와 버튼 대비
  • 네 화면 오가며 이전 단계 플로팅 버튼 (왼쪽 아래)
  • /images/jkplastic 썸네일 줄
cd ~/orca/workspaces/INFINITH/Productize-2 && npm run dev   # 포트 3000 사용 중이면 자동으로 다음 포트

4-2. 분석 리포트의 남은 요소 흡수 (오늘 하던 것)

haewon이 고른 방향은 "분석 리포트의 좋은 부분을 진단으로 흡수" 였다. 채널 점수 링·로드맵 타임라인·KPI 세 가지 중 아직 하나도 안 옮겼다. 중간에 "OK 버튼" 이야기로 방향이 틀어져 BuildPlanSection 을 먼저 만들었다.

요소 기존 컴포넌트 데이터
채널 건강도 링 src/components/report/ChannelOverview.tsx supporter_builds.report.channels 에 실제 발견 채널이 있다
로드맵 타임라인 src/components/report/RoadmapTimeline.tsx result.actions 의 P0/P1/P2 + effort 로 시간축을 만들 수 있다
KPI 대시보드 src/components/report/KPIDashboard.tsx 데이터 없음. 목표치를 지어내면 안 된다. 재측정 기준으로 바꾸는 편이 맞다

로드맵이 가장 쉽고 값이 크다. 데이터가 이미 있고 진단의 Action Plan에 시간축만 없다.

4-3. 분석 리포트 자체의 결함 (옮기든 안 옮기든 남는 문제)

/report/:id 를 바노바기 리포트로 열어 확인한 것:

  • 히어로가 비어 있다. 첫 화면에 그라디언트만 크게 깔리고 제목·병원명이 없다
  • 데이터 없음 (NaN년). 개원 연도 계산이 깨져 NaN이 화면에 나온다
  • 섹션 사이 여백이 화면 하나 가까이 된다

5. 결정 대기 (haewon)

5-1. 메일 (설계 끝, 결정 필요)

docs/DESIGN_신청알림메일_v0.1.md §8

  1. 발송 서비스: Resend 추천. 계정과 발신 도메인(o2o.kr 하위 무엇으로)
  2. 운영자 알림 수신 주소: 개인인지 공용인지
  3. 완료 안내를 사람이 보내는 방식으로 확정할지
  4. "리포트"의 정의: 가장 큰 건. 랜딩은 AEO/GEO 진단 리포트를 약속하는데 파이프라인은 서포터즈 사이트를 만든다. 메일 문안을 쓰려면 이걸 먼저 정해야 한다

5-2. 진단 데이터가 3곳뿐

DISCOVERY_RESULTS 에 viewclinic·taeha·wonjin 만 있다. JK처럼 빌드만 한 병원은 /discovery/:id 에서 No Audit Yet 화면을 본다(오늘 만들었다). 진단은 36항목 실측이라 자동으로 안 따라온다. 자동화 범위를 어디까지 잡을지 별도 과제.

5-3. 기타

  • clinicDoctors 4명 고정. JK는 9명인데 소개 페이지에 4명만 나온다
  • planner가 주변 안내 좌표를 받고도 범용 기본표를 쓴다
  • 뷰 의료진 id 두 벌 (dr-cho 수작업 10개 vs dr-chojinwoo 자동 27개). 뷰 재빌드 때 한쪽으로 모아야 한다
  • check.mjs --update-layout 으로 레이아웃 기준선 생성

6. 알아 두면 시간 아끼는 것

  • 빌드는 백그라운드로 돌리고 다른 작업을 같이 한다. nohup node workers/supporters-build/run.mjs ... & 로 띄우고 로그를 감시한다. 오늘 내내 그렇게 했다.
  • 같은 병원 빌드를 동시에 두 개 돌리면 안 된다. 작업 폴더(~/supporters-builds/<clinic>-<id>/)를 공유해 서로 덮어쓴다.
  • 부분 재실행은 --from <단계>. 글은 --regenerate 없으면 보존되어 생성 비용이 0이다.
  • 워커는 Productize 워크트리에서 돈다. Productize-2 가 아니다. launchd 폴러 com.infinith.supporters-poll, 로그 ~/supporters-builds/poll.log.
  • 주간보고는 gitignore 처리했다 (docs/*주간보고*). 개인 문서라 저장소에 올리지 않는다.