개인정보처리방침

시행일: 2026년 8월 11일 (2026년 7월 26일 제정, 서비스 이용 기록·설치 식별자·결제 정보·오류 진단 항목 추가)

본 앱(이하 "앱")은 이용자의 개인정보를 중요하게 생각하며, 관련 법령을 준수합니다. 본 방침은 앱이 어떤 정보를 수집하고 어떻게 이용하는지 설명합니다.

1. 수집하는 정보

(1) 계정 정보
- Google 또는 Apple 계정으로 로그인하는 경우: 해당 서비스가 제공하는 계정 식별자, 이메일 주소
  · Apple 로그인에서 "이메일 가리기"를 선택하면 앱은 Apple이 발급한 전달용 주소(private relay)만 받으며, 실제 이메일 주소를 알 수 없습니다.
- 이메일로 가입하는 경우: 이메일 주소 (비밀번호는 앱이 보관하지 않으며, 인증 서비스가 단방향 암호화해 저장합니다)
- 게스트 계정: 로그인 화면의 "게스트로 시작"을 누르면 만들어지며, 기기당 한 번만 가능합니다. 익명 계정 식별자만 있고 이메일 등 개인 식별 정보는 없습니다. 나중에 Google·Apple 계정을 연동하거나 이메일 주소를 등록하면 기록을 유지한 채 정식 계정이 되며, 그때부터 위의 계정 정보를 수집합니다.
- 앱 내에서 설정한 닉네임

(2) 게임 기록
- 실시간 대결 기록(승패, 레이팅, 상대방, 대결 시각, 종료 사유)
- 시즌 종료 시점의 최종 순위·티어·레이팅 기록
- 데일리 스도쿠 완료 기록(완료 시각, 소요 시간, 실수 횟수, 힌트 사용 횟수)
- 혼자 하기 완료 시간은 개인 기록으로 저장하지 않습니다. 퍼즐을 완료하면 "이 난이도를 10초 단위 구간에서 몇 명이 완료했는지"를 세는 공용 집계표의 숫자만 1 올라갑니다(로그인 여부와 무관합니다). 이 표에는 이용자 식별자가 없어 특정 이용자의 기록을 되짚을 수 없으며, 상위 몇 %인지를 계산하고 분포를 보여주기 위해서만 쓰입니다.

(3) 신고 정보
- 다른 이용자를 신고하면 신고자와 신고 대상의 계정 식별자, 신고 사유, 이용자가 직접 입력한 상세 내용, 관련 대결 식별자가 저장됩니다. 이 정보는 신고 검토와 제재 판단에만 사용되며, 다른 이용자에게 공개되지 않습니다.

(4) 광고 관련 정보
- 앱은 Google AdMob을 통해 보상형 광고를 표시합니다. AdMob은 광고 제공을 위해 광고 식별자(ADID/IDFA) 등 기기 정보를 수집할 수 있습니다. 자세한 내용은 Google 개인정보처리방침(https://policies.google.com/privacy)을 참고하세요.
- 맞춤형 광고 사용 여부는 앱 최초 실행 시 표시되는 동의 창(Google User Messaging Platform)에서 선택할 수 있으며, iOS에서는 기기의 설정 > 개인정보 보호 및 보안 > 추적에서 언제든지 변경할 수 있습니다. Android에서는 설정 > Google > 광고에서 광고 ID를 재설정하거나 삭제할 수 있습니다.

(5) 기기 내 저장 정보
- 진행 중인 게임, 난이도별 통계, 복기(리플레이) 기록, 즐겨찾기, 설정(테마·언어·사운드 등)은 서버로 전송되지 않고 이용자의 기기에만 저장됩니다.

(6) 서비스 이용 기록
- 서비스 개선을 위해 로그인한 계정의 주요 기능 사용 이벤트(첫 실행 시점, 가입, 첫 퍼즐 완료, 데일리 스도쿠 완료, 대결 로비 방문, 프리미엄 화면 열람)와 발생 시각을 수집합니다.
- 이 이용 기록에는 광고 식별자나 기기의 하드웨어 정보가 포함되지 않으며, 계정 식별자에만 연결됩니다. 로그인하지 않은 상태에서는 수집되지 않습니다.

(7) 설치 식별자 (중복 로그인 방지용)
- 한 계정이 여러 기기에서 동시에 사용되는 것을 막기 위해, 앱이 설치될 때 생성하는 임의의 설치 식별자를 계정과 함께 저장합니다.
- 이 값은 기기의 하드웨어나 광고 식별자가 아니라 "이 앱 설치본"만을 가리키며, 앱을 지웠다 다시 설치하면 새 값이 발급됩니다. 마지막으로 로그인한 설치본 하나만 보관됩니다.

(8) 결제 정보
- 프리미엄을 구매하면 상품 식별자, 스토어 구분(App Store / Google Play), 구독 만료일, 스토어가 발급한 거래 식별자가 계정과 함께 저장됩니다. 이는 구매 사실을 확인하고 기기를 바꿔도 이용권을 복원하기 위한 것입니다.
- 앱과 서버는 카드번호 등 결제 수단 정보를 받지도, 저장하지도 않습니다. 실제 결제는 App Store 또는 Google Play가 처리합니다.
- 영수증 검증이 실패한 경우, 원인 파악을 위해 실패 사유와 당시 상품·스토어 정보가 기록될 수 있습니다.

(9) 오류·진단 정보
- 앱이 비정상 종료되거나 오류가 발생하면 Google Firebase Crashlytics를 통해 오류 발생 지점, 기기 모델과 운영체제 버전, Firebase가 발급한 설치 식별자가 수집됩니다. 원인을 찾아 고치기 위한 것이며, 이용자가 입력한 내용이나 퍼즐 기록은 포함되지 않습니다.
- 이 수집은 정식 배포된 앱에서만 이루어집니다.

앱은 위치 권한을 요청하지 않으며, 연락처·사진·마이크·카메라에도 접근하지 않습니다. 다만 광고를 제공하는 Google AdMob은 광고 게재를 위해 IP 주소 등으로 대략적인 지역을 추정할 수 있습니다. 앱이 기기의 위치 기능을 사용해 위치를 확인하는 일은 없습니다.

2. 정보의 이용 목적
- 계정 관리 및 로그인 유지
- 실시간 대결 매칭, 레이팅·티어 산정, 대결 기록 제공
- 데일리 스도쿠 및 레이팅 순위표 제공
- 신고 접수 및 부정행위 대응
- 광고 표시
- 서비스 이용 통계 분석 및 개선
- 한 계정의 동시 사용 방지(중복 로그인 차단)
- 프리미엄 구매 확인 및 이용권 복원
- 오류 원인 파악 및 앱 안정성 개선

3. 정보의 보관 및 파기
- 계정 정보와 게임 기록은 계정이 유지되는 동안 보관됩니다.
- 계정을 삭제하면 로그인 수단(Google·Apple 연결, 세션)과 이메일 주소는 즉시 파기되고, 닉네임은 "탈퇴한 사용자"로 대체되어 개인을 식별할 수 없게 됩니다.
- 다만 대결 기록 자체는 삭제되지 않고 익명 처리된 상태로 남습니다. 하나의 대결 기록은 상대방의 전적·레이팅 이력이기도 하므로, 이를 지우면 다른 이용자의 기록이 함께 훼손되기 때문입니다.
- 신고 기록은 검토 및 재발 방지를 위해 처리 완료 후 최대 1년간 보관한 뒤 파기합니다.
- 계정 삭제 후 7일간은 같은 계정으로 다시 가입할 수 없습니다. 이를 확인하기 위해 로그인 식별자(이메일 주소, 소셜 로그인 식별자)의 단방향 해시값만 7일간 보관한 뒤 자동으로 파기합니다. 해시값은 원래 값으로 되돌릴 수 없고, 새 가입이 같은 계정인지 대조하는 용도로만 쓰이며, 이용자의 기록이나 신원과 연결되지 않습니다.
- 서비스 이용 기록은 수집일로부터 13개월이 지나면 자동으로 파기되며, 계정을 삭제하면 즉시 함께 삭제됩니다.
- 설치 식별자와 결제 정보는 계정을 삭제하면 즉시 함께 삭제됩니다.
- 오류·진단 정보는 Google Firebase Crashlytics의 정책에 따라 최대 90일간 보관된 뒤 파기됩니다.
- 기기 내 저장 정보는 앱을 삭제하면 함께 삭제됩니다.

4. 제3자 제공 및 처리위탁
- 앱은 법령에 따른 경우를 제외하고 이용자의 개인정보를 제3자에게 판매하거나 제공하지 않습니다.
- 서비스 운영을 위해 다음 업체에 처리를 위탁합니다.
  · Supabase Inc. — 계정 인증, 프로필·대결·데일리 기록 저장
  · Google LLC — 광고 제공(AdMob), Google 계정 로그인, 오류 수집(Firebase Crashlytics), 결제 처리 및 영수증 검증(Google Play)
  · Apple Inc. — Apple 계정 로그인, 결제 처리 및 영수증 검증(App Store)
- 위 업체의 서버는 대한민국 외 지역에 위치할 수 있으며, 이용자는 앱을 이용함으로써 서비스 제공에 필요한 범위의 국외 이전에 동의하게 됩니다.

5. 아동의 개인정보
- 앱은 만 14세 미만(대한민국 기준) 및 만 13세 미만(그 외 지역) 아동을 대상으로 하지 않으며, 해당 연령의 이용자로부터 고의로 개인정보를 수집하지 않습니다. 해당 사실이 확인되면 지체 없이 계정과 정보를 삭제합니다.

6. 이용자의 권리
- 이용자는 앱 내 마이페이지에서 언제든지 닉네임을 변경하고, 로그아웃하며, 계정을 삭제할 수 있습니다.
- 개인정보 열람·정정·삭제·처리정지를 요청하려면 아래 문의처로 연락해 주세요. 접수 후 지체 없이 처리합니다.

7. 문의처
- 이메일: ysw5202222@gmail.com
- 앱 내 설정 > 문의·신고 접수에서도 같은 주소로 연락할 수 있습니다.

본 방침은 변경될 수 있으며, 중요한 변경은 앱 내에 공지합니다.

Privacy Policy

Effective date: August 11, 2026 (first issued July 26, 2026; usage records, installation identifier, purchase information and diagnostics added)

This app respects your privacy and complies with applicable laws. This policy explains what information the app collects and how it is used.

1. Information We Collect

(1) Account information
- When signing in with Google or Apple: the account identifier and email address provided by that service.
  · If you choose "Hide My Email" with Apple, the app only ever receives Apple's private relay address and never learns your real email address.
- When signing up with email: your email address. The app never stores your password; the authentication service keeps only a one-way hash of it.
- Guest accounts: created by "Continue as Guest" on the sign-in screen, which is available once per device. They hold an anonymous account identifier and no email or other identifying data. Linking a Google or Apple account later — or registering an email address — turns one into a full account while keeping your record, and the account information above is collected from that point on.
- The nickname you set in the app.

(2) Game records
- Real-time race records (result, rating, opponent, time of match, how it ended)
- Final rank, tier, and rating snapshots taken when a season ends
- Daily sudoku completion records (completion time, elapsed time, mistakes, hints used)
- Solo finish times are not stored as personal records. Completing a puzzle — signed in or not — increments one number in a shared tally of how many players finished that difficulty within each 10-second band. That tally holds no user identifier, so no finish can be traced back to anyone; it exists only to work out percentile standings and to show the distribution.

(3) Reports
- When you report another player we store the account identifiers of the reporter and the reported player, the reason, any details you type, and the related race identifier. This is used only to review the report and decide on enforcement, and is never shown to other players.

(4) Advertising
- The app shows rewarded ads through Google AdMob. AdMob may collect device information such as advertising identifiers (ADID/IDFA) to serve ads. See Google's Privacy Policy (https://policies.google.com/privacy) for details.
- Whether ads are personalized is your choice, made in the consent dialog (Google User Messaging Platform) shown on first launch. On iOS you can change it at any time under Settings > Privacy & Security > Tracking; on Android under Settings > Google > Ads.

(5) On-device data
- Game progress, per-difficulty statistics, replays, favorites, and settings (theme, language, sound, etc.) are stored only on your device and are never sent to our servers.

(6) Usage records
- To improve the service we record, for signed-in accounts, when a few key features are used (first launch, sign-up, first puzzle completed, daily sudoku completed, race lobby visited, premium page opened) and when each happened.
- These usage records contain no advertising identifier and no hardware information about your device; they are tied only to your account identifier. Nothing is recorded while you are not signed in.

(7) Installation identifier (for one-device sign-in)
- To stop one account being used on several devices at once, a random identifier created when the app is installed is stored alongside your account.
- It is not your device's hardware or advertising identifier: it names "this installation of the app" and nothing else, and reinstalling the app issues a new one. Only the most recently signed-in installation is kept.

(8) Purchase information
- When you buy premium, the product identifier, the store (App Store / Google Play), the subscription expiry date, and the transaction identifier issued by the store are stored with your account. This is how a purchase is confirmed and restored when you change devices.
- Neither the app nor our servers receive or store payment details such as card numbers; the payment itself is handled by the App Store or Google Play.
- If receipt verification fails, the reason and the product/store involved may be recorded so the cause can be found.

(9) Diagnostics
- When the app crashes or hits an error, Google Firebase Crashlytics collects where the error occurred, your device model and OS version, and an installation identifier issued by Firebase. This is used to find and fix the cause; it does not include anything you typed or your puzzle records.
- This is collected only in publicly released builds.

The app does not request location permission, and does not access your contacts, photos, microphone, or camera. Google AdMob, which serves the ads, may infer an approximate region from information such as your IP address in order to serve them. The app never uses your device's location services to determine where you are.

2. How We Use Information
- Account management and sign-in
- Race matchmaking, rating/tier calculation, and race history
- Daily sudoku and rating leaderboards
- Handling reports and responding to abuse
- Serving ads
- Analyzing usage statistics to improve the service
- Preventing one account from being used on several devices at once
- Confirming premium purchases and restoring entitlements
- Diagnosing errors and improving app stability

3. Retention and Deletion
- Account information and game records are kept while your account exists.
- When you delete your account, your sign-in methods (Google/Apple links and sessions) and email address are destroyed immediately, and your nickname is replaced with "Deleted user" so you can no longer be identified.
- Race records themselves are not deleted; they remain in anonymized form. A race record is also your opponent's win/loss and rating history, so erasing it would damage another player's record.
- Reports are kept for up to one year after they are resolved, then deleted.
- For 7 days after deletion, the same account cannot sign up again. To check this, only a one-way hash of your sign-in identifiers (email address and social sign-in id) is kept for those 7 days and then destroyed automatically. A hash cannot be turned back into the original value; it is used solely to tell whether a new sign-up is the same account, and is linked to no record or identity.
- Usage records are deleted automatically 13 months after collection, and immediately when you delete your account.
- The installation identifier and purchase information are deleted immediately when you delete your account.
- Diagnostics are retained for up to 90 days under Google Firebase Crashlytics' own policy, then deleted.
- On-device data is removed when you uninstall the app.

4. Third Parties and Processors
- We never sell your personal information, and we do not share it except as required by law.
- The following processors are used to operate the service:
  · Supabase Inc. — authentication and storage of profiles, races, and daily records
  · Google LLC — advertising (AdMob), Google sign-in, crash reporting (Firebase Crashlytics), and payment processing and receipt verification (Google Play)
  · Apple Inc. — Apple sign-in, and payment processing and receipt verification (App Store)
- Their servers may be located outside your country; by using the app you consent to the international transfer necessary to provide the service.

5. Children
- The app is not directed to children under 14 (Republic of Korea) or under 13 (elsewhere), and we do not knowingly collect their personal information. If we learn that we have, we delete the account and its data promptly.

6. Your Rights
- You can change your nickname, sign out, and delete your account at any time from My Page in the app.
- To request access, correction, deletion, or suspension of processing, contact us at the address below. We act on such requests without undue delay.

7. Contact
- Email: ysw5202222@gmail.com
- The same address is reachable in-app from Settings > Contact & report.

This policy may change; significant changes will be announced in the app.