서포터즈 사이트를 공용 도메인(webforai.kr)의 병원별 서브도메인에 두기로 했다. 수백 곳으로 늘 때 이름을 코드가 지으면 "뷰"·"연세"처럼 여러 병원이 쓰는 이름에서 충돌이 나므로, 이 표를 서브도메인의 단일 원본으로 둔다. 컬럼 - subdomain: 공용 도메인 앞에 붙는 라벨 (viewpl → viewpl.webforai.kr) - clinic_slug: 워커 --clinic 값. 빌드 폴더·Vercel 프로젝트 이름에 쓰여 서브도메인과 다를 수 있다 - subdomain_assigned_at: 배정 시각. 색인 전환 전에 주소를 바꾸는 편이 싸므로 판단에 쓴다 제약 - subdomain·clinic_slug 각각 대소문자 무시 유니크 - 형식: 소문자·숫자·붙임표, 2~40자, 붙임표로 시작·끝 금지, 연속 붙임표 금지 - 예약어 70여개 차단. 메일·인증(mx·dmarc·autodiscover)을 병원에 내주면 메일 수신과 도메인 소유 확인이 깨지고, 회수하는 시점에는 이미 색인된 주소가 깨진다 배정: 뷰 viewpl · 원진 wonjin · 오라클 oracle. 오라클은 이 레지스트리가 성형외과 73곳으로 만들어져 등록돼 있지 않아 함께 넣었다. 운영 DB 적용 중 확인한 것: 마이그레이션 이력에 10개 중 3개만 기록돼 있고 나머지는 SQL 편집기로 직접 만든 상태다. 그래서 db push 대신 이 파일만 따로 적용했다. 20260406_clinic_registry.sql 에 있는 verified_by·verified_at·is_active 는 실제 표에 없다. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .claude | ||
| .vscode | ||
| data | ||
| doc | ||
| docs | ||
| evidence/viewclinic | ||
| plugins | ||
| public | ||
| reference | ||
| scripts | ||
| src | ||
| supabase | ||
| supporters | ||
| templates/supporters-astro | ||
| workers/supporters-build | ||
| .env.example | ||
| .gitignore | ||
| .vercelignore | ||
| CLAUDE.md | ||
| extracted_marketing_text.md | ||
| index.html | ||
| Medical Marketing Intelligence Report Prompt_01.28.2026.md | ||
| metadata.json | ||
| package-lock.json | ||
| package.json | ||
| PRD.md | ||
| README.md | ||
| tsconfig.json | ||
| vercel.json | ||
| Viewclinic Plan.md | ||
| vite.config.ts | ||
| 뷰성형외과_Marketing_Intelligence_Report.md | ||
Run and deploy your AI Studio app
This contains everything you need to run your app locally.
View your app in AI Studio: https://ai.studio/apps/d446f5f5-e089-404a-93ce-32a72f2f5108
Run Locally
Prerequisites: Node.js
- Install dependencies:
npm install - Set the
GEMINI_API_KEYin .env.local to your Gemini API key - Run the app:
npm run dev