닥터 데드아이 개인정보 처리방침
초안 · 법률 검토 필요 — 이 문서는 개발자가 실제 코드(
cloud/collector,docs/ALLINONE_CONTRACT.md,docs/COMMUNITY_CONTRACT.md,docs/ACCOUNT_CONTRACT.md)를 기준으로 작성한 초안입니다. 「개인정보 보호법」 구조를 참고했지만 법률 전문가의 검토를 받지 않았습니다. 공개 전에 검토를 받고[ ]표시된 빈칸을 채워 주세요.
- 시행일: [ 예: 2026-12-01 ]
- 버전: 0.1 (초안)
1. 요약
- 닥터 데드아이는 계정 없이 쓸 수 있습니다. 이름, 이메일, 전화번호, 게임 계정을 받지 않습니다.
- 웹 트레이너에서는 원하는 경우에만 패스키로 계정을 만들어 기록 요약을 여러 기기에서 볼 수 있습니다(2-6). 이때도 표시 이름과 패스키 공개키만 받고, 이메일·비밀번호는 받지 않습니다.
- 훈련 기록, 분석, AI 루틴·감도 추천·성장 리포트는 사용자 PC 안에서만 계산·저장됩니다.
- "커뮤니티 참여"를 직접 켠 경우에만 훈련 요약 숫자를 익명 ID와 함께 공유 서버로 보냅니다. 기본값은 꺼짐이며, 만 14세 이상 확인과 "보낼 내용 그대로 보기" 확인이 먼저 필요합니다.
- 언제든 앱에서 참여를 끄고, 서버에 보낸 기록을 모두 지울 수 있습니다.
- 데이터를 판매하거나 광고 타깃팅에 쓰지 않습니다. 웹사이트에는 분석 도구·광고가 없고, 쿠키는 계정에 로그인한 경우의 로그인 유지 쿠키 하나뿐입니다(9장).
2. 처리하는 정보와 목적
2-1. 사용자 PC에만 저장되는 정보 (회사 서버로 전송되지 않음)
| 항목 | 목적 | 저장 위치 |
|---|---|---|
| 훈련 기록(시도별 마우스 궤적·타이밍, 세션 결과), 감도·DPI 설정, 앱 설정 | 분석, 루틴·감도 추천, 성장 리포트 | %USERPROFILE%\AppData\LocalLow\닥터 데드아이\닥터 데드아이\닥터 데드아이 |
이 정보는 운영자가 볼 수 없습니다. 사용자가 폴더를 지우면 함께 사라집니다.
2-2. 커뮤니티 참여를 켠 경우에만 서버로 보내는 정보
| 항목 | 내용 | 목적 |
|---|---|---|
| 익명 기여자 ID | 참여를 켤 때 PC에서 무작위로 만든 UUID. 게임 계정·PC 정보와 연결되지 않음 | 같은 사람의 기록을 묶어 모델을 공정하게 평가(한 사람이 과대 반영되지 않도록) |
| 삭제 토큰의 해시 | 삭제 토큰 자체는 PC에만 있고 서버는 sha256 값만 보관 | 본인만 서버 기록을 지울 수 있게 함 |
| 세션 요약 | 드릴 종류, 난이도, 길이, 프로그램 종류, 날짜(시각 제외, UTC 기준 일자), cm/360(0.1 단위로 반올림), 유효 시도 수, 정확도·명중 시간·반응 시간·오버슛/언더슛 비율·보정 횟수·트래킹 오차 등 요약 지표, 추천 이유 코드, 감도 실험 구간 정보 | 새 사용자에게도 쓸 수 있는 공용 사전분포(드릴별 평균 효과, cm/360 분포) 계산 |
| 시도별 특징값 | 시도 종류(플릭/미세 보정), 놓침 여부, 목표 거리·크기, 반응 시간, 최고 속도, 오버슛·언더슛 거리, 보정 횟수, 경로 효율 (원본 궤적 아님) | 시도별 놓침 예측 모델 학습·평가 |
| 세션·시도 키 | 로컬 ID를 비밀값과 섞어 해시한 32자리 값 (원래 ID 복원 불가) | 같은 세션을 묶고 중복 저장 방지 |
| 앱 버전 | 예: 0.5.0 | 버전별 품질 확인 |
| 업로드 시각 | 서버가 묶음(batch)을 받은 시각 | 하루 20회 업로드 한도 적용, 중복 방지 |
보내지 않는 것: 원본 마우스 궤적, 감도·DPI 원값, 이름·닉네임, 로컬 사용자 ID, 자유 입력 문장, 게임 프로세스 정보.
2-3. AI 코치 문장 기능(선택)을 쓰는 경우
- 참여 중인 사용자가 코치 문장을 요청하면 루틴·지표 숫자(사실 목록) 를 서버로 보내 한국어 문장을 만듭니다.
- 이 숫자와 만들어진 문장은 저장하지 않고 처리 후 버립니다.
- 남용 방지를 위해 날짜별 호출 횟수만 기록합니다(기여자 ID 자체가 아닌 그 sha256 값 기준).
2-4. 인터넷 연결 시 자동으로 처리되는 정보
- 서버와 웹사이트는 Cloudflare 인프라에서 동작합니다. 통신 과정에서 IP 주소가 Cloudflare에 의해 전송·보안 목적으로 처리될 수 있습니다. 닥터 데드아이의 데이터베이스에는 IP 주소·브라우저 정보를 저장하지 않습니다.
- 공유 서버 주소가 들어 있는 버전의 앱은 하루 한 번 공용 사전분포(숫자 JSON)를 내려받습니다 (참여 여부와 무관, 요청에 개인 정보를 담지 않음). 이때도 IP 주소는 위와 같이 Cloudflare가 처리합니다.
2-5. 오류 보고(선택, 기본 꺼짐)를 켠 경우
- 설정에서 "오류 보고 보내기" 를 직접 켠 경우에만, 앱이 비정상 오류를 만났을 때 다음을 보냅니다: 오류 종류와 메시지, 코드 위치(함수 이름), 앱 버전, 하루 단위 발생 횟수, 오류를 묶는 16자리 지문.
- 보내기 전에 앱이 파일 경로·이메일 주소·ID 형식 문자열을 지우고, 서버도 경로·이메일처럼 보이는 내용은 저장하지 않고 거부합니다.
- 훈련 기록·감도·기여자 ID·IP 주소는 저장하지 않습니다. 커뮤니티 참여와 별개의 선택이며 언제든 끌 수 있고, 끄면 아직 보내지 않은 내용도 지웁니다.
- 목적: 앱의 오류를 찾아 고치기.
2-6. 계정(선택, 웹 트레이너)
웹 트레이너에서 "로그인"을 눌러 직접 계정을 만든 경우에만 처리합니다. 계정 없이도 모든 훈련 기능을 쓸 수 있습니다.
| 항목 | 내용 | 목적 |
|---|---|---|
| 계정 ID | 가입할 때 서버가 무작위로 만든 UUID | 계정 구분 |
| 표시 이름 | 사용자가 정한 2~20자 이름(실명을 쓰지 않도록 안내) | 화면에 표시 |
| 패스키 공개키 | 기기(휴대폰·PC·보안 키)가 만든 공개키, 패스키 ID, 서명 횟수, 연결 방식(예: 내장·USB). 생체 정보·비밀키는 기기 밖으로 나오지 않음 | 로그인 확인 |
| 가입 확인 | 만 14세 이상 확인 여부, 동의한 약관·처리방침 버전(날짜), 가입 시각, 마지막 로그인 시각 | 연령·동의 기록, 보관 기간 계산 |
| 로그인 세션 | 로그인 유지 쿠키 값의 해시(sha256)와 만료 시각(30일) | 로그인 유지 |
| 동기화한 훈련 요약 | 세션 ID, 시작 시각, 플랫폼(web·windows 등), 앱 버전, 드릴·과제·난이도·길이·프로그램, 완료 여부, 활동 시간, 요약 지표(정확도·명중 시간 등 숫자), 시도 요약(세션당 최대 200개: 순번, 명중 여부, 명중까지 시간, 목표 거리·크기) | 다른 기기·브라우저에서 내 기록 보기 |
| 사용 횟수 | 날짜별 동기화 횟수(하루 200회 한도), 분 단위 전체 가입·로그인 요청 수(사람 구분 없음) | 남용 방지 |
- 받지 않는 것: 이메일, 비밀번호, 실명, 전화번호, IP 주소, 원본 마우스 궤적, 감도·DPI·cm/360 값, 자유 입력 문장.
- 익명 기여와 분리: 계정 정보는 2-2의 익명 기여자 ID와 어떤 방법으로도 연결해 저장하지 않습니다. 계정을 만들어도 커뮤니티 참여는 따로 켜야 하며, 반대도 같습니다.
- 계정당 동기화 세션은 최대 5,000개까지 저장합니다.
검토 메모: 위 정보는 이름·연락처가 없는 가명 정보에 가깝지만, 개인정보 해당 여부와 「개인정보 보호법」상 가명정보 처리 요건 적용 여부는 법률 검토가 필요합니다.
3. 보유 기간과 파기
- 서버의 기여 기록(세션 요약, 시도별 특징값, 자기 보고, 기여자 ID, 삭제 토큰 해시): 마지막 업로드로부터 2년 (업로드한 적이 없으면 참여를 켠 날로부터 2년) 보관 후 파기합니다(제안값). 서버의 예약 작업이 매일 한 번 자동으로 삭제합니다.
- 사용자가 앱에서 "서버에 보낸 내 기여 모두 삭제" 를 누르면 해당 기여자 ID의 서버 기록을 즉시 삭제합니다.
- 이미 공개된 공용 사전분포·모델 계수는 여러 사람의 기록을 합친 통계값(개인 단위로 되돌릴 수 없음)이라 삭제 요청 후에도 남을 수 있으며, 다음 계산부터는 삭제된 기록이 빠집니다.
- 계정(2-6): 마지막 로그인으로부터 2년 동안 보관하고, 지나면 계정·패스키 공개키·로그인 세션·동기화 기록을 함께 매일 자동 파기합니다(제안값). 로그인 세션은 30일, 로그인 확인용 일회성 값은 5분 뒤 만료되어 매일 지워집니다. 동기화 횟수 기록은 2일, 분 단위 요청 수는 1일 뒤 지웁니다.
- 사용자가 웹 트레이너에서 "계정 삭제" 를 누르면 계정과 위 기록을 즉시 모두 삭제하고 로그인 쿠키를 지웁니다.
- AI 코치 호출 횟수 기록(날짜·구분·횟수만, 문장 없음): 90일 보관 후 매일 자동 파기(제안값).
- 오류 보고(2-5): 90일 보관 후 매일 자동 파기(제안값).
- 파기 방법: 데이터베이스 행 삭제. 종이 문서는 만들지 않습니다.
4. 제3자 제공
- 개인정보를 제3자에게 제공하거나 판매하지 않습니다.
- 법령에 따라 요구되는 경우는 예외로 합니다.
5. 처리 위탁 및 국외 이전
| 수탁자 | 업무 | 이전 국가 | 항목 | 보유 기간 |
|---|---|---|---|---|
| Cloudflare, Inc. | 서버(Workers)·데이터베이스(D1) 운영, 웹사이트 호스팅(Pages·Pages Functions), AI 문장 생성(Workers AI) | 미국 등 Cloudflare 데이터센터 소재국 | 2-2, 2-3, 2-4, 2-5, 2-6의 항목 | 위탁 계약 종료 또는 3장의 보유 기간까지 |
- 이전 시기·방법: 사용자가 참여를 켠 뒤 훈련을 마칠 때, 또는 계정에 로그인한 상태로 동기화할 때 네트워크(HTTPS)로 전송.
- [ ] 국외 이전 고지 문구와 Cloudflare 데이터 처리 조건(DPA) 확인 필요.
6. 만 14세 미만 아동
- 커뮤니티 참여와 계정 만들기는 만 14세 이상만 가능합니다. 만 14세 이상임을 확인해야 참여·가입 버튼이 켜집니다.
- 법정대리인 동의 절차가 없으므로 만 14세 미만은 참여할 수 없습니다. 만 14세 미만 사용자의 기록이 전송된 사실을 알게 되면 지체 없이 삭제합니다.
- 참여하지 않으면 아무것도 전송되지 않으므로 앱 자체(로컬 훈련)는 연령과 무관하게 쓸 수 있습니다. [ ] 이용 연령 정책 최종 확인 필요.
7. 정보주체의 권리와 행사 방법
- 참여 끄기: 앱 설정 > 커뮤니티 > "참여 끄기". 이후 아무것도 보내지 않습니다.
- 서버 기록 삭제: 앱 설정 > 커뮤니티 > "서버에 보낸 내 기여 모두 삭제". 삭제 토큰이 PC에 있어야 하므로, 앱 폴더를 먼저 지웠다면 아래 연락처로 문의해 주세요(본인 확인이 어려울 수 있음을 안내).
- 로컬 기록 삭제: 2-1의 폴더를 삭제하면 됩니다.
- 계정 기록 내보내기·삭제(2-6): 웹 트레이너 "로그인" 패널의 "내보내기"로 서버에 있는 내 계정 정보 전체(사용자 정보·패스키 목록·동기화 기록)를 JSON 파일로 받을 수 있고, "계정 삭제"로 즉시 모두 지울 수 있습니다. 패스키를 잃어버려 로그인할 수 없으면 2년 뒤 자동 파기됩니다.
- 열람·정정·처리정지 요청은 아래 연락처로 할 수 있으며, 10일 이내 답변합니다(제안값).
8. 안전성 확보 조치
- 전송은 HTTPS만 사용합니다. 운영자 기능은 32자 이상 비밀 토큰으로 보호합니다.
- 서버는 정해진 형식의 숫자만 받고(자유 문장 거부), 요청 크기·횟수를 제한합니다.
- 삭제 토큰은 해시로만 보관합니다. 공개되는 모델·사전분포는 코드가 아닌 숫자 JSON입니다.
- 계정 로그인은 패스키(공개키 서명)로만 합니다. 서버에는 비밀번호가 없고, 로그인 쿠키 값도 해시로만 보관합니다. 계정 API는 웹사이트의 같은 주소(
/v2)를 거쳐서만 호출할 수 있고, 다른 사이트에서 보낸 요청은 거절합니다.
9. 쿠키 등 자동 수집 장치
- 웹사이트와 앱은 광고 식별자, 분석·추적 도구를 쓰지 않습니다.
- 쿠키는 웹 트레이너에서 계정에 로그인한 경우에만 로그인 유지용 쿠키
aimcore_session하나를 씁니다 (무작위 값, 30일 뒤 만료, 다른 사이트에서는 보내지지 않음(SameSite=Strict), 자바스크립트로 읽을 수 없음(HttpOnly)). 로그아웃하거나 계정을 삭제하면 지워집니다.
10. 개인정보 보호책임자
- 성명/직책: [ 운영자 이름 ]
- 연락처: [ privacy@도메인 — 공개 전 실제 주소로 교체 ]
- 개인정보 침해 신고·상담: 개인정보침해신고센터(국번 없이 118, privacy.kisa.or.kr), 개인정보분쟁조정위원회(1833-6972, kopico.go.kr)
11. 변경 고지
- 이 방침이 바뀌면 웹사이트와 앱 업데이트 안내에 시행 7일 전(중요 변경은 30일 전) 알립니다(제안값).