尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證snore-checker 실험용 복제본
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
수면무호흡 환자의 약 85%가 진료를 받지 않는다. 정보는 있지만, 내 코골이가 병원에 가볼 만한 상태인지 스스로 판단하지 못해서 밴드·스프레이·각방으로 버틴다. 질문 9개에 답하면 내 코골이가 혼자 대처해도 되는지, 검사가 필요한지 판정(신호 약함 / 상담 권유 / 검사 권유)을 바로 받고, 검사가 필요하면 근처 수면클리닉의 원 페이지로 넘어가는 서비스다. 첫 질문에서 "내 코골이"와 "함께 자는 사람의 코골이" 중 하나를 고르고, 경로에 맞는 말로 묻는다. 함께 자는 사람의 코골이라면 리포트를 그 사람에게 링크로 보낼 수 있다. • 서비스 링크: https://snore-checker-lab.vercel.app • 제출 당시 버전: https://snore-check.vercel.app (원본 레포). 이 레포는 제출 뒤 메타 광고 1차 결과를 반영해 문제 정의와 화면을 다시 잡은 실험용 레포다. • 대상: 자기 코골이가 걱정인 당사자, 또는 함께 자는 사람의 코골이가 걱정인 사람. 누구에게 말을 걸지는 H1으로 검증한다 • 북극성 지표: 검사 권유 판정을 본 사람 중 병원에 연결된 비율(병원 외부 링크 클릭 또는 전화 걸기)檢視完整 README ↗
수면무호흡 환자의 약 85%가 진료를 받지 않는다. 정보는 있지만, 내 코골이가 병원에 가볼 만한 상태인지 스스로 판단하지 못해서 밴드·스프레이·각방으로 버틴다.
질문 9개에 답하면 내 코골이가 혼자 대처해도 되는지, 검사가 필요한지 판정(신호 약함 / 상담 권유 / 검사 권유)을 바로 받고, 검사가 필요하면 근처 수면클리닉의 원 페이지로 넘어가는 서비스다. 첫 질문에서 "내 코골이"와 "함께 자는 사람의 코골이" 중 하나를 고르고, 경로에 맞는 말로 묻는다. 함께 자는 사람의 코골이라면 리포트를 그 사람에게 링크로 보낼 수 있다.
제출 이후 변경: 크롤러가 매주 월요일 03:00(KST)에 GitHub Actions로 병원 데이터를 다시 수집해
frontend/src/data/*.json을 자동 커밋한다. 그래서 제출 뒤에도 이 저장소와 배포된 사이트의 병원 목록이 바뀔 수 있다.
| 과제 요구사항 | 어디에 있나 |
|---|---|
| 서비스가 배포된 링크 | https://snore-checker-lab.vercel.app (제출 당시 버전: https://snore-check.vercel.app) |
| 문제 정의 및 기획 과정 | 핵심 문서 표의 순서대로 읽으면 된다. 결정이 바뀐 과정은 기획 로그 |
| 주요 트러블슈팅 기록 | docs/troubleshooting.md |
| 크롤링 + 원 페이지 외부 링크 | 레즈메드 크롤링이 기본이고, 공공 데이터와 학회 목록으로 보강했다. ① 레즈메드 수면다원검사 병원찾기 337곳을 크롤링했다. 병원 카드의 "병원 정보 보기"가 레즈메드 병원 상세 페이지로 가고, 링크 337개가 모두 살아 있다. ② 레즈메드 목록만으로는 사는 시·군·구에 병원이 없는 인구가 20.4%라, 심평원 공공 데이터의 수면다원검사 실시기관을 더해 744곳으로 넓혔다(11.0%로 줄어든다). 레즈메드 좌표가 6곳 중 1곳꼴로 틀린 것도 이 데이터로 고쳤다. ③ 대한수면연구학회 목록을 크롤링해 73곳에 학회 배지를 달았다. 레즈메드 밖의 병원은 홈페이지(약 50곳, 매주 재크롤링으로 바뀐다)나 지도 검색으로 연결한다 (데이터 품질, 공급 공백) |
이 세 문서로 문제 → 해법 → 사업성이 이어진다.
| 순서 | 문서 | 목적 | 핵심 |
|---|---|---|---|
| 1 | 문제 정의 | 누구의 어떤 문제를 푸는지 | 현상은 환자의 약 85%가 진료를 받지 않는 것, 문제는 "내 코골이가 병원에 가볼 만한 상태인지 스스로 판단하지 못한다"(메인)와 경로(보조)다. 갈래를 펼친 5Why로 골랐고, 고쳐 온 과정은 문제 정의 전략에 있다 |
| 2 | 솔루션 방향 | 가설마다 무엇으로 대응하고 어떻게 확인하는지 | 가설 H1~H4마다 솔루션 단계 하나(첫 질문으로 경로 나누기, 판정, 근처 수면클리닉, 공유 링크)를 붙이고 퍼널 지표로 확인한다. 목적은 병원에 보내는 게 아니라 맞는 대처를 고르게 하는 것이다. 크롤링 요구 대응 포함 |
| 3 | 비즈니스 임팩트 | 누가 돈을 내고 왜 내는지 | 고객은 검사하는 병원이다. 병원 광고는 이미 병원을 찾는 사람에게만 닿고, 숨은 환자는 코골이를 단순 코골이로 여겨 용품을 찾고 병원은 찾지 않는다. 이 서비스는 검사 권유로 판정받은 사람을 넘긴다. 핵심 숫자는 병원 연결 1건당 비용. 진료받지 않는 환자 약 110만 명, 그중 30~60대 남성 약 78만 명. 수익은 목록 정액 광고(건당 수수료는 의료법 위반) |
| 궁금한 것 | 문서 | 핵심 |
|---|---|---|
| 무엇이 틀릴 수 있나 | 가설 검증 | H1 당사자에게 말을 거는 게 병원까지 더 잘 이어진다(1차 광고 뒤 뒤집어 검증 중), H2 판단이 안 서서 안 간다(메인), H3 경로(보조), H4 배우자 경로에서 당사자는 따라간다. 2차 광고는 경로별 결과 조회 100건에서 한쪽이 70% 이상인지로 H1을 판정한다 |
| 왜 이렇게 정했나 | 기획 로그, 문제 정의 전략 | 10월 2일 방향 재정리, 10월 3일 가설 재정리, 10월 6일 H1 재검토·문제 정의 재편·화면 설계(현재 결론) |
| 화면은 어떻게 짰나 | 화면 설계 | S1 랜딩·첫 질문(경로 고르기) → S2 질문 9개 → S3 리포트 → S4 근처 수면클리닉. 40~60대 접근성 기준 |
| 데이터와 구현은 | 아키텍처, 작업별 스펙 | DB 없이 크롤링 JSON을 커밋한다. 레즈메드 + 심평원 공공 데이터 + 학회 목록 |
| 제대로 만들었나 | 검증: 근처 수면클리닉, 접근성과 문구, 병원 데이터 | 작업마다 체크리스트와 결과, 가상 사용자 테스트 |
| 어디서 막혔나 | 트러블슈팅 | 레즈메드 데이터가 JS 문자열 안에 있음, 좌표 6곳 중 1곳 오류, 수집 차단, 메타 토큰 만료, GA4 확인, 죽은 홈페이지 링크 등 9건 |
참고: 기술 스택 근거 · 에이전트 운영 기록 · 구현 계획(작업 폴더별 plan.md, 길다)
★ = 꼭 읽을 문서
docs/
├── problem-definition.md ★ 문제 정의
├── solution-direction.md ★ 솔루션 방향
├── business-impact.md ★ 비즈니스 임팩트
├── problem-framing.md 문제 정의 전략 (5Why, 고쳐 온 과정)
├── validation.md 가설 검증
├── planning-log.md 기획 로그
├── meta-ads/ 메타 광고 유입 검증
│ ├── strategy.md 전략·결정·소재
│ ├── creatives/ 소재 이미지
│ └── results/ 결과 리포트
├── research/ 기획 문서의 근거 자료
│ ├── evidence.md 수치 원출처 (환자 수·유병률·유배우율·수가)
│ ├── benchmark.md 국내외 서비스 46건 비교
│ ├── clinic-survey.md 국내 수면클리닉 95곳 홈페이지 전수 조사
│ ├── competitors.md 기존 플레이어
│ ├── voc.md 환자·가족 후기, 아버지 인터뷰
│ ├── awareness.md 대중 인지도
│ ├── snoring.md 코골이와 수면무호흡
│ ├── snoring-surgery.md 단순 코골이 수술 근거
│ ├── business-model.md 병원 수입·의료법·광고
│ ├── marketing.md 수면클리닉 마케팅
│ ├── retention.md 진료 이후 리텐션
│ ├── crawl-targets.md 크롤링 대상
│ ├── accessibility.md 40~60대 접근성 기준 (→ work/02)
│ ├── copy-audit.md 화면 문구 감사 (→ work/02)
│ ├── data-quality/ 병원 데이터 품질 검사 (→ work/03)
│ └── supply-gap/ 시·군·구별 병원 공백 (→ work/03)
├── ux-spec.md 화면 설계 (화면 전체)
├── architecture.md 아키텍처 (데이터 흐름·계약·분석)
├── work/ 작업별 spec.md(스펙)·plan.md(구현 계획)·verification.md(검증)
│ ├── 01-clinic-list/ S4 근처 수면클리닉
│ ├── 02-a11y-copy/ 40~60대 접근성과 쉬운 문구 (+ screenshots/)
│ ├── 03-clinic-data/ 병원 데이터 보강 (+ persona-test.md 가상 사용자 테스트)
│ ├── 05-meta-report/ 메타 광고 결과 리포트 스크립트
│ ├── 08-measurement/ 판정 단계별 퍼널 측정
│ └── 09-landing-paths/ 랜딩 재설계와 당사자·배우자 경로
├── troubleshooting.md 트러블슈팅
├── tech-stack.md 기술 스택 근거
├── agent-log.md 에이전트 운영 기록
└── archive/ 범위에서 뺀 조사 (기면증·렘수면, 쓰지 않은 질문지)
기획·조사
| 작업 | 내용 | 근거 |
|---|---|---|
| 문제 정의와 재정의 | 직접 사례에서 출발해 "괴로운 사람과 병원에 갈 사람이 다르다"로 시작했다. 1차 광고와 일반 키워드 글 4,207건을 보고 배우자 전제를 빼고, 갈래를 펼친 5Why로 "스스로 판단하지 못한다"를 문제로 골랐다. 문장이 바뀐 8단계를 기록했다 | 문제 정의, 문제 정의 전략, 근거 자료 |
| 경쟁·벤치마크 | 국내외 서비스 46건을 직접 확인했다. 옆에서 본 것으로 체크해 중립 병원 목록까지 잇는 곳은 0건이었다 | 벤치마크 |
| 수면클리닉 전수 조사 | 학회 수면클리닉 95곳 홈페이지를 확인했다. 배우자에게 직접 말을 거는 곳은 0곳이었다 | 전수 조사 |
| 사업성 | 광고주(검사하는 병원)의 문제, 시장 크기, 의료법상 가능한 수익 모델을 정리했다 | 비즈니스 임팩트 |
| 공급 공백 분석 | 레즈메드 목록만으로는 시·군·구 230곳 중 124곳(인구 20.4%)에 병원이 없었다. 전체 검사기관으로 넓히면 11.0%로 준다. 군 82곳 중 78곳은 여전히 0곳이다 | 공급 공백 |
| 유입 검증 | 1차: 검색하지 않는 배우자를 데려올 수 있는지 메타 광고(8.5만 원, 소재 5개)로 쟀다(분석). 2차: 체크 완료로 최적화해 경로별·판정 단계별 퍼널로 H1·H2를 본다. make meta-report 한 번으로 메타 광고비와 GA4 퍼널을 합쳐 병원 연결(링크·전화) 1건당 비용까지 리포트로 만든다 | 메타 광고 전략 |
서비스
| 작업 | 내용 |
|---|---|
| 랜딩과 경로 | 약속("코골이, 병원에 가볼 만할까요?")과 첫 질문만 둔 랜딩. "내 코골이 / 함께 자는 사람의 코골이"를 고르면 같은 질문 9개를 경로에 맞는 말로 묻는다. 판정 기준은 같다 |
| 수면 체크 리포트 | 병일 수 있는지(3단계), 치료하면 무엇이 나아지는지, 방치하면 어떤지를 비교 막대로 보여준다. 검사 받는 법과 비용을 붙였다 |
| 리포트 공유 | 함께 자는 사람의 코골이를 체크했다면 카톡 등으로 그 사람에게 보낸다. 답은 주소의 # 뒤에만 담아 저장·전송하지 않는다 |
| 근처 수면클리닉 | 744곳을 시·도별로 보거나, 누를 때만 위치 권한을 받아 가까운 순으로 본다. 전화하기와 병원 원 페이지 링크 |
| 분석 | GA4·메타 픽셀로 경로 선택 → 체크 완료 → 병원 목록 → 병원 연결(링크 클릭·전화 걸기)을 기록한다. 경로와 판정 단계는 GA 사용자 속성으로 저장해 사람 수 기준으로 나눠 본다. 픽셀에는 둘을 ClinicClick 하나로 보낸다. 개인정보 처리방침을 붙였다 |
데이터
| 작업 | 내용 | 근거 |
|---|---|---|
| 크롤러 | 레즈메드 병원찾기와 학회 목록을 매주 GitHub Actions로 수집해 JSON으로 커밋한다. DB와 백엔드가 없다 | 아키텍처, 기술 스택 |
| 데이터 품질 | 레즈메드 좌표가 6곳 중 1곳꼴로 500m 넘게 틀린 것을 찾아 공공 데이터로 고쳤다. 상세 링크 337개가 모두 살아 있는지 확인했다 | 데이터 품질 |
| 목록 확장 | 337곳에서 심평원 수면다원검사 실시기관 744곳으로 넓히고, 학회 목록 병원 73곳에 배지를 달았다 | 공급 공백 |
품질
| 작업 | 내용 | 근거 |
|---|---|---|
| 40~60대 접근성 | 글자 16px 이상(본문 18px), 터치 영역 48px 이상, 글자 대비 7:1. 글자 130%·200%와 폭 320px에서 깨지지 않게 했다. 브라우저 측정 88개를 make gate와 CI에 넣었다 | 기준과 측정값, 스크린샷 66장 |
| 쉬운 문구 | 화면 문구 148건을 감사해 35건을 고쳤다. 코 고는 사람을 부르는 말은 경로별로 정했다(배우자 경로는 주어 없이, 필요한 곳만 "코 고는 사람") | 문구 감사, DESIGN.md 용어표 |
| 검증 | 단계마다 검증 기준을 먼저 쓰고, 구현과 다른 세션이 판정했다 | 작업별 검증 |
| 가상 사용자 테스트 | 에이전트가 40~60대 배우자, 공유받은 남편, 군 지역, 위치 권한 거부 등 페르소나 8명으로 배포본을 첫 화면부터 병원 링크까지 써봤다. 모호한 비용 문구, 중복 지도 링크를 고쳤고, 신호가 약한데 위험 막대가 나오는 문제 등 4건은 결정이 필요한 과제로 남겼다. 실제 사용자 근거는 아니다 | 가상 사용자 테스트 |
| 작업 방식 | 문서 승인 전에는 코드 수정을 훅으로 막고, 푸시 전후로 같은 게이트(타입·린트·테스트·빌드·접근성)를 돌렸다. 에이전트에게 맡긴 일과 버린 것을 기록했다 | 에이전트 운영 기록, 트러블슈팅 |
| 출처 | 쓰는 곳 | 갱신 |
|---|---|---|
| 레즈메드 수면다원검사 병원찾기 | 병원 337곳, 병원 상세 페이지 링크 | 매주 GitHub Actions |
| 건강보험심사평가원 "전국 병의원 및 약국 현황" (공공누리 제1유형) | 좌표 교정, 수면다원검사 실시기관 목록 확장 | 분기마다 수동 (절차) |
| 대한수면연구학회 수면클리닉 찾기 | 학회 목록 배지 | 매주 GitHub Actions |
Node.js 24+, pnpm이 필요하다 (corepack enable pnpm).
make setup # 의존성 설치, frontend/.env.local 생성
make dev # http://localhost:3000
make crawl # 크롤링 → frontend/src/data/hospitals.json
make meta-report # 메타 광고 + GA4 숫자 → docs/meta-ads/results/<날짜>.md (설정: reporting/.env.local)
make gate # 타입체크·린트·포맷·테스트·빌드, 크롤러 테스트, 접근성 측정
DB와 백엔드 서버 없이 동작한다. 체크 응답은 저장하거나 보내지 않고 리포트 주소의 # 뒤에만 담는다. 근거는 tech-stack.
Next.js (App Router) · Tailwind CSS v4 · shadcn/ui · Playwright + axe (접근성 측정) · GitHub Actions (크롤러, 게이트) · Vercel · GA4