Python Dimensions — 개인정보 처리방침
마지막 업데이트: 2026-05-26
1. 개요#
Python Dimensions는 ChengChe Lee가 개발한 Python 프로그래밍 학습 앱이며, 내장 Python 3.13 런타임, 온디바이스 AI 튜터, 시스템 전역 Python 코더 키보드를 제공합니다.
요약하자면, 본 앱은 개인 식별이 가능한 정보를 일절 수집하지 않으며, 앱 개선을 돕기 위해 완전히 익명화된 사용 통계만 수집합니다. 모든 학습 콘텐츠, 코드, AI 대화는 사용자의 기기 내에 머무릅니다.
2. 수집하지 않는 데이터#
본 앱은 다음 항목을 수집하지 않습니다.
- 개인 식별 정보(이름, 이메일, 전화번호, Apple ID)
- 위치 데이터
- 광고 식별자(IDFA)
- 문제, 코드, AI 대화 또는 AI 프롬프트에 입력하신 내용
- 원본 IP 주소(TelemetryDeck는 수신 시점에 일시적으로 사용하여 국가를 도출한 뒤 즉시 폐기하며, 원본 IP는 결코 보존되지 않습니다)
3. 로컬 저장 데이터#
다음 데이터는 사용자의 기기에만 저장되며 외부로 전송되지 않습니다.
- 학습 진행 상황 — 모든 문제 유형(점/MCQ, 선/Cloze, 면/Parsons)의 응답 기록 및 오답 추적
- 코드 — 내장 Playground 및 Python 시스템 키보드를 통해 작성하신 프로그램
- AI 대화 기록 — AI 튜터와의 대화는 로컬에 저장됩니다
- 사용자 설정 — 난이도 선호, 인터페이스 설정, 키보드 환경설정
4. 오프라인 AI 및 로컬 실행#
모든 AI 기능과 코드 실행은 네트워크 연결 없이 기기 내에서 완전히 수행됩니다.
- AI 튜터 — 로컬 대규모 언어 모델(LLM)을 사용해 힌트와 설명을 제공하며, 모든 추론은 기기 내에서 실행됩니다
- Python 런타임 — 내장된 Python 3.13 인터프리터는 기기 내에서 완전히 실행되며, 사용자의 코드는 어떠한 서버로도 전송되지 않습니다
- Python 시스템 키보드 — 키보드 확장은 전체 액세스 권한 없이 샌드박스 내에서 동작하며, 입력하신 어떠한 텍스트도 전송하지 않습니다
AI 모델은 최초 사용 전 일회성 다운로드가 필요합니다(사용자가 직접 시작). 다운로드 후에는 모든 기능이 오프라인에서 작동합니다.
5. 익명 사용 분석 (TelemetryDeck)#
어떤 기능이 유용한지 파악하고, 신규 사용자가 온보딩 중 어디에서 막히는지 찾아내며, 성능 문제를 포착하기 위해 본 앱은 TelemetryDeck(독일 본사, GDPR 준수)를 사용하여 익명 사용 신호를 수집합니다.
수집 목적#
- 신규 사용자 경험 개선. 단계별 온보딩 이벤트(welcome 표시, 페르소나 선택, 완료, 건너뜀)는 어느 단계에서 이탈이 발생하는지 알려주어 문구와 흐름을 다듬을 수 있게 합니다.
- 성능 최적화.
perf_*이벤트는 콜드 스타트, 탭 전환, LLM 로드, Python 최초 실행 시간을 측정하여 어떤 화면에 작업이 필요한지 파악합니다. - 콘텐츠 방향성 결정. 사용자가 실제로 참여하는 차원(점/선/면)과 자격증(PCEP / TQC+ / CPE)을 통해 다음 문제 은행 확장 방향을 결정합니다.
- 기능 가치 및 리텐션 평가. 탭 체류 시간, 위젯 사용, 세션 길이는 어떤 기능이 가치를 발휘하고 어떤 기능을 정리해야 할지 알려줍니다.
수집 항목#
각 신호는 이벤트 이름과 작은 구조화된 페이로드를 포함합니다.
사용자 여정(퍼널 이벤트, 100% 업로드)
app_launched— 실행 유형, 앱 버전, 빌드, 로케일, 기기 모델onboarding_welcome_shown/onboarding_persona_picked/onboarding_completed— 온보딩 진행 상황(선택한 페르소나 및 자격증 선호 cert_type 포함)practice_first_question_shown— 최초 문제 ID 및 차원practice_first_answer_submitted— 최초 응답의 정오답 여부, 차원, 사고 시간session_ended— 세션 길이, 응답한 문제 수, 방문한 탭, 상위 탭
성능(perf 이벤트, 25% 샘플링)
perf_cold_start_complete— 콜드 스타트 ms 및 단계별 분해perf_tab_switched— 탭 전환 지연 시간perf_llm_load_complete/perf_llm_first_token— LLM 로드 및 첫 토큰 지연 시간, 성공 여부, model_idperf_python_first_run— Python 최초 실행 워밍업, 스크립트 크기, 성공 여부
참여도(engagement 이벤트, 10% 샘플링)
practice_question_answered— 정오답 여부, 차원, 출처, 사고 시간chat_message_sent— AI 응답 ms, 성공 여부 (프롬프트 내용은 전송하지 않습니다)widget_deep_link_used— 위젯에서 탭한 개념 IDtab_appeared— 사용자가 연 탭
TelemetryDeck SDK 기본 본문: 앱 버전, 빌드, 기기 모델(예: iPhone17,1), iOS 주요 버전, 지역 + 언어, TelemetryDeck가 기기 내에서 생성한 단방향 해시 식별자(공급자별, Apple ID나 기기 UUID로 역추적 불가), 그리고 세션 UUID.
수집하지 않는 항목#
- 이름, 이메일, 광고 식별자(IDFA)
- 원본 IP 주소(TelemetryDeck는 수신 시점에 일시적으로 사용하여 국가를 도출한 뒤 즉시 폐기합니다)
- 응답 내용, Playground 코드, AI 대화 또는 AI 프롬프트의 내용
- 사용자 개인 신원으로 연결될 수 있는 모든 데이터
샘플링#
퍼널 이벤트는 100%, 성능 이벤트는 25%, 참여도 이벤트는 10%로 업로드됩니다. 세션당 총 대역폭은 일반적으로 1 KB 미만입니다.
App Privacy 매핑#
| 카테고리 | 하위 유형 | 목적 |
|---|---|---|
| 사용 데이터 | 제품 상호작용 | 앱 기능 |
| 진단 | 성능 데이터 | 앱 기능 |
| 식별자 | 기기 ID (TelemetryDeck 익명 해시) | 앱 기능 |
위 세 항목 모두 신원에 연결되지 않음, 추적에 사용되지 않음으로 선언되어 있습니다.
옵트아웃 방법#
- iOS 설정 → 개인정보 보호 및 보안 → 추적에서 추적을 끄면 식별자 신호의 해상도가 낮아집니다.
- 앱 내 토글은 향후 출시에 도입을 검토 중입니다.
6. 제3자 서비스#
본 앱은 다음의 제3자 서비스를 사용합니다.
| 서비스 | 목적 | 수집 데이터 | 제공자 지역 |
|---|---|---|---|
| TelemetryDeck | 익명 사용 분석 | 익명 이벤트, 기기 모델, 언어, 익명 해시 식별자 | 독일 (EU/GDPR) |
본 앱은 다음을 사용하지 않습니다: Google Analytics, Facebook SDK, Firebase Analytics, 광고 SDK, 제3자 크래시 리포팅 서비스.
7. 네트워크 접근#
네트워크 접근은 다음으로 한정됩니다.
- AI 모델 다운로드(선택 사항, 일회성) — 사용자가 명시적으로 LLM 모델 리소스를 다운로드하기로 선택했을 때에만 진행됩니다(일반적으로 Hugging Face 또는 유사한 공개 모델 호스트)
- 익명 분석 업로드(백그라운드) — 작은 익명 이벤트 패킷을 HTTPS를 통해 TelemetryDeck로 전송합니다(5절 참조)
- 외부 링크 — 관련 링크를 탭하면 브라우저가 열립니다
위 사항을 제외하고 본 앱은 네트워크 연결을 시작하지 않습니다. 코드 실행은 로컬 Python 환경에서 완전히 수행됩니다.
8. 아동의 개인정보#
본 앱은 모든 연령에 적합하며, 13세 미만 아동을 대상으로 의도적으로 분석 이벤트를 수집하지 않습니다. TelemetryDeck 신호는 완전히 익명이며 특정 사용자(미성년자 포함)를 식별할 수 없습니다.
9. 정책 변경#
본 정책은 수시로 업데이트될 수 있습니다. 중요한 변경 사항은 앱 내에서 공지하거나 본 페이지의 “마지막 업데이트” 날짜를 갱신하여 알려드립니다.
10. 문의#
📧 qqder339@gmail.com 제목: Python Dimensions 개인정보 처리방침 문의