개인정보처리방침
Caltype(이하 "서비스", https://caltype.pages.dev)은 온라인 계산기와 숫자패드 타자 연습 게임을 제공합니다. 서비스는 「개인정보 보호법」 등 관련 법령을 지키며, 어떤 정보를 어떤 목적으로 어떻게 처리하는지 이 방침으로 알려 드립니다.
서비스에는 회원 가입이나 로그인이 없습니다. 이름, 이메일, 전화번호, 소셜 계정 같은 개인 식별 정보를 받지 않습니다. 계산기와 타자 연습은 아무 정보도 서버에 보내지 않고 쓸 수 있으며, 아래 2항의 정보는 이용자가 직접 닉네임을 만들어 랭킹에 참가할 때에만 저장됩니다.
1. 처리하는 정보 항목과 수집 방법
가. 랭킹에 참가하는 경우 (이용자가 직접 입력·제출)
- 닉네임: 이용자가 정한 공개 이름(2~12자). 랭킹에 표시됩니다. 실명이나 연락처 등 개인정보를 닉네임으로 쓰지 마세요.
- 복구 코드의 해시값: 닉네임을 만들 때 서버가 무작위 복구 코드(256비트)를 만들어 이용자에게 한 번 보여 주고, 서버에는 이 코드를 되돌릴 수 없게 바꾼 값(SHA-256 해시)만 저장합니다. 복구 코드 자체는 이용자 브라우저에만 저장됩니다.
- 게임 기록: 점수, 타/분, 정확도, 최대 콤보, 문제 수, 걸린 시간, 게임 설정(내용, 방식, 문제 수, 난이도, 자릿수, 소수점, 단위), 등록 시각.
- 문제별 입력 기록: 각 문제의 제시 문자열, 맞게 입력한 글자 수, 오타 여부, 제출까지 걸린 시간(밀리초). 서버에서 점수를 다시 계산해 부정 기록을 걸러 내는 데 씁니다. 키를 누른 내용 전체(키로그)나 다른 프로그램의 입력은 수집하지 않습니다.
나. 자동으로 생성·처리되는 정보
- IP 주소의 해시값: 짧은 시간에 너무 많이 등록하거나 닉네임을 대량으로 만드는 것을 막기 위해, 요청한 IP 주소를 비밀 키와 날짜를 섞어 되돌릴 수 없는 값(16자리)으로 바꿔 저장합니다. 원래 IP 주소는 저장하지 않으며, 해시값은 날마다 바뀌어 다른 날의 기록과 연결할 수 없고 1일 안에 삭제됩니다.
- 세션 쿠키: 이 기기의 닉네임 연결을 유지하는 쿠키(
ct_session) 1개. 서명된 플레이어 번호와 만료 시각만 담깁니다. - 로컬 저장소(localStorage): 게임 설정, 최고 기록, 계산 기록, 소리·테마 설정, 그리고 랭킹에 참가한 경우 닉네임과 복구 코드. 이용자 브라우저에 저장됩니다.
- 접속 정보: 서비스는 Cloudflare에서 운영되며, Cloudflare는 보안과 서비스 제공을 위해 IP 주소, 접속 시각, 브라우저 정보(User-Agent), 요청 주소를 처리합니다(5항).
- 광고 쿠키: Google AdSense를 적용하면 Google과 광고 파트너가 쿠키와 기기 식별자를 사용할 수 있습니다(6항).
2. 처리 목적
- 랭킹 제공: 닉네임과 점수를 설정별 주간 랭킹(오늘, 이번 주)으로 보여 주기, 내 순위 표시, 복구 코드로 다른 기기에서 이어서 하기
- 부정 이용 방지: 문제별 입력 기록으로 점수를 다시 계산하고 비정상적인 기록 걸러 내기, 등록·닉네임 만들기 횟수 제한, 부적절한 닉네임 제한
- 서비스 운영: 오류 대응, 보안 유지
위 목적 외의 용도로 쓰지 않으며, 프로파일링, 맞춤 광고, 마케팅에 쓰지 않습니다. 정보를 판매하지 않습니다.
3. 보유 기간과 파기
| 항목 | 보유 기간 |
|---|---|
| 닉네임, 복구 코드 해시값 | 이용자가 기록을 삭제할 때까지. 주간 초기화 때에는 지우지 않으며, 2년 동안 쓰지 않은 닉네임은 자동으로 삭제합니다. |
| 게임 기록과 문제별 입력 기록 | 랭킹은 매주 월요일 0시(한국 시간)에 초기화됩니다. 등록한 주와 그다음 주까지만 보관하고 그 뒤에 삭제합니다(최대 약 14일). |
| IP 주소 해시값과 요청 횟수 기록 | 최대 1일 |
| 세션 쿠키 | 30일 또는 "이 기기에서 나가기"를 누를 때까지 |
| 로컬 저장소 | 이용자가 브라우저 데이터를 지우거나 "이 기기에서 나가기"를 누를 때까지 |
| Cloudflare 접속 기록 | Cloudflare 정책에 따름 |
보유 기간이 끝나거나 목적을 이루면 지체 없이 복구할 수 없는 방법으로 삭제합니다.
4. 제3자 제공
서비스는 이용자의 정보를 제3자에게 제공하지 않습니다. 다만 랭킹에는 이용자가 정한 닉네임과 게임 기록(점수, 타/분, 정확도, 최대 콤보, 등록 날짜)이 누구나 볼 수 있게 공개됩니다. 법령에 특별한 규정이 있거나 수사기관이 법령에 정한 절차에 따라 요청하는 경우는 예외입니다.
5. 처리 위탁과 국외 이전
서비스 제공을 위해 아래 업체의 서비스를 이용하며, 이 과정에서 정보가 국외에서 저장·처리될 수 있습니다. 사이트에 접속하거나 기록을 등록할 때 네트워크를 통해 전송됩니다.
| 업체(국가) | 업무와 이전 항목 | 보유 기간 |
|---|---|---|
| Cloudflare, Inc.(미국 및 Cloudflare 데이터센터 소재국) 개인정보 정책 | 웹사이트 호스팅(Cloudflare Pages), 서버 기능(Pages Functions), 데이터베이스(Cloudflare D1): 1항의 서버 저장 항목, 접속 정보 | 3항의 보유 기간 또는 위탁 계약 종료 시까지 |
| Google LLC(미국) 개인정보처리방침 | 광고(Google AdSense, 적용 시): 쿠키, 기기 정보, 방문 기록 | Google 정책에 따름 |
랭킹에 참가하지 않으면 1항 가의 정보는 저장되지 않으며, 계산기와 타자 연습은 그대로 쓸 수 있습니다.
6. 쿠키, 로컬 저장소, 광고
가. 서비스가 쓰는 쿠키
랭킹에 참가한 경우에만 세션 쿠키 ct_session을 씁니다. HttpOnly, Secure, SameSite=Lax 속성으로 설정해 스크립트에서 읽을 수 없고 HTTPS로만 전송됩니다. 쿠키를 거부해도 랭킹 등록 외의 기능은 모두 쓸 수 있습니다.
나. 로컬 저장소
설정과 기록은 localStorage(numpadTyping.v1), 랭킹 닉네임과 복구 코드는 localStorage(caltype.player), 닉네임을 만든 직후 등록할 결과는 sessionStorage에 잠시 저장합니다. 브라우저 설정에서 사이트 데이터를 지우면 삭제됩니다. 복구 코드를 따로 저장해 두지 않은 채 지우면 같은 닉네임으로 이어서 할 수 없습니다.
다. Google AdSense 광고
서비스는 운영비 마련을 위해 Google AdSense 광고를 게재할 수 있습니다.
- Google을 포함한 제3자 광고 공급업체는 쿠키를 사용해 이용자가 이 사이트나 다른 사이트를 방문한 기록을 바탕으로 광고를 게재합니다.
- Google은 광고 쿠키를 사용해 이용자의 이 사이트와 인터넷의 다른 사이트 방문 기록을 바탕으로 이용자에게 광고를 게재할 수 있습니다.
- Google 광고 설정에서 맞춤 광고를 끌 수 있고, www.aboutads.info에서 제3자 공급업체의 맞춤 광고용 쿠키를 거부할 수 있습니다. 유럽 이용자는 www.youronlinechoices.eu를 이용할 수 있습니다.
- 자세한 내용은 Google 파트너 사이트 데이터 사용 정책과 Google 광고 정책에서 볼 수 있습니다.
브라우저 설정에서 쿠키 저장을 거부하거나 삭제할 수 있습니다. (Chrome: 설정 › 개인정보 보호 및 보안 › 서드 파티 쿠키, Safari: 설정 › 개인정보 보호, Edge: 설정 › 쿠키 및 사이트 권한)
7. 이용자의 권리와 행사 방법 (기록 삭제)
이용자는 언제든 자기 정보의 열람, 정정, 삭제, 처리 정지를 요구할 수 있습니다.
- 정정: "내 기록" 메뉴에서 닉네임을 바꿀 수 있습니다.
- 삭제: "내 기록 › 기록 삭제"를 누르면 닉네임, 복구 코드 해시값, 모든 점수와 문제별 입력 기록이 즉시 삭제되고 랭킹에서도 사라집니다. 삭제한 정보는 되살릴 수 없습니다.
- 이메일 요청: 기기를 잃어버렸거나 메뉴를 쓸 수 없으면 sijin90@gmail.com으로 닉네임과 함께 요청해 주세요. 서비스는 개인 연락처를 저장하지 않으므로, 본인 확인을 위해 복구 코드나 닉네임을 쓴 기기 정보를 요청할 수 있습니다. 확인 후 10일 안에 처리합니다.
- 이 기기에서 나가기: 기록은 남겨 두고 이 기기의 쿠키와 저장된 복구 코드만 지웁니다.
- 로컬 데이터: 브라우저에만 있는 기록은 브라우저의 사이트 데이터 삭제로 지울 수 있습니다.
8. 아동의 이용
서비스는 이름, 연락처 등 개인을 알아볼 수 있는 정보를 받지 않으므로 누구나 이용할 수 있습니다. 보호자는 아동이 실명이나 개인정보가 들어간 닉네임을 쓰지 않도록 지도해 주세요. 그런 닉네임을 발견하거나 요청을 받으면 바로 바꾸거나 삭제합니다.
9. 안전성 확보 조치
- 모든 통신은 HTTPS로 암호화됩니다.
- 복구 코드는 서버에 해시값으로만 저장하며, IP 주소는 날마다 바뀌는 비밀 키로 해시해 원래 값을 알 수 없게 합니다.
- 세션 쿠키는 비밀 키로 서명하고 HttpOnly, Secure, SameSite 속성으로 보호합니다. 비밀 키는 코드와 분리된 암호화 저장소에 둡니다.
- 복구 코드를 무작위로 맞춰 보는 시도와 과도한 요청은 횟수를 제한합니다.
- 데이터베이스 접근 권한은 운영자로 한정하며, 필요한 최소한의 정보만 저장합니다.
10. 개인정보 보호책임자와 문의
- 개인정보 보호책임자: Caltype 운영자
- 이메일: sijin90@gmail.com
개인정보 관련 문의, 불만, 피해 구제 요청은 위 이메일로 보내 주시면 지체 없이 답변하겠습니다.
11. 권익 침해 구제 방법
개인정보 침해로 인한 구제를 받으려면 아래 기관에 분쟁 해결이나 상담을 신청할 수 있습니다.
- 개인정보분쟁조정위원회: 1833-6972 (www.kopico.go.kr)
- 개인정보침해신고센터(한국인터넷진흥원): 국번 없이 118 (privacy.kisa.or.kr)
- 대검찰청: 국번 없이 1301 (www.spo.go.kr)
- 경찰청: 국번 없이 182 (ecrm.police.go.kr)
12. 방침의 변경
이 방침은 2026년 10월 8일부터 적용됩니다. 내용을 추가, 삭제, 수정하면 시행 7일 전부터 이 페이지에 알리고, 이용자 권리에 중요한 변경은 30일 전에 알립니다.
- 2026-10-08: 전면 개정(닉네임 랭킹, 복구 코드, IP 해시, 국외 이전 내용 추가), 주간 랭킹(매주 월요일 0시 초기화)에 맞춰 게임 기록 보관 기간 단축
English summary
Operator: Caltype (https://caltype.pages.dev) · Contact: sijin90@gmail.com · Effective date: October 8, 2026
- No accounts, no login. We do not collect names, email addresses, phone numbers or social accounts. The calculator and typing practice work without sending anything to our servers; settings, local best scores and calculator history stay in your browser's localStorage.
- Leaderboard (optional). If you join, we store the nickname you choose (public), a SHA-256 hash of a random 256-bit recovery code (the code itself is shown to you once and kept only in your browser), game results (score, keystrokes per minute, accuracy, max combo, settings, duration, timestamp) and per-item timing logs used to recompute scores server-side and detect cheating.
- Hashed IP for rate limiting. We store a keyed, daily-rotating 16-character hash of your IP address to limit submissions and nickname creation. The raw IP is never stored, and hashes are deleted within 1 day.
- Cookies and storage. One HttpOnly, Secure, SameSite=Lax session cookie (
ct_session, 30 days) if you join the leaderboard; localStorage for settings and your nickname/recovery code. If Google AdSense is enabled, Google and its partners may use advertising cookies; opt out at Google Ads Settings or aboutads.info. - Providers. Cloudflare, Inc. (hosting, Pages Functions, D1 database) and Google LLC (AdSense, if enabled). We do not sell or share your data and do not use it for profiling or advertising.
- Retention. The leaderboard is weekly and resets every Monday 00:00 KST. Scores and per-item logs are kept only for the week they were submitted and the following week (about 14 days at most), then deleted. Nicknames stay until you delete them (unused for 2 years: deleted automatically); IP hashes 1 day; session cookie 30 days.
- Deletion. Use "내 기록 › 기록 삭제" (My records › Delete records) to immediately and permanently delete your nickname, scores and logs, or email us; we respond within 10 days.