운영 원칙
무엇을 하는 곳인가
- 가입 없이 병원 이름 아래 경험을 남긴다. 계정도 비밀번호도 없다.
- 서버에 IP 원문이 없다. 대량 작성을 막는 장치는 접속 정보를 남기지 않는 별도 카운터로 처리한다.
- 작성 직후 한 번 보이는 코드로만 자기 글을 고치거나 지운다. 코드를 잃으면 본인 확인 수단이 없다. 삭제 요청은 신고 큐에서 사람이 보지만 작성자로 인정하지는 못한다.
- 병원이 요청하면 그 기록의 본문만 먼저 가리고, 정해진 기간 안에 작성자가 이의를 제기하면 되돌린다. 신원이 확인되기 전에는 요청 한 번에 기록 1건만 바로 가리고, 확인되지 않은 요청이 쌓이면 사람이 먼저 보고 정한다.
- 제3자 신고만으로는 아무것도 사라지지 않는다. 기관·법원의 결정은 절차대로 이행하고 그 사실을 남긴다.
운영 기준
- 약속은 하나("서버에 IP 원문 없음")이고 정책이 아니라 구조로 지킨다.
- 가짜 후기를 올리지 않는다. 운영자가 쓰는 글에는 특정 병원을 넣지 않는다.
- 정보 제공과 알선의 경계를 지킨다. 병원에서 돈을 받지 않고 수수료도 받지 않는다.
- 브로커·도배는 '특정인 지목 금지'와 '자동 탐지' 두 규칙으로 막는다.
- 외부 압박에는 절차대로 이의를 제기하되, 적법한 절차 앞에서는 한계를 인정한다.
수익 원칙
이달 수입 0원 · 광고 슬롯 0개
익명 구조와 계층별 로그
우리 DB에는 IP 원문도, IP 해시도, 초 단위 작성 시각도 없습니다. 작성일은 날짜까지만 남습니다. 다만 CDN·호스팅 공급자의 로그는 위 표의 기간 동안 보관되며, 그 기간 안에서는 법원 명령 시 제공될 수 있고 우리 기록과 결합하면 게시 시점이 좁혀질 수 있습니다.
표는 옆으로 밀어 볼 수 있습니다.
| 계층 | 남는 것 | 이용자 IP | 정밀 시각 | 보관 기간 | 결합 시 특정 가능 창 | 우리 설정 |
|---|---|---|---|---|---|---|
| Cloudflare 프록시·WAF·레이트리밋 규칙 | 요청 메타데이터(경로·IP·UA) | 포함 | 포함 | 숫자 기간은 공개되지 않음 — 공급자의 고객용 데이터 처리 부속 계약 기준으로 서비스 계약이 끝나거나 처리가 필요 없게 될 때까지. 무흔 계정 화면에서 조회할 수 있는 보안 이벤트 기록은 최근 31일분(계정 조회 화면 기준) | 보관 기간 안에서는 POST /api/reviews 요청 시각과 우리 DB의 병원·작성일을 맞춰 게시 시점을 초 단위로 좁힐 수 있다. 리뷰 주소(/r/…)와 카드 이미지 요청 경로에는 기록 식별자가 들어 있어, 그 주소를 연 요청은 경로와 IP가 함께 남는다 | Logpush 사용 안 함. 제출 직후 화면은 기록 식별자가 든 주소를 자동으로 요청하지 않는다(카드는 누른 뒤에만) |
| CDN·호스팅의 GET 요청 로그(Cloudflare·무흔 서버) | 요청 주소 전체(경로와 쿼리 문자열). 예: 병원 검색어(검색 결과 화면 /search?type=hospital&q=검색어, 검색창 자동 완성 /api/hospitals/search?q=검색어), 기록을 쓰려고 고른 병원(/write?hospital=병원 주소), 공유 링크(/r/기록 식별자?utm_source=kakao) | 포함(Cloudflare). 무흔 서버는 웹 서버 접속 로그를 꺼 남기지 않음 | 포함 | Cloudflare 프록시 행과 같은 공급자 보관 기간(숫자 기간은 공개되지 않음) | 보관 기간 안에서는 같은 IP의 검색어 → 병원 선택 → 기록 제출(POST /api/reviews) → 공유 링크 요청이 차례로 이어져, IP에서 병원으로, 병원에서 기록으로 좁혀질 수 있다 | 앱 코드는 요청 주소의 쿼리 문자열을 로그로 남기지 않는다(경로의 틀만 남긴다). 무흔 서버의 웹 서버(nginx) 접속 로그는 끈다. Cloudflare가 남기는 요청 로그는 우리 설정으로 끌 수 없어 이 표로 알린다 |
| Cloudflare Turnstile | 토큰 발급·검증(방화벽이 보안 확인 화면을 띄우면 그 확인도) | 포함(Cloudflare 처리) | 포함 | 공급자가 숫자 기간을 공개하지 않음 — 공급자의 고객용 데이터 처리 부속 계약 기준(서비스 계약이 끝나거나 처리가 필요 없게 될 때까지). 공급자가 봇 감지 개선에 쓰는 신호의 보관 기간은 공개되어 있지 않음(보안 확인 화면의 신호도 같다) | 같음 | 서버 검증 시 remoteip를 보내지 않음 |
| 서버 메모리(속도 제한 카운터 등 데이터베이스 밖 값) | HMAC(일일 솔트, IP 키) 앞 32자 → 건수. 같은 서버 메모리에 공감 판정 값·질문 카운터·연산 증명 사용 표시·배지와 전문가 증빙 캡처 이미지(24시간)도 따로 둔다 | 해시만 | 창 단위(10분·1시간·하루) | 최대 25시간(만료 뒤 1분 안에 지운다). 서버를 다시 시작하면 사라진다 | 키가 남아 있는 최대 25시간 동안 같은 IP의 요청 건수만 연결 가능. 제출 카운터(10분 창) 때문에 제출이 10분 단위로 남는다 | 파일·데이터베이스·백업·로그에 쓰지 않는다. 솔트는 날마다 서버 메모리 안에서 새로 만들고 어디에도 저장하지 않아, 서버 디스크나 백업만으로는 IP를 되돌릴 수 없다(실행 중인 서버 메모리를 읽을 수 있는 사람은 값이 남은 동안 이을 수 있다). 연산 증명은 쓴 챌린지의 난수 해시만 챌린지 만료 1분 뒤까지 둔다(IP와 잇지 않음) |
| Cloudflare Email Routing | 수신 메일(병원·기관 발신) | 발신 서버 IP | 포함 | 처리 기록(보낸·받는 주소·제목·메일 고유번호·처리 결과)은 무흔 계정 화면에서 최근 31일분 조회(계정 조회 화면 기준). 공급자는 메일 본문을 저장하지 않는다고 밝힘 | 이용자와 무관 | 원문은 운영 전용 메일함으로 전달 — 그 메일로 접수한 처리 기록이 남아 있는 동안 함께 두고(사건이 끝나고 3년), 처리 기록이 없는 메일은 받은 날부터 3년이 지나면 운영자가 매달 지운다(메일과 처리 기록의 연결을 확인할 수 없으면 확인될 때까지 둔다) |
| 서버 애플리케이션 로그(iwinv 서버) | 앱의 경고·오류 줄(이벤트 이름·경로의 틀·결과). 요청마다 찍히는 줄은 버린다 | 없음 | 포함(경고·오류 줄의 시각) | 최대 7일(시스템 로그 500MB 상한, 먼저 닿는 쪽에서 오래된 것부터 지움) | 요청마다 찍히는 줄을 버려 기록 제출 요청의 시각이 쌓이지 않는다. 경고·오류가 난 요청만 그 시각이 남는다 | 앱 코드는 요청 정보(IP·쿼리·본문)를 로그로 남기지 않는다. 요청 줄은 버리고, 서버의 시스템 로그 보관을 7일·500MB로 묶는다 |
| nginx 웹 서버 로그(iwinv 서버) | 접속 로그는 끈다. 오류 로그는 심각한 오류만 | 없음(접속 로그 없음. 이용자 요청은 Cloudflare를 거쳐 와 오류 줄에도 Cloudflare 주소만 남는다) | 포함(오류 로그) | 최대 7일(시스템 로그 500MB 상한, 서버 애플리케이션 로그와 같음) | 접속 로그가 없어 요청끼리 잇지 못한다 | 접속 로그를 끄고, 경로·검색어가 남는 일반 오류 줄은 쓰지 않는다. 요청 IP를 복원하는 설정을 넣지 않는다 |
| PostgreSQL 로그(iwinv 서버) | 오류 로그(오류 종류와 메시지. SQL 문장 원문과 제약 위반 행 값은 남기지 않는다) | 없음 | 포함 | 최대 7일(요일별 파일을 돌려 쓴다) | 없음 | SQL 문장 기록 끔(log_statement=none). 오류가 난 문장 원문과 제약 위반 값(DETAIL)도 남기지 않는다 |
| 데이터베이스 백업(같은 서버·서버 밖 사본) | DB 전체 사본(하루 한 번 내보낸 파일). 서버 밖 사본은 암호화(AES-256)해 Cloudflare R2에 둔다 | 없음 | 없음. PITR을 쓰지 않음, 일일 백업만(시각은 백업 시점 단위) | 같은 서버 7일, 서버 밖 사본 7일 | 없음. 단 삭제된 본문이 백업 보관 기간(7일) 동안 사본에 남는다 | PITR(시점 복원)을 쓰지 않고 하루 한 번 내보낸 사본만 둔다. 7일이 지난 사본은 지운다 |
| 우리 DB | 기록(본문·사실 항목·태그, 날짜만 있는 작성일), 삭제 코드의 HMAC 값, 처리 기록 | 없음 | 없음 | 항목마다 다르다(기록은 있는 동안, 처리 기록은 사건이 끝나고 3년 — 항목별 규칙은 무흔이란 페이지의 보관 표) | 초 단위 시각은 없지만, 행이 저장된 순서(같은 날 안의 작성 순서)는 DB 사본(백업·덤프)에 남을 수 있다 | — |
| Anthropic API | 스크리닝·필터에 보낸 본문 | 서버 IP만 | 포함 | 30일 안에 자동 삭제(이용정책 위반으로 표시되면 최대 2년) | 본문은 우리 DB에도 있다 | 해외 AI 전송 고지(아래 절) |
| Resend | 병원·운영자에게 보낸 메일 | 이용자 없음 | 포함 | 발송 기록·메일 내용 30일(무료 요금제 기준), 공급자 백업 7일 | 이용자와 무관 | 운영 다이제스트에는 검색어 원문을 싣지 않는다(길이·건수만) |
| GitHub Actions | 병원 데이터 수집 로그 | 없음 | 포함 | 워크플로 로그 90일 뒤 자동 삭제(저장소 설정 기준) | 없음 | — |
공감
- 공감은 기록·답글마다 한 기기에서 하루(한국 시간)에 한 번 셉니다. 브라우저에 저장된 값을 지우면 같은 기기도 새 기기로 셉니다.
- 누른 날 안에 다시 누르면 취소됩니다. 다음 날부터는 취소할 수 없습니다. 무흔은 누가 눌렀는지 기록하지 않아, 지난 공감이 어느 기기에서 온 것인지 알 수 없습니다.
기록이 가려지고 지워지는 절차
병원(당사자) 요청
- 대상 기록과 문장, 사유를 적으면 접수 즉시 본문이 가려집니다. 요청 한 번에 기록 1건씩 받습니다.
- 먼저 병원 신원 확인을 기다립니다. 신원 확인은 접수 후 7일 안에 합니다. 확인되지 않으면 기록이 복원됩니다. 확인되지 않은 요청이 여러 건 쌓이면 그 뒤 요청은 바로 가리지 않고 운영자가 확인한 뒤 처리합니다.
- 신원이 확인되면 절차가 이어집니다. 접수 30일 뒤 게시자가 유지를 원하면 복원되고, 아니면 삭제됩니다. 운영자는 내용의 진위를 판정하지 않습니다.
제3자 신고
신고만으로 기록이 가려지거나 삭제되지 않습니다. 접수 순서대로 사람이 판단합니다.
기관·법원·수사
기관·법원의 결정은 절차대로 이행하고 그 사실을 남긴다.
삭제된 자리 표시: '절차에 따라 삭제된 기록' / '기관 요구로 삭제됨 · …'
탐지 규칙과 조정 기록
보류는 삭제가 아닙니다. 사람이 확인한 뒤 공개하거나 거부합니다.
| 규칙 | 현재 값 |
|---|---|
| 같은 병원·같은 방향, 오늘+어제 건수 기준(보류) | 5 |
| 같은 병원·방향 무관, 최근 7일 건수 기준(보류) | 10 |
| 같은 병원·같은 방향, 최근 7일 건수 기준(보류) | 7 |
| 같은 병원 만족 단독 기록 연속 건수 기준(보류) | 3 |
| 본문 유사도 기준값(보류) | 0.8 |
| 날짜 | 조정 내용 |
|---|---|
| 조정 기록이 없습니다. | |
병원 답변권
답변은 해당 기록에 적힌 사실에 대한 반박만 게재합니다. 경력·수상·학회 활동·치료 효과·가격·할인·다른 의료기관·예약 안내·연락처는 게재하지 않습니다.
삭제 코드와 그 한계
- 삭제 코드는 기록을 제출한 직후 화면에 한 번만 보입니다.
- 병원이 요청하면 30일간 본문이 가려집니다. 그동안 삭제 코드로 내 기록 관리에서 '유지'를 누르면 30일 뒤 복원되고, 누르지 않으면 삭제됩니다.
- 코드를 잃으면 본인 확인 방법이 없습니다.
1인 개원 의원 병원명의 한계
의원 이름이 원장 한 사람을 가리키는 경우가 있습니다. 기록은 병원 이름 아래 남고, 의료인 개인의 인격·자질 평가는 쓸 수 없습니다.
운영 주체
- 서비스명
- 무흔
- 운영 주체
- 확정 전
- 대표
- 확정 전
- 주소
- 확정 전
- 개인정보 보호책임자
- 확정 전
- 연락 창구
- 확정 전
- 자문 법률사무소
- 없음(자문 전)
- 운영비 부담
- 확정 전
'확정 전'으로 적은 항목은 아직 정하지 않은 값입니다.
해외 AI 전송 고지
작성 내용 점검을 위해 해외 AI 서비스(Anthropic, 미국)로 전송됩니다. 무흔은 저장하지 않고, 공급자는 최대 30일 보관한 뒤 지웁니다(정책 위반으로 표시되면 최대 2년). 공급자는 이 내용을 AI 학습에 쓰지 않습니다.
콘텐츠 정책 요약
- 언제, 무슨 시술이었고, 무슨 일이 있었는지만 적어 주세요.
- 추측과 단정은 법적 분쟁의 소지가 됩니다. 확인한 사실만 적는 것이 본인을 지킵니다.
- 겪은 사실을 공익을 위해 적은 글은 법이 보호하는 범위에 들어갑니다.
- 특정 개인·업체를 브로커나 알선책으로 지목하는 답글은 게시하지 않습니다. 겪은 일만 적어 주세요.
- 전화번호·이메일과 '@아이디'·'카톡 아이디: …' 형태의 SNS 아이디, 오픈채팅·인스타그램 같은 SNS 주소는 자동으로 가려집니다. 블로그·유튜브 주소와 그 밖의 표기는 가려지지 않으니 직접 빼 주세요. 의료진·직원 개인을 겨냥한 표현은 쓰지 말아 주세요.