o2o-infinith-demo/scripts
Haewon Kam 8a96aa0e97 feat(contact): 푸터에 사업자 정보 추가, 문의 폼에 허니팟·속도 제한
푸터 (haewon 2026-10-01)
- aio2o.webforai.kr 푸터와 같은 내용으로 맞춘다: 법인명·본사·연구소 주소와
  전화·팩스·이메일. 값의 원본은 그쪽 data/facts.json 이며 지어내지 않았다.
- 전화 표기를 점에서 하이픈으로 바꿔 두 사이트를 같게 한다.

문의 폼 보호 장치
- 허니팟: 사람 눈에 안 보이는 입력칸(website)을 두고, 값이 차 있으면 스크립트가
  저장하지 않는다. display:none 을 건너뛰는 봇이 있어 화면 밖으로 밀어내고
  aria-hidden·tabIndex -1 로 보조기기와 탭 이동에서는 뺀다.
- 속도 제한: Apps Script 가 한 시간 30건까지만 받는다. VITE_LEAD_TOKEN 은 빌드
  시점에 번들로 들어가 공개값이라 보호 장치가 못 된다. 주소와 토큰이 알려져도
  피해가 상한 안에 묶이게 한다.
- 알림 실패 분리: 메일 발송이 실패해도 행은 남기고 접수로 응답한다. 지금까지는
  메일이 막히면(한도 소진·구글 장애) 저장됐는데도 고객 화면에 "전송 실패"가 떠
  접수된 줄 모르고 돌아가게 되어 있었다. 시트에 '알림' 열을 추가해 '보냄' /
  '실패(메일만)' 을 적어 메일이 안 간 문의를 찾을 수 있게 한다.

토큰 실값은 저장소에 넣지 않는다. 배포본 Apps Script 와 Vercel 환경변수에만 둔다.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-10-01 11:53:06 +09:00
..
apps-script feat(contact): 푸터에 사업자 정보 추가, 문의 폼에 허니팟·속도 제한 2026-10-01 11:53:06 +09:00
out feat(measure): 네이버 AI 브리핑을 질문 뱅크 실측 엔진으로 추가 2026-09-15 16:55:59 +09:00
archive-screenshots.py chore: archive-screenshots supabase-py 리팩터 + Storage 버킷 자동 생성 2026-04-07 15:32:40 +09:00
audit_aeo_geo.py feat(supporters): 발행 게이트 확장 — v2 §3 검사 11종을 규칙 모듈·픽스처 테스트로 분리 2026-09-07 13:57:31 +09:00
build_discovery_report.ts feat(ga4): AI 유입 트래픽 연동 뼈대 + 리포트 "측정 가능 범위" 절 2026-09-09 10:53:54 +09:00
build_supporters_audit_v2_xlsx.py feat(discovery): 기준표 v2.0 정식 채택 — 배지·헤더·랜딩 카피·비교 엑셀·덱 v2.0 2026-09-07 15:25:00 +09:00
build_supporters_audit_xlsx.py feat: 뷰성형외과 서포터즈 샘플 사이트 v3 + 설계 v0.1 + 공식 사이트 대비 AEO 감사 2026-09-07 08:40:10 +09:00
build_supporters_v2_compare.ts feat(discovery): 기준표 v2.0 정식 채택 — 배지·헤더·랜딩 카피·비교 엑셀·덱 v2.0 2026-09-07 15:25:00 +09:00
cleanup-and-seed-db.sql chore: archive-screenshots supabase-py 리팩터 + Storage 버킷 자동 생성 2026-04-07 15:32:40 +09:00
export_qb_excel.py feat(measure): 네이버 AI 브리핑을 질문 뱅크 실측 엔진으로 추가 2026-09-15 16:55:59 +09:00
fetch_medical_tourism.py feat(supporters): 회복 일정 플래너를 템플릿·워커에 통합 (/plan·/en/plan), /recovery·/stay 를 /plan 으로 정리 2026-09-11 11:27:59 +09:00
ga4_ai_traffic.py feat(ga4): AI 유입 트래픽 연동 뼈대 + 리포트 "측정 가능 범위" 절 2026-09-09 10:53:54 +09:00
gen_rubric_v2_doc.ts feat(discovery): AEO/GEO 분리 채점 기준표 v2.0 초안 + 리포트 패널 2026-09-07 15:12:35 +09:00
import-registry.ts fix: import-registry 스크립트 수정 + npm sync-registry 추가 2026-04-10 14:25:00 +09:00
make_share_assets.py feat(landing): 히어로 문구를 'AI에게 병원을 묻습니다'로 2026-09-15 16:55:59 +09:00
merge_qb_results.py feat(measure): 네이버 AI 브리핑을 질문 뱅크 실측 엔진으로 추가 2026-09-15 16:55:59 +09:00
monthly_ai_measure.py feat(measure): 네이버 AI 브리핑을 질문 뱅크 실측 엔진으로 추가 2026-09-15 16:55:59 +09:00
question_bank_viewclinic.json feat: 뷰성형외과 Question Bank 120문항 2엔진 실측 + 기준표 v1.1 과제 + 점수 정합성 교정(50/C) 2026-09-01 11:03:15 +09:00
rescale_deck.py fix: INFINITH 덱 폰트 pt 표준화 — 20in 캔버스를 2/3 균등 축소한 v2_표준캔버스 버전 추가 2026-09-01 11:44:41 +09:00
run_question_bank_en.py docs(reports): 뷰성형외과 영문 사이트 외국인 관점 AEO/GEO 진단 보고서 2026-09-10 2026-09-11 09:50:33 +09:00
run_question_bank_openai.py feat(measure): 네이버 AI 브리핑을 질문 뱅크 실측 엔진으로 추가 2026-09-15 16:55:59 +09:00
seed-all-reports.sql chore: archive-screenshots supabase-py 리팩터 + Storage 버킷 자동 생성 2026-04-07 15:32:40 +09:00
seed-clinic-data.sql feat: seed-clinic-data.sql — registry + gangnamUnni + doctor data 2026-04-07 10:32:05 +09:00
sentiment_qb.py feat(measure): 네이버 AI 브리핑을 질문 뱅크 실측 엔진으로 추가 2026-09-15 16:55:59 +09:00
sync-db-local.ts chore: archive-screenshots supabase-py 리팩터 + Storage 버킷 자동 생성 2026-04-07 15:32:40 +09:00
update-csv-gangnamunni.py fix: 리포트 데이터 정확도 개선 + 강남언니·인스타그램 스크래핑 데이터 반영 2026-04-07 14:18:31 +09:00
update-csv-gu-content.py fix: 리포트 데이터 정확도 개선 + 강남언니·인스타그램 스크래핑 데이터 반영 2026-04-07 14:18:31 +09:00