{"id":50055972,"url":"https://github.com/code-yeongyu/byeongithon-opus-stats","last_synced_at":"2026-05-21T13:14:07.764Z","repository":{"id":358840076,"uuid":"1243308213","full_name":"code-yeongyu/byeongithon-opus-stats","owner":"code-yeongyu","description":"🚽 변기톤 오푸스 통계 · 노마다마스 해커하우스 동안 사용된 Claude Opus 4.7 토큰 14.06억 사용량 대시보드 · Oh My OpenAgent로 단 하나의 프롬프트로 만들어짐","archived":false,"fork":false,"pushed_at":"2026-05-19T09:23:04.000Z","size":8744,"stargazers_count":0,"open_issues_count":3,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-19T11:03:17.169Z","etag":null,"topics":["analytics","byeongithon","claude","cloudflare-workers","dashboard","nomadamas","oh-my-openagent","opus","r2","sisyphus-labs","typescript"],"latest_commit_sha":null,"homepage":"https://toilet-nomad.mengmota.com","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/code-yeongyu.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":"NOTICE","maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-05-19T08:17:19.000Z","updated_at":"2026-05-19T09:21:42.000Z","dependencies_parsed_at":null,"dependency_job_id":"f15fca42-b2ec-4295-a5c8-015b4b6fd706","html_url":"https://github.com/code-yeongyu/byeongithon-opus-stats","commit_stats":null,"previous_names":["code-yeongyu/byeongithon-opus-stats"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/code-yeongyu/byeongithon-opus-stats","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fbyeongithon-opus-stats","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fbyeongithon-opus-stats/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fbyeongithon-opus-stats/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fbyeongithon-opus-stats/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/code-yeongyu","download_url":"https://codeload.github.com/code-yeongyu/byeongithon-opus-stats/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/code-yeongyu%2Fbyeongithon-opus-stats/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33301811,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-21T12:23:38.849Z","status":"ssl_error","status_checked_at":"2026-05-21T12:22:11.673Z","response_time":62,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["analytics","byeongithon","claude","cloudflare-workers","dashboard","nomadamas","oh-my-openagent","opus","r2","sisyphus-labs","typescript"],"created_at":"2026-05-21T13:14:04.678Z","updated_at":"2026-05-21T13:14:07.753Z","avatar_url":"https://github.com/code-yeongyu.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🚽 변기톤 오푸스 통계\n\n[![CI](https://github.com/code-yeongyu/byeongithon-opus-stats/actions/workflows/ci.yml/badge.svg)](https://github.com/code-yeongyu/byeongithon-opus-stats/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n\u003e 노마다마스 해커하우스 **「변기톤」** 기간 동안 사용된 Claude Opus 4.7 토큰 사용량을 시각화한 정적 대시보드.\n\u003e\n\u003e 🌐 **라이브 사이트** · \u003chttps://toilet-nomad.mengmota.com\u003e\n\n---\n\n## 📊 한눈에 보기\n\n기준 시각 **2026-05-19 16:00 KST** 까지의 `sk-markers-*` 키 통계:\n\n| 지표 | 값 |\n|---|---|\n| 총 요청 | **14,067** (성공 14,042 · 실패 25 · 성공률 99.82%) |\n| 총 토큰 | **4,385,134,301** (≈ 4.39B) |\n| 비용 | **$4,176.45 USD** |\n| 추적된 키 | 6개 (`sk-markers-{nebula, nova, aurora, vertex, zenith, apex}-key`) |\n| 주력 모델 | `claude-opus-4-7` (99.23%의 비용 차지) |\n\n자세한 분석은 [라이브 사이트](https://toilet-nomad.mengmota.com)에서 확인하세요.\n\n---\n\n## 🏗️ 아키텍처\n\n```\n┌──────────────────────────────────────────────┐\n│  Cloudflare Worker (toilet-nomad.mengmota.com)│\n│  • 정적 자산 (HTML / CSS / JS)                │\n│  • Cache-Control: 1년, immutable              │\n│  • API: /api/healthz                          │\n└────────────────────┬─────────────────────────┘\n                     │\n                     ▼\n┌──────────────────────────────────────────────┐\n│  R2 Bucket (byeongithon-opus-stats)           │\n│  • total.csv · key_breakdown.csv              │\n│  • model_breakdown.csv · hourly.csv           │\n└──────────────────────────────────────────────┘\n```\n\n- **프론트엔드**: Vanilla TypeScript + 직접 만든 SVG 차트 (라이브러리 0)\n- **백엔드**: Cloudflare Worker (Hono 없음, 50 LOC 미만)\n- **데이터**: 정적 CSV 4종 (총합 / 키별 / 모델별 / 시간별)\n- **번들 크기**: 73 KB (Zod 포함)\n- **전체 크기**: ~700 KB (대부분 히어로 이미지)\n\n---\n\n## 🚀 빌드 \u0026 실행\n\n```bash\n# 의존성 설치\npnpm install\n\n# 검증\npnpm typecheck    # tsc --noEmit\npnpm lint         # biome check\npnpm lint:loc     # 250 LOC 룰 강제\npnpm test         # 36 단위 테스트\npnpm check        # 위 모두\n\n# 빌드\npnpm build        # dist/\n\n# 로컬 개발 (Wrangler)\npnpm dev          # http://localhost:8787\n\n# R2 업로드\npnpm upload:r2\n\n# 배포\npnpm deploy\n```\n\n---\n\n## 📁 디렉터리 구조\n\n```\n.\n├── .github/             # CI · 브랜치 룰셋 · 이슈 템플릿\n├── .omo/\n│   ├── plans/           # 작업 계획서 + 체크박스\n│   └── rules/           # TypeScript 250 LOC 룰\n├── data/                # 원본 CSV (R2 미러)\n├── public/              # 정적 HTML/CSS/이미지\n├── scripts/             # 빌드 + R2 업로드\n├── src/\n│   ├── lib/             # 데이터 레이어 (Zod 검증, CSV 파서, 집계, 포맷)\n│   ├── ui/              # 프론트엔드 컴포넌트 (각 250 LOC 미만)\n│   │   ├── dom.ts       # 작은 hyperscript 헬퍼\n│   │   ├── main.ts      # 엔트리\n│   │   └── render/      # 5개 섹션 렌더러\n│   └── worker/          # Cloudflare Worker\n├── test/                # vitest 단위 테스트\n├── biome.json\n├── tsconfig.json\n├── wrangler.toml\n└── package.json\n```\n\n---\n\n## 🧪 품질 보증\n\n- **TypeScript 초엄격 모드**: `strict` + `noUncheckedIndexedAccess` + `exactOptionalPropertyTypes` + `verbatimModuleSyntax`\n- **Biome 1.9.4**: `noExplicitAny`, `noNonNullAssertion`, `useImportType` 모두 error\n- **250 LOC 룰**: 모든 `.ts` 파일은 순수 LOC 250줄 미만 (`.omo/rules/typescript.md` 참조)\n- **TDD**: 36개 단위 테스트, 실제 CSV fixture 기반\n- **Lighthouse 100/100/100/100**: 성능 · 접근성 · 베스트 프랙티스 · SEO 모두 만점\n- **반응형**: 모바일 (390px) · 태블릿 (768px) · 데스크탑 (1440px) 검증\n\n---\n\n## 🤝 어트리뷰션\n\n이 사이트는 **단 하나의 프롬프트**로 만들어졌습니다.\n\n- 🤖 **[Oh My OpenAgent](https://github.com/code-yeongyu/oh-my-openagent)** · 빌드 + 배포 + QA 전 과정 자동화\n- 🔧 **웹사이트 제작 + 토큰 후원**: [@code-yeongyu](https://github.com/code-yeongyu)\n- 💸 **API 토큰 후원**: **[시지푸스랩스 (Sisyphus Labs)](https://sisyphuslabs.ai)** · 대기 명단 모집 중!\n- 📊 **데이터 출처**: 노마다마스 해커하우스 「변기톤」 · 주최 [@vkehfdl1 (Jeffrey Kim)](https://github.com/vkehfdl1), 발표 [@bunniesossdev](https://www.threads.com/@bunniesossdev)\n- 🎨 **히어로 이미지**: GPT Image 2 (OpenAI, Quotio 경유)\n\n---\n\n## 📜 라이선스\n\n[MIT](LICENSE) © 2026 [Yeongyu Kim](https://github.com/code-yeongyu)\n\n데이터는 노마다마스 해커하우스 「변기톤」 참가자들의 활동 결과입니다.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-yeongyu%2Fbyeongithon-opus-stats","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcode-yeongyu%2Fbyeongithon-opus-stats","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcode-yeongyu%2Fbyeongithon-opus-stats/lists"}