Skip to content

Cloudflare Pages 이전 + 같은 오리진 익명 집계 - #6

Merged
midagedev merged 1 commit into
mainfrom
analytics-worker
Aug 27, 2026
Merged

Cloudflare Pages 이전 + 같은 오리진 익명 집계#6
midagedev merged 1 commit into
mainfrom
analytics-worker

Conversation

@midagedev

Copy link
Copy Markdown
Owner

무엇을

호스팅을 GitHub Pages → Cloudflare Pages (https://cachehit.pages.dev) 로 옮기고, 같은 오리진의 Pages Functions로 익명 집계를 붙입니다. 옛 주소는 gh-pages 브랜치의 리다이렉트가 받습니다(이미 공유된 트윗 카드가 깨지지 않도록 assets/og.png는 옛 주소에 남깁니다).

집계 설계

  • 저장은 카운터 증가뿐 — IP·User-Agent·쿠키·식별자는 읽지도 저장하지도 않습니다. 스키마(tools/analytics-schema.sql)가 수집 항목의 전부입니다.
  • 목적은 AUTHORING §7 실행입니다: 문항별 보기 선택 분포(선택률 5% 미만 오답 = 죽은 보기), 확신도×정답 교차표.
  • 집계 전문은 /stats로 공개 — 개인 정보가 없으니 숨길 이유가 없고, 무엇을 세는지의 증명이기도 합니다.
  • pageview는 localStorage로 브라우저당 하루 1회 근사. 서버는 식별자를 받지 않으므로 그 이상은 세지 않습니다.
  • 로컬·E2E에서는 비컨이 나가지 않습니다(ANALYTICS_HOSTS 게이트). E2E가 이것을 단언하고, FAIL-first로 확인했습니다(게이트에 cachehit.test를 넣자 24건 검출).

배포 실측 (이미 프로덕션에 적용됨)

  • 사이트 200 / /stats 빈 집계 → 유효 answer {"ok":true} → 반영 확인 → 테스트 행 삭제
  • 불량 qid 400, cross-site 헤더 403
  • D1 cachehit-analytics 스키마 적용 완료

남은 것

  • 이 PR 머지 후 GitHub Pages 소스를 gh-pages 브랜치로 전환(리다이렉트 활성화)
  • 커스텀 도메인 cachehit.midagedev.com은 Pages에 등록만 됨 — DNS CNAME은 보류(대시보드 권한)

🤖 Generated with Claude Code

사이트를 GitHub Pages 에서 Cloudflare Pages(cachehit.pages.dev)로 옮기고,
같은 오리진의 Pages Functions 로 익명 집계를 붙인다.

- functions/collect.js — POST /collect. 카운터 증가만 저장(IP·UA·식별자 없음).
  qid 형식·보기 인덱스·확신도 값을 검증하고 cross-site 요청은 403.
- functions/stats.js — 집계 전문 공개(GET /stats). AUTHORING §7(선택률 5%
  미만 오답 = 죽은 보기, 확신도×정답 교차표)의 데이터 원천이다.
- tools/analytics-schema.sql — D1 스키마. 적용 완료(cachehit-analytics).
- tools/pack.mjs — dist/ 조립. 루트에는 저작 도구가 섞여 있어 그대로 배포하지
  않는다.
- assets/app.js — track()/trackPageview(). 배포 호스트에서만 전송하고
  (ANALYTICS_HOSTS), pageview 는 localStorage 로 브라우저당 하루 한 번.
- tools/e2e.mjs — 테스트 호스트에서 비컨 0건 단언(FAIL-first 확인: 게이트에
  cachehit.test 를 넣자 24건 검출), SITE_MARK 갱신.
- index.html·make-og.py·og.png·README — URL 을 cachehit.pages.dev 로. 옛
  주소는 gh-pages 브랜치의 리다이렉트가 받는다(og.png 는 남겨 기존 트윗
  카드 보존).

배포 실측: 사이트 200 / 유효 answer ok / 불량 qid 400 / cross-site 403 /
/stats 반영 확인 후 테스트 행 삭제. 커스텀 도메인(cachehit.midagedev.com)은
Pages 에 등록만 해 둠 — DNS CNAME 은 계정 대시보드 권한이 필요해 보류.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@midagedev
midagedev merged commit 27ff111 into main Aug 27, 2026
1 check passed
@midagedev
midagedev deleted the analytics-worker branch August 27, 2026 14:30
midagedev added a commit that referenced this pull request Aug 27, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant