옆에서 본 코골이, 수면무호흡증일 수 있는지 3분 무료진단으로 확인해요
Translation pending
HealthTypeScript · HTMLGitHub @fe1220OnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
코골이체커: 옆에서 본 것만으로 하는 3분 코골이 무료진단과 근처 수면클리닉 연결
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
남편이 코를 곤다. 괴로운 건 아내인데, 병원에 가야 하는 건 남편이다. 아내는 이게 병인지, 치료되는지, 어디로 가면 되는지 몰라서 참고 지낸다. 옆에서 본 것만으로 3분 무료진단을 하고, 수면무호흡증일 수 있는지·치료되는지·방치하면 어떤지를 리포트로 받고, 근처 수면클리닉의 원 페이지로 넘어가는 서비스다. 리포트는 남편에게 링크로 보낼 수 있다. • 서비스 링크: https://snore-check.vercel.app • 대상: 코 고는 사람과 같이 사는 40~60대 아내 • 북극성 지표: 리포트를 본 사람 중 병원에 연결된 비율(병원 외부 링크 클릭 또는 전화 걸기) 제출 이후 변경: 크롤러가 매주 월요일 03:00(KST)에 GitHub Actions로 병원 데이터를 다시 수집해 frontend/src/data/*.json을 자동 커밋한다. 그래서 제출 뒤에도 이 저장소와 배포된 사이트의 병원 목록이 바뀔 수 있다. 이 세 문서로 문제 → 해법 → 사업성이 이어진다.Read the full README ↗
남편이 코를 곤다. 괴로운 건 아내인데, 병원에 가야 하는 건 남편이다. 아내는 이게 병인지, 치료되는지, 어디로 가면 되는지 몰라서 참고 지낸다.
옆에서 본 것만으로 3분 무료진단을 하고, 수면무호흡증일 수 있는지·치료되는지·방치하면 어떤지를 리포트로 받고, 근처 수면클리닉의 원 페이지로 넘어가는 서비스다. 리포트는 남편에게 링크로 보낼 수 있다.
제출 이후 변경: 크롤러가 매주 월요일 03:00(KST)에 GitHub Actions로 병원 데이터를 다시 수집해
frontend/src/data/*.json을 자동 커밋한다. 그래서 제출 뒤에도 이 저장소와 배포된 사이트의 병원 목록이 바뀔 수 있다.
| 과제 요구사항 | 어디에 있나 |
|---|---|
| 서비스가 배포된 링크 | https://snore-check.vercel.app |
| 문제 정의 및 기획 과정 | 핵심 문서 표의 순서대로 읽으면 된다. 결정이 바뀐 과정은 기획 로그 |
| 주요 트러블슈팅 기록 | docs/troubleshooting.md |
| 크롤링 + 원 페이지 외부 링크 | 레즈메드 크롤링이 기본이고, 공공 데이터와 학회 목록으로 보강했다. ① 레즈메드 수면다원검사 병원찾기 337곳을 크롤링했다. 병원 카드의 "병원 정보 보기"가 레즈메드 병원 상세 페이지로 가고, 링크 337개가 모두 살아 있다. ② 레즈메드 목록만으로는 사는 시·군·구에 병원이 없는 인구가 20.4%라, 심평원 공공 데이터의 수면다원검사 실시기관을 더해 744곳으로 넓혔다(11.0%로 줄어든다). 레즈메드 좌표가 6곳 중 1곳꼴로 틀린 것도 이 데이터로 고쳤다. ③ 대한수면연구학회 목록을 크롤링해 73곳에 학회 배지를 달았다. 레즈메드 밖의 병원은 홈페이지(약 50곳, 매주 재크롤링으로 바뀐다)나 지도 검색으로 연결한다 (데이터 품질, 공급 공백) |
이 세 문서로 문제 → 해법 → 사업성이 이어진다.
| 순서 | 문서 | 목적 | 핵심 |
|---|---|---|---|
| 1 | 문제 정의 | 누구의 어떤 문제를 푸는지 | 괴로운 건 배우자, 병원에 가야 하는 건 당사자다. 배우자에게 판단 기준과 경로가 없는 게 메인 막힘이다. 타겟은 배우자 있는 환자의 74%가 몰린 40~60대 |
| 2 | 솔루션 방향 | 가설마다 무엇으로 대응하고 어떻게 확인하는지 | 가설 H1~H4마다 솔루션 단계 하나(배우자에게 닿기, 체크 결과, 근처 수면클리닉, 공유 링크)를 붙이고 퍼널 지표로 확인한다. 크롤링 요구 대응 포함 |
| 3 | 비즈니스 임팩트 | 누가 돈을 내고 왜 내는지 | 고객은 검사하는 병원이다. 병원 광고는 이미 병원을 찾는 사람에게만 닿고, 이 서비스는 판단을 마치고 경로까지 받은 배우자를 넘긴다. 핵심 숫자는 병원 연결 1건당 비용. 진료받지 않는 환자 약 110만 명, 그중 타겟 약 53만 명. 수익은 목록 정액 광고(건당 수수료는 의료법 위반) |
| 궁금한 것 | 문서 | 핵심 |
|---|---|---|
| 무엇이 틀릴 수 있나 | 가설 검증 | 가설을 문제 정의 순서대로 H1~H4로 나눴다(배우자가 동기가 크다, 판단 기준을 몰라서 참는다, 경로가 없으면 행동으로 못 넘어간다, 당사자는 따라간다). 근거는 논문 14편과 설문·인터뷰. 메타 광고는 유입 검증이 1순위다. 커뮤니티 글 670건은 H2와 같은 방향이고, H4는 "권했는데 거부"가 더 많아 권유만으로는 부족할 수 있다는 신호다 |
| 왜 이렇게 정했나 | 기획 로그 | 검토한 질문과 결론, 10월 2일 방향 재정리, 10월 3일 가설 재정리(현재 결론) |
| 화면은 어떻게 짰나 | 화면 설계 | S1 체크 시작 → S2 체크 → S3 리포트 → S4 근처 수면클리닉. 40~60대 접근성 기준 |
| 데이터와 구현은 | 아키텍처, 작업별 스펙 | DB 없이 크롤링 JSON을 커밋한다. 레즈메드 + 심평원 공공 데이터 + 학회 목록 |
| 제대로 만들었나 | 검증: 근처 수면클리닉, 접근성과 문구, 병원 데이터 | 작업마다 체크리스트와 결과, 가상 사용자 테스트 |
| 어디서 막혔나 | 트러블슈팅 | 레즈메드 데이터가 JS 문자열 안에 있음, 좌표 6곳 중 1곳 오류, 수집 차단, 메타 토큰 만료, GA4 확인, 죽은 홈페이지 링크 등 9건 |
참고: 기술 스택 근거 · 에이전트 운영 기록 · 구현 계획(작업 폴더별 plan.md, 길다)
★ = 꼭 읽을 문서
docs/
├── problem-definition.md ★ 문제 정의
├── solution-direction.md ★ 솔루션 방향
├── business-impact.md ★ 비즈니스 임팩트
├── 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/ 메타 광고 결과 리포트 스크립트
├── troubleshooting.md 트러블슈팅
├── tech-stack.md 기술 스택 근거
├── agent-log.md 에이전트 운영 기록
└── archive/ 범위에서 뺀 조사 (기면증·렘수면, 쓰지 않은 질문지)
기획·조사
| 작업 | 내용 | 근거 |
|---|---|---|
| 문제 정의와 타겟 근거 | 직접 사례에서 출발해 "괴로운 사람과 병원에 갈 사람이 다르다"로 문제를 좁혔다. 심평원 진료 인원·통계청 유배우율·부부 나이 차로 40~60대 배우자를 타겟으로 정했다 | 문제 정의, 근거 자료 |
| 경쟁·벤치마크 | 국내외 서비스 46건을 직접 확인했다. 옆에서 본 것으로 체크해 중립 병원 목록까지 잇는 곳은 0건이었다 | 벤치마크 |
| 수면클리닉 전수 조사 | 학회 수면클리닉 95곳 홈페이지를 확인했다. 배우자에게 직접 말을 거는 곳은 0곳이었다 | 전수 조사 |
| 사업성 | 광고주(검사하는 병원)의 문제, 시장 크기, 의료법상 가능한 수익 모델을 정리했다 | 비즈니스 임팩트 |
| 공급 공백 분석 | 레즈메드 목록만으로는 시·군·구 230곳 중 124곳(인구 20.4%)에 병원이 없었다. 전체 검사기관으로 넓히면 11.0%로 준다. 군 82곳 중 78곳은 여전히 0곳이다 | 공급 공백 |
| 유입 검증 | 검색하지 않는 배우자를 데려올 수 있는지 메타 광고(10만 원, 소재 5개)로 잰다. make meta-report 한 번으로 메타 광고비와 GA4 퍼널을 합쳐 병원 연결(링크·전화) 1건당 비용까지 리포트로 만든다 | 메타 광고 전략 |
서비스
| 작업 | 내용 |
|---|---|
| 배우자 체크 | 옆에서 본 것만 묻는 9문항. 한 화면에 한 문항 |
| 수면 체크 리포트 | 병일 수 있는지(3단계), 치료하면 무엇이 나아지는지, 방치하면 어떤지를 비교 막대로 보여준다. 검사 받는 법과 비용을 붙였다 |
| 리포트 공유 | 카톡 등으로 남편에게 보낸다. 답은 주소의 # 뒤에만 담아 저장·전송하지 않는다 |
| 근처 수면클리닉 | 744곳을 시·도별로 보거나, 누를 때만 위치 권한을 받아 가까운 순으로 본다. 전화하기와 병원 원 페이지 링크 |
| 분석 | GA4·메타 픽셀로 체크 완료 → 리포트 → 병원 연결(링크 클릭·전화 걸기)을 기록한다. 픽셀에는 둘을 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