Rating Widget

Rating Widget for Codeforces

개인정보처리방침

시행일 2026년 10월 26일English

leed.at(이하 ‘개발자’)은 Rating Widget for Codeforces(이하 ‘앱’)를 제공하며, 이 방침으로 앱이 어떤 정보를 어떻게 다루는지 설명합니다. 앱에는 로그인이 없고, 이용자가 입력한 Codeforces 핸들과 Codeforces에서 받아 온 공개 정보는 이용자의 기기에서만 표시·저장됩니다.

로그인 없음비밀번호나 계정 권한을 요구하지 않아요.
기기에만 저장핸들·친구·레이팅 기록은 기기 밖 개발자 서버에 저장하지 않아요.
Codeforces에서 직접앱과 위젯이 Codeforces 공개 API와 직접 통신해요.
언제든 삭제설정에서 핸들을 지우거나 앱을 삭제하면 사라져요.

1. 처리하는 정보와 목적

Codeforces 핸들

이용자가 입력한 본인 핸들과 친구로 추가한 핸들(최대 10개). Codeforces에서 해당 핸들의 공개 정보를 불러오는 데에만 사용합니다. 핸들은 Codeforces에 공개된 사용자 이름입니다.

Codeforces 공개 정보

레이팅·최고 레이팅·랭크, 대회별 레이팅 기록과 순위, 최근 제출 기록(풀이 일수 계산용), 대회 일정. 앱 화면과 홈 화면·잠금 화면 위젯에 보여 주고, 레이팅 반영·친구 랭크 변동 알림을 판단하는 데 사용합니다.

앱 설정

테마, 언어, 레이팅 그래프 기간, 알림 켜기·끄기와 대회별 알림 선택, 맞춤 광고·사용 통계 수집 여부, 광고 제거 구매 여부. 앱을 이용자가 원하는 방식으로 동작시키는 데 사용합니다.

앱은 연락처, 사진, 정밀 위치, 결제 수단 등 다른 개인정보에 접근하지 않습니다. 광고 제거 결제는 App Store·Google Play가 처리하며, 개발자는 결제 정보를 받지 않습니다.

2. 저장 위치

핸들, 친구 목록, 레이팅 기록과 알림 상태는 이용자의 기기에만 저장됩니다. 앱과 위젯은 HTTPS로 Codeforces API(codeforces.com)와 직접 통신하며, 이 정보를 개발자 서버에 보내지 않습니다.
  • iOS: 앱 설정과 데이터 캐시는 앱 전용 저장소에, 위젯이 쓰는 핸들·친구 목록·레이팅 요약은 앱과 위젯이 함께 쓰는 App Group 저장소(UserDefaults)에 저장합니다.
  • Android: 앱 설정과 데이터 캐시는 앱 전용 저장소에, 위젯이 쓰는 핸들·친구 목록·레이팅 요약은 앱 전용 SharedPreferences에 저장합니다.
  • 레이팅 반영·대회 시작·친구 랭크 변동 알림은 기기 안에서 판단해 기기의 로컬 알림으로 보냅니다. 푸시 알림 서버를 쓰지 않습니다.
  • 개발자는 이용자의 핸들과 레이팅 기록을 수집하지 않으며, 판매·대여하거나 광고·AI 모델 학습에 사용하지 않습니다.

3. 제3자 서비스

앱은 데이터를 불러오고 앱을 운영·개선하기 위해 아래 서비스를 사용합니다.

서비스처리 정보목적선택권
Codeforces API
(codeforces.com)
요청한 핸들, IP 주소, 요청 시각 등 일반적인 웹 요청 정보레이팅·대회 기록·제출 기록·대회 일정 조회앱 기능 제공에 필요합니다. 핸들을 지우면 요청하지 않습니다.
Google AdMob
(Google LLC)
광고 식별자(iOS IDFA는 허용한 경우에만, Android 광고 ID), IP 주소, 기기·앱 정보, 광고 노출·클릭 정보대시보드의 배너·네이티브 광고 게재, 광고 성과 측정, 부정 사용 방지EEA·영국·스위스 등에서는 Google UMP 동의 메시지로 동의를 받습니다. iOS에서는 앱 추적 투명성(ATT)을 허용한 경우에만 IDFA를 사용합니다. 앱 설정에서 맞춤 광고를 끄면 비개인 맞춤 광고만 요청하고, ‘개인정보 옵션’에서 동의를 바꿀 수 있습니다. 광고 제거를 구매하면 광고를 요청하지 않습니다.
Firebase Analytics
(Google LLC)
앱 인스턴스 ID, 화면 조회·기능 사용 이벤트(핸들·레이팅 제외), 기기 모델·OS 버전·언어, IP 기반 대략적 지역익명 사용 통계로 앱 개선앱 설정의 ‘사용 통계 및 오류 보고’를 끄면 중단됩니다.
Firebase Crashlytics
(Google LLC)
비정상 종료 시 스택 트레이스, 기기 모델·OS 버전, 앱 상태, Crashlytics 설치 식별자오류 진단과 안정성 개선‘사용 통계 및 오류 보고’를 끄면 함께 중단됩니다.
Sentry
(Functional Software, Inc.)
오류 발생 시 스택 트레이스, 오류 직전의 화면 이동·네트워크 요청 기록(Codeforces API 요청 주소에 포함된 공개 핸들이 들어갈 수 있음), 기기 모델·OS 버전, 앱 버전, 성능 측정값. IP 주소는 보내지 않도록 설정했습니다.오류 진단과 안정성·성능 개선‘사용 통계 및 오류 보고’를 끄면 함께 중단됩니다.
Rating Widget 사용 통계
(개발자, Cloudflare, Inc.)
이벤트 종류(설치 확인, 앱 실행, 샘플 데이터 둘러보기 시작), 앱 버전·빌드 번호, 플랫폼·OS 버전, 기기 모델, 기기 언어 설정, 핸들 등록 여부, 설치된 위젯 수, 마지막으로 앱을 연 뒤 지난 날 수. 핸들·레이팅·광고 식별자는 포함하지 않습니다. IP 주소는 Cloudflare가 과도한 요청을 막는 데에만 쓰고 저장하지 않습니다.설치·실행 현황과 날짜별 이용 통계(합계) 파악‘사용 통계 및 오류 보고’를 끄면 함께 중단됩니다.
Expo 업데이트·인사이트
(650 Industries, Inc.)
앱 버전, 런타임 버전, 플랫폼, 무작위 설치 식별자, IP 주소앱 업데이트 확인·배포, 업데이트 적용 현황 집계앱 기능 제공에 필요합니다.
App Store · Google Play
(Apple Inc., Google LLC)
광고 제거 구매 내역과 결제 정보(스토어가 처리)인앱 결제와 구매 복원구매할 때만 사용됩니다.

각 서비스의 정보 처리는 제공자의 방침을 따릅니다: Codeforces, Google 개인정보처리방침, Google이 파트너 사이트·앱의 정보를 사용하는 방식, Firebase 개인정보 보호, Sentry 개인정보처리방침, Cloudflare 개인정보처리방침, Expo 개인정보처리방침.

4. 개인정보의 국외 이전

위 서비스를 이용하는 과정에서 아래 정보가 국외로 전송·보관될 수 있습니다.

이전받는 자국가항목시기·방법목적·보유 기간
Codeforces (ITMO University)러시아요청한 핸들, IP 주소레이팅·대회 정보를 불러올 때 네트워크를 통해 전송공개 정보 조회. Codeforces 정책에 따름
Google LLC미국 등 Google 데이터센터 소재국광고 식별자, 기기·앱 정보, 사용 이벤트, 오류 정보, IP 주소앱 사용 중 수시로 네트워크를 통해 전송광고 게재·사용 통계·오류 분석. Analytics 최대 14개월, Crashlytics 90일, 광고 관련 데이터는 Google 정책에 따름
Functional Software, Inc. (Sentry)미국오류 정보, 오류 직전 동작·요청 기록, 기기·앱 정보, 성능 측정값오류 발생 시와 앱 사용 중 네트워크를 통해 전송오류 진단. Sentry 보관 정책에 따라 최대 90일
Cloudflare, Inc.미국 등 Cloudflare 데이터센터 소재국3항 ‘Rating Widget 사용 통계’의 항목설치 확인·앱 실행 시 네트워크를 통해 전송개발자 사이트(cfwidget.leed.at)에서 날짜·플랫폼별 합계만 366일 보관 후 삭제
650 Industries, Inc. (Expo)미국앱 버전, 플랫폼, 설치 식별자, IP 주소앱 실행·업데이트 확인 시 네트워크를 통해 전송앱 업데이트 제공. Expo 정책에 따름

국외 이전을 원하지 않으면 앱 설정에서 사용 통계 및 오류 보고와 맞춤 광고를 끄거나, 앱 사용을 중단하고 삭제할 수 있습니다.

5. 보관 기간과 삭제 방법

기기에 저장된 정보는 이용자가 지우거나 앱을 삭제할 때까지 보관됩니다. 개발자는 이용자의 핸들과 레이팅 기록을 따로 보관하지 않습니다.

  • 핸들 지우기: 앱 설정의 ‘핸들 지우기’를 누르면 기기에 저장된 핸들, 레이팅 기록, 대회 알림이 삭제되고 위젯은 핸들 입력 안내로 바뀝니다. 친구는 ‘친구와 알림’ 화면에서 지울 수 있습니다.
  • 캐시 지우기: 앱 설정의 ‘캐시 지우기’로 저장된 레이팅 기록을 지울 수 있습니다.
  • 앱 삭제: 앱과 위젯에 저장된 데이터가 함께 삭제됩니다.
  • 제3자 서비스: Firebase Analytics 데이터는 최대 14개월, Crashlytics 오류 보고서는 90일, Sentry 오류 보고서는 최대 90일 동안 보관된 뒤 삭제되며, AdMob 관련 데이터는 Google 정책에 따릅니다.
  • 사용 통계: 개발자 사이트는 이벤트를 받을 때 날짜·플랫폼별 합계(예: 그날 앱을 연 기기 수, 앱 버전별 기기 수)만 남기고, 개별 기기나 이용자를 알아볼 수 있는 정보는 저장하지 않습니다. 합계는 366일이 지나면 삭제합니다.
  • 문의 이메일: 보내 주신 이메일은 답변과 후속 지원에 필요한 기간 동안만 보관한 뒤 삭제합니다.

6. 아동의 개인정보

앱은 만 14세 미만 아동(대한민국 외 지역에서는 만 13세 미만 또는 현지 법령이 정한 연령 미만)을 대상으로 하지 않으며, 아동의 개인정보를 고의로 수집하지 않습니다. 앱 내 광고의 콘텐츠 등급은 PG 이하로 제한합니다. 아동의 정보가 처리된 사실을 알게 되면 me@leed.at으로 알려 주세요. 지체 없이 조치하겠습니다.

7. 이용자의 권리

이용자는 언제든지 자신의 정보에 대한 열람, 정정, 삭제, 처리 정지를 요구할 수 있습니다. 앱이 다루는 정보는 이용자의 기기에 있으므로 앱에서 직접 확인하고, 핸들 지우기나 앱 삭제로 지울 수 있습니다. 맞춤 광고와 사용 통계 및 오류 보고는 앱 설정에서 언제든 끌 수 있습니다. 그 밖의 요청은 me@leed.at으로 보내 주시면 지체 없이 답변드립니다.

8. 안전성 확보 조치

  • 모든 통신은 HTTPS(TLS)로 암호화됩니다.
  • 비밀번호나 인증 토큰을 다루지 않습니다.
  • 핸들과 레이팅 기록을 개발자 서버에 모아 두지 않습니다.
  • Codeforces API 호출 간격 제한을 지켜 과도한 요청을 보내지 않습니다.

9. 방침의 변경

이 방침을 변경하면 시행 7일 전(이용자에게 불리한 변경은 30일 전)부터 이 페이지와 앱을 통해 알립니다. 현재 방침의 시행일은 이 페이지 상단에서 확인할 수 있습니다.

10. 문의 및 개인정보 보호책임자

개인정보 침해에 대한 신고나 상담이 필요하면 개인정보침해신고센터(privacy.kisa.or.kr, 국번 없이 118) 또는 개인정보분쟁조정위원회(www.kopico.go.kr, 1833-6972)에 문의할 수 있습니다.

English

Rating Widget for Codeforces

Privacy Policy

Effective October 26, 2026한국어

leed.at (“we”, “the developer”) provides Rating Widget for Codeforces (“the app”). This policy explains what information the app handles and how. The app has no sign-in: the Codeforces handles you enter and the public information fetched from Codeforces are displayed and stored only on your device.

No sign-inNo password or account access is ever requested.
Stored on your deviceHandles, friends and rating history are not stored on a developer server.
Straight from CodeforcesThe app and widgets talk to the public Codeforces API directly.
Delete anytimeRemove your handle in Settings or delete the app.

1. Information we handle and why

Codeforces handles

The handle you enter for yourself and up to 10 friends’ handles. They are used only to fetch those users’ public information from Codeforces. A handle is a public Codeforces username.

Public Codeforces information

Rating, max rating and rank, rating history and places per contest, recent submissions (to count solving days) and the contest schedule. Used to show the app’s screens and Home Screen and Lock Screen widgets, and to decide when to send rating and friend rank alerts.

App settings

Theme, language, rating chart range, alert switches and per-contest reminders, personalized ads and usage analytics choices, and whether ads were removed. Used to make the app work the way you choose.

The app does not access contacts, photos, precise location, payment methods or other personal information. The ad-removal purchase is processed by the App Store or Google Play; we never receive your payment details.

2. Where it is stored

Your handle, friends list, rating history and alert state are stored only on your device. The app and widgets communicate directly with the Codeforces API (codeforces.com) over HTTPS and never send this information to a developer server.
  • iOS: settings and the data cache live in the app’s private storage; the handle, friends list and rating summary used by widgets live in the App Group storage (UserDefaults) shared by the app and its widgets.
  • Android: settings and the data cache live in the app’s private storage; the handle, friends list and rating summary used by widgets live in the app’s private SharedPreferences.
  • Rating, contest and friend rank alerts are decided on the device and delivered as local notifications. No push notification server is used.
  • We do not collect your handle or rating history, and we never sell or rent it or use it for advertising or AI model training.

3. Third-party services

The app uses the following services to fetch data and to run and improve the app.

ServiceInformationPurposeYour choices
Codeforces API
(codeforces.com)
The requested handles, IP address, request time and similar standard web request informationFetching ratings, contest history, submissions and the contest scheduleRequired for the app to work. Nothing is requested once you clear your handle.
Google AdMob
(Google LLC)
Advertising identifiers (iOS IDFA only if you allow tracking; Android advertising ID), IP address, device and app information, ad impressions and clicksServing banner and native ads on the dashboard, measuring ad performance, preventing fraudIn the EEA, UK, Switzerland and similar regions consent is collected through Google’s UMP message. On iOS the IDFA is used only if you allow App Tracking Transparency. Turning off personalized ads in Settings requests non-personalized ads only, and “Privacy options” lets you change consent. After you remove ads, no ads are requested.
Firebase Analytics
(Google LLC)
App instance ID, screen views and feature events (never handles or ratings), device model, OS version and language, approximate region from IPAnonymous usage statistics to improve the appTurn off “Usage analytics & crash reports” in Settings.
Firebase Crashlytics
(Google LLC)
Stack traces on crashes, device model and OS version, app state, Crashlytics installation IDDiagnosing errors and improving stabilityStops when “Usage analytics & crash reports” is off.
Sentry
(Functional Software, Inc.)
Stack traces on errors, navigation and network request breadcrumbs before an error (Codeforces API request URLs, which can include public handles), device model and OS version, app version, performance measurements. Configured not to send IP addresses.Diagnosing errors and improving stability and performanceStops when “Usage analytics & crash reports” is off.
Rating Widget usage statistics
(the developer, Cloudflare, Inc.)
Event type (install check, app open, sample data started), app version and build number, platform and OS version, device model, device language, whether a handle is saved, number of installed widgets, days since the app was last opened. Never handles, ratings or advertising identifiers. Cloudflare uses the IP address only to block excessive requests and does not store it.Understanding installs and opens, and daily usage totalsStops when “Usage analytics & crash reports” is off.
Expo Updates & Insights
(650 Industries, Inc.)
App version, runtime version, platform, random installation ID, IP addressChecking for and delivering app updates, counting update adoptionRequired for the app to work.
App Store · Google Play
(Apple Inc., Google LLC)
Ad-removal purchase records and payment details (handled by the store)In-app purchase and restoring purchasesUsed only when you purchase.

Each service handles information under its own policy: Codeforces, Google Privacy Policy, How Google uses information from sites or apps that use its services, Privacy and Security in Firebase, Sentry Privacy Policy, Cloudflare Privacy Policy, Expo Privacy Policy.

4. International transfers

Using the services above may transfer and store the following information outside your country.

RecipientCountryInformationWhen and howPurpose and retention
Codeforces (ITMO University)RussiaRequested handles, IP addressOver the network when ratings and contests are fetchedLooking up public information, under Codeforces’ policies
Google LLCUnited States and other countries with Google data centersAdvertising identifiers, device and app information, usage events, error information, IP addressOver the network while the app is in useAds, usage statistics and error analysis. Analytics up to 14 months, Crashlytics 90 days, ad data under Google’s policies
Functional Software, Inc. (Sentry)United StatesError information, breadcrumbs, device and app information, performance measurementsOver the network when errors occur and while the app is in useError diagnosis. Up to 90 days under Sentry’s retention
Cloudflare, Inc.United States and other countries with Cloudflare data centersThe items listed under “Rating Widget usage statistics” in section 3Over the network on install checks and app opensOnly daily totals by platform are kept on the developer site (cfwidget.leed.at) for 366 days, then deleted
650 Industries, Inc. (Expo)United StatesApp version, platform, installation ID, IP addressOver the network on launch and update checksDelivering app updates, under Expo’s policies

If you do not want these transfers, turn off usage analytics and personalized ads in Settings, or stop using and delete the app.

5. Retention and deletion

Information on your device is kept until you delete it or the app. We do not keep your handle or rating history.

  • Remove handle: “Remove handle” in Settings deletes the stored handle, rating history and contest reminders, and widgets switch to the handle prompt. Remove friends on the “Friends & alerts” screen.
  • Clear cache: “Clear cache” in Settings deletes the stored rating history.
  • Delete the app: data stored by the app and its widgets is deleted with it.
  • Third-party services: Firebase Analytics data is kept up to 14 months, Crashlytics reports 90 days and Sentry reports up to 90 days before deletion; AdMob data follows Google’s policies.
  • Usage statistics: the developer site keeps only daily totals by platform (for example, devices that opened the app that day, or devices per app version) and stores nothing that identifies an individual device or person. Totals are deleted after 366 days.
  • Support email: emails you send are kept only as long as needed to answer and follow up, then deleted.

6. Children’s privacy

The app is not directed to children under 14 (under 13, or the age set by local law, outside Korea) and we do not knowingly collect children’s personal information. Ads in the app are limited to content rated PG or lower. If you learn that a child’s information has been processed, please email me@leed.at and we will act promptly.

7. Your rights

You may request access to, correction or deletion of, or a stop to the processing of your information at any time. Because the information lives on your device, you can review it in the app and delete it by clearing your handle or deleting the app. Personalized ads and usage analytics can be turned off in Settings at any time. For anything else, email me@leed.at and we will reply promptly.

8. Security

  • All communication is encrypted with HTTPS (TLS).
  • The app never handles passwords or authentication tokens.
  • Handles and rating history are not collected on a developer server.
  • The app respects the Codeforces API call limits and avoids excessive requests.

9. Changes to this policy

We will announce changes on this page and in the app at least 7 days before they take effect (30 days for changes unfavorable to you). The effective date of the current policy is shown at the top of this page.

10. Contact