⚠️ 법률 전문가 검토 전 초안 — 본 문서는 코드 구현 사실에 기반해 작성된 정본 후보이며, 게시 전 법률 전문가 검토와 [확인 필요]·[기입 필요] 항목 해소를 거쳐야 합니다.
runclip 개인정보 처리방침
시행일·최종 수정일: 2026년 7월 4일 (v2 — 러넬 피드·기록 동기화·runclip Pro 반영)
runclip("앱")은 러닝을 GPS로 기록하고, 사진·영상 위에 기록 모듈을 배치해 이미지/영상으로 저장하며, 선택적으로 그 결과물을 앱 내 피드 "러넬"에 올려 공유할 수 있는 앱입니다. 앱은 개인 개발자가 운영합니다.
앱의 데이터 처리는 사용 방식에 따라 3계층으로 나뉩니다.
| 계층 | 조건 | 데이터가 저장되는 곳 |
|---|---|---|
| ① 로컬 전용 | 로그인하지 않고 사용 | 러닝 기록·사진·영상 등 개인 콘텐츠는 사용자 기기에만 저장, 외부 전송 없음 (단, 오류 진단 데이터(§1-6)와 사용자가 동의한 익명 통계(§1-5)는 예외) |
| ② 기록 동기화 | Google/Apple 계정으로 로그인 | 러닝 기록이 본인 계정 전용 클라우드 공간에 백업·다기기 동기화 |
| ③ 피드 게시 | 러넬에 클립을 직접 업로드 | 업로드한 콘텐츠가 설정한 공개 범위에 따라 다른 사용자에게 공개 |
핵심 원칙:
- 로그인하지 않으면 러닝 기록·사진·영상은 기기에만 저장되며 외부로 전송되지 않습니다 (오류 진단 정보는 예외 — §1-6).
- 로그인·업로드는 모두 사용자의 선택입니다. 공개 클립 열람은 로그인 없이도 가능합니다.
- 개인 데이터를 판매하거나 광고 목적으로 제3자에게 제공하지 않으며, 광고 SDK가 없습니다.
1. 수집·저장하는 정보와 목적
1-1. 기기에만 저장 (비로그인 — 외부 전송 없음)
로그인하지 않은 경우 다음 정보는 사용자 기기 내부에만 저장되며, 개발자나 제3자에게 전송되지 않습니다.
- 러닝 기록: 거리, 시간, 페이스, 1km 구간 기록, GPS 경로 좌표, 시작 시각.
- 워치 측정값(연동 시): 심박수, 칼로리.
- 사용자 입력: 기록 제목·메모, 수동 입력 기록.
- 사진·영상: 배경으로 선택·촬영한 이미지/영상, 편집(에디터) 상태.
- 앱 설정: 단위, 테마, 워터마크, 분석 동의 여부, 구매 상태 캐시.
- 백업 파일: 사용자가 직접 내보내기를 실행할 때 생성되는 JSON 파일(기록·좌표·에디터 상태 포함). 저장 위치와 이후 처리는 사용자가 통제합니다.
1-2. 계정 정보 (로그인 시)
로그인은 Google 또는 Apple 소셜 로그인만 지원합니다(이메일/비밀번호 가입 없음).
- 인증 정보(Firebase Authentication): 계정 고유 식별자(UID), 소셜 계정의 표시 이름·이메일 주소·프로필 사진 URL. 이메일 주소는 인증·계정 식별 목적으로만 처리하며 다른 사용자에게 공개하지 않습니다.
- 프로필 문서(다른 사용자에게 보일 수 있는 정보): 핸들(자동 생성, 변경 가능), 표시 이름, 프로필 사진, 소개(bio), 프로필 공개 여부, 팔로워/팔로잉/클립 수, 가입 시각. 프로필 문서에는 이메일이 저장되지 않습니다.
- 프로필 공개 여부의 기본값은 "공개" 이며 프로필 편집에서 비공개로 변경할 수 있습니다. 단, 프로필을 비공개로 해도 "공개"로 설정한 클립은 피드에 계속 노출됩니다(공개 범위는 클립 단위로 적용).
- 프로필 사진은 공개 CDN(Cloudflare R2)에 저장되어, 프로필 공개 여부와 무관하게 이미지 URL을 아는 경우 접근될 수 있습니다.
1-3. 러닝 기록 클라우드 동기화 (이하 "기록 동기화" — 로그인 시 자동)
로그인하면 러닝 기록이 본인 계정 전용 클라우드 공간에 백업되어 다기기 동기화에 사용됩니다. 로그인 시점에 기기에 있던 기존 기록 전체가 함께 백업됩니다.
- 동기화 항목: 거리·시간·평균 페이스·시작 시각·1km 구간 기록, 기록 제목·메모, 기록 출처(GPS/수동), 심박수·칼로리(워치로 측정된 경우), 전체 GPS 경로 좌표(위도·경도·시각·고도·정확도) 및 요약 경로.
- 저장 위치: Firebase Firestore의 본인 전용 문서. 대용량 경로(압축 후 400KB 이상)는 Cloudflare R2의 본인 전용 경로에 저장됩니다.
- 접근 제어: 서버 보안 규칙상 본인 계정만 읽고 쓸 수 있으며, 다른 사용자·비로그인 사용자에게 공개되지 않습니다. R2의 경로 파일은 시간제한이 있는 서명 URL로만 접근됩니다.
- 동기화되지 않는 것: 에디터로 만든 이미지·영상 결과물, 원본 사진·영상. 피드 게시는 별도의 명시적 행위입니다(1-4).
- 비로그인 상태에서는 어떤 기록도 서버로 전송되지 않습니다.
1-4. 러넬 피드 게시 콘텐츠 (직접 업로드할 때만)
클립을 업로드할 때 다음이 클라우드에 저장됩니다.
- 미디어 파일: 완성된 영상 또는 이미지, 썸네일 (Cloudflare R2).
- 클립 정보(Firebase Firestore): 작성자 UID, 캡션, 공개 범위, 경로 숨김 설정값, 거리·페이스 표시 문자열(지표 표시를 켠 경우), 좋아요 수, 게시 시각.
- 클립 정보에는 원시 GPS 좌표·경로 데이터가 포함되지 않습니다. 다만 에디터에서 코스 지도 모듈을 배치해 내보낸 경우, 경로 모양이 영상/이미지 픽셀에 포함된 채 업로드됩니다(§2 참조).
- 상호작용 데이터: 좋아요, 팔로우/팔로워 관계, 신고 접수 기록(앱 내 신고 기능 제공 시).
1-5. 익명 사용 통계 (Firebase Analytics)
앱 개선을 위해 개인을 식별할 수 없는 사용 통계를 수집할 수 있습니다.
- 기본값은 수집 안 함(OFF) 입니다. 단, 소셜 로그인에 성공하면 분석 수집 동의가 자동으로 켜집니다. 로그인 후에도 설정 화면의 토글로 언제든 끌 수 있으며, 끄면 이후 수집이 즉시 중단됩니다.
- 앱이 직접 기록하는 이벤트: 러닝 시작·완료, 수동 기록 저장, 이미지 내보내기, 백업 내보내기·가져오기, 결제 화면 조회, 구매 시작·완료·복원.
- 함께 전송되는 비식별 파라미터: 기록 출처, 거리 구간(예: 3~10km), 캔버스 비율, 모듈 수, 배경 종류, 내보내기 품질, 결제 화면 진입 경로, 상품 ID·상품 종류.
- 이 외에 수집이 켜진 동안에는 Firebase SDK가 표준적으로 수집하는 자동 이벤트(앱 실행·세션 등)와 기기 정보가 함께 수집될 수 있습니다.
- 전송하지 않는 것: GPS 좌표·경로, 기록 제목·메모, 사진·영상 및 그 식별자, 이름·이메일 등 개인 식별 정보는 분석 파라미터로 전송하지 않습니다(사전에 정의된 비식별 파라미터만 전송되도록 설계돼 있습니다).
1-6. 진단·안정성 데이터 (Firebase Crashlytics)
앱 오류·비정상 종료 시 원인 파악을 위한 진단 정보(오류 스택 트레이스, 기기 모델, OS 버전, 앱 버전 등 기술 정보)가 수집됩니다.
- 크래시 진단 수집은 위 1-5의 분석 동의 토글과 별개로 동작하며, 분석 동의를 꺼도 수집됩니다.
- 1-1의 개인 데이터(좌표·사진·메모 등)는 포함되지 않습니다.
1-7. 결제 정보 (runclip Pro)
runclip Pro는 월 구독(₩3,900), 연 구독(₩19,000, 7일 무료 체험), 평생 이용권(₩39,000, 일회 구매)으로 제공됩니다.
- 결제·환불은 전적으로 App Store(Apple)·Google Play(Google)가 처리합니다. 개발자는 카드번호 등 결제수단 정보에 접근할 수 없으며, 결제 정보를 자체 서버로 전송·저장하지 않습니다(자체 서버 없이 기기와 스토어 간에만 처리).
- 기기에는 구매 상태(Pro 여부, 상품 종류)만 저장됩니다(iOS는 기기 전용 키체인, Android는 앱 내부 저장소).
- 분석 동의가 켜진 경우에 한해 구매 퍼널 이벤트(결제 화면 조회, 구매 시작·완료·복원 — 상품 ID·진입 경로 수준)가 1-5에 따라 수집됩니다. 결제 금액·결제수단 정보는 수집하지 않습니다.
- 자동갱신 구독의 해지는 각 스토어의 구독 관리 메뉴에서 가능합니다.
2. 공개 공유의 의미 (중요)
- "공개(public)"로 올린 클립은 로그인하지 않은 사람을 포함해 누구나 볼 수 있습니다. 공개 클립의 미디어는 공개 CDN URL로 제공되므로, URL이 공유되면 앱 밖에서도 접근될 수 있습니다. 공개에서 비공개로 전환해도 이미 외부에 공유된 기존 URL로는 접근이 지속될 수 있습니다.
- "팔로워"·"비공개" 클립의 미디어는 권한 검증을 거친 시간제한(1시간) 서명 URL로만 제공됩니다.
- 공개 범위(비공개/팔로워/공개)는 업로드 시 선택합니다. [확인 필요: 기본 공개 범위 — 현재 업로드 화면 안내 문구("기본은 비공개")와 실제 동작(기본 "공개")이 불일치하므로, 앱 수정 후 확정 문구 기재]
- 경로 노출에 대한 안내: 업로드 시 "경로 숨김" 설정이 제공됩니다(기본 켜짐). 다만 에디터에서 코스 지도 모듈을 배치해 내보낸 영상/이미지에는 경로 모양이 픽셀로 포함되어 있으며, 경로 숨김 설정이 이를 제거하지 않습니다. 시작·도착 지점(집·직장 등)이 드러나지 않도록, 경로 공개를 원하지 않으면 코스 지도 모듈을 배치하지 않은 결과물을 업로드해 주세요. [확인 필요: 경로 숨김 설정의 실제 노출 제어 동작 확정 후 문구 조정]
- 캡션·프로필(핸들·표시 이름·프로필 사진)도 클립과 함께 다른 사용자에게 표시됩니다.
3. 권한 및 사용 목적
앱은 아래 권한을 해당 기능을 사용하는 시점에 요청합니다. 거부해도 다른 기능은 정상 동작합니다.
| 권한 | 사용 목적 |
|---|---|
| 위치(정밀/대략) | 러닝 경로·거리·페이스 기록. 화면이 꺼져도 측정을 유지하기 위해 측정 중 백그라운드 위치를 사용합니다(Android 포그라운드 서비스 / iOS 백그라운드 위치 모드). |
| 카메라 | 기록 사진의 배경을 직접 촬영. |
| 사진 보관함(iOS, 추가 전용) | 완성한 기록 이미지·영상을 앨범에 저장. 기존 사진을 읽는 권한은 사용하지 않습니다. |
| 알림 | 러닝 진행 상태·완료 알림, 실시간 표시(Live Activity 등), 업로드 진행 알림. |
| 건강(HealthKit / 신체 센서, 워치) | 러닝 중 심박수·칼로리 측정·표시, 운동 기록 저장. 건강 데이터는 기기와 본인 계정 동기화(1-3, 로그인 시)에만 사용되며 다른 사용자에게 공개되지 않습니다. |
| 신체 활동 인식(Android Wear) | 워치 운동 측정. |
| 배터리 최적화 예외(Android, 선택) | 장시간 러닝 중 측정 서비스가 강제 종료되지 않도록 요청. |
4. 처리 위탁 및 국외 이전 (제3자 처리자)
개발자는 아래 서비스에 데이터 처리를 위탁합니다. 각 사업자는 자체 개인정보 정책에 따라 데이터를 처리하며, 서버가 국외에 위치할 수 있습니다.
| 처리자 | 처리 내용 | 저장 위치(리전) |
|---|---|---|
| Google Firebase Authentication | 계정 인증(UID·이름·이메일·프로필 사진 URL) | Google 인프라(글로벌 서비스, 국외 포함) |
| Google Firebase Firestore | 프로필·클립 정보·좋아요/팔로우·기록 동기화 데이터 | 대한민국 서울(asia-northeast3) |
| Google Firebase Cloud Functions | 업로드/재생 URL 발급, 팔로우 처리, 삭제 데이터 정리 등 서버 로직 | 미국(us-central1) |
| Google Firebase Analytics | 익명 사용 통계(1-5, 동의 시) | Google 인프라(국외 포함) |
| Google Firebase Crashlytics | 크래시 진단(1-6) | Google 인프라(국외 포함) |
| Google Firebase App Check | 앱 위·변조 방지를 위한 기기 무결성 토큰 | Google 인프라 |
| Cloudflare R2 | 클립 영상/이미지·썸네일, 프로필 사진, 대용량 경로 파일 저장·전송 | Cloudflare 인프라(리전 자동 배정, 국외 포함) |
| Google Maps SDK (Android) | 지도 표시·코스 지도 렌더링. 렌더링을 위해 기기·사용 정보가 Google로 전송될 수 있음 | Google 인프라 |
| Apple MapKit (iOS) | 지도 표시·코스 지도 렌더링 | Apple 인프라 |
| Apple HealthKit (Apple Watch) | 심박·칼로리 측정 | 기기 내 처리 |
참고: Google 개인정보처리방침 · Firebase 데이터 처리 · Cloudflare 개인정보처리방침 · Apple 개인정보처리방침
5. 제3자 제공·판매
개발자는 개인 데이터를 판매하지 않으며, 마케팅 목적으로 제3자에게 제공하지 않습니다. 데이터 처리는 §4의 위탁 범위(앱 동작·저장·통계·진단)에 한정됩니다. 앱에는 광고 SDK가 없습니다.
6. 보관 기간 및 파기
| 데이터 | 보관·파기 |
|---|---|
| 기기 내 데이터 | 앱 삭제 시 함께 삭제. 앱 내에서 개별 기록 삭제 가능. |
| 동기화된 러닝 기록 | 앱에서 기록을 삭제하면 해당 기록은 즉시 삭제 상태로 표시되어 앱에서 더 이상 표시·동기화되지 않습니다. 삭제된 기록의 데이터(경로 파일 포함)는 다기기 전파를 위해 서버에 최대 90일 보관된 후 자동으로 완전 파기됩니다. |
| 업로드한 클립 | 본인이 삭제하면 클립 정보가 즉시 삭제되고 미디어 파일(R2)이 자동 정리됩니다(CDN 캐시 전파에 짧은 지연 가능). |
| 계정·프로필 | 계정 삭제 시까지 보관. 삭제 절차는 §7. |
| 익명 통계·진단 데이터 | Firebase의 데이터 보관 정책에 따라 보관·삭제. |
| 신고 접수 기록 | 신고 처리 완료 후 1년(분쟁 대응 목적) 보관 후 파기. |
7. 정보주체의 권리와 행사 방법
사용자는 자신의 개인정보에 대해 열람·정정·삭제·처리정지 요구 및 동의 철회 권리를 갖습니다.
- 앱 내에서 직접: 프로필(이름·핸들·소개·사진·공개 여부) 수정, 클립 삭제, 러닝 기록 삭제, 분석 동의 해제, 로그아웃.
- 계정 삭제: 현재 앱 내 계정 삭제 기능은 제공되지 않습니다. 계정 및 관련 데이터(프로필·동기화 기록·업로드 클립)의 삭제를 원하시면 문의처(§11)로 요청해 주세요. 접수 후 지체 없이 처리합니다. [앱 내 계정 삭제 구현 필요 — Apple 심사 요건(App Store Review 5.1.1(v)): 구현 후 본 항을 앱 내 절차로 갱신할 것]
- 만 14세 미만 아동의 법정대리인은 아동의 개인정보에 대한 권리를 행사할 수 있습니다.
콘텐츠 신고·차단
- 불쾌하거나 부적절한 콘텐츠는 문의처(§11)로 신고할 수 있으며, 신고가 누적된 콘텐츠는 검토를 위해 자동으로 숨김 처리될 수 있습니다. [앱 내 신고 UI 구현 필요 — Apple UGC 심사 요건: 구현 후 앱 내 절차로 갱신할 것]
- [사용자 차단 기능 구현 필요 — Apple UGC 심사 요건: 현재 미제공, 구현 후 본 항 갱신할 것]
8. 안전조치
- 전송 구간 암호화(HTTPS).
- 서버 접근 제어: Firebase Security Rules로 기록 동기화 데이터·비공개 콘텐츠는 본인(또는 허용된 팔로워)만 접근하도록 강제.
- 비공개·팔로워 미디어와 경로 파일은 시간제한 서명 URL로만 접근.
- Firebase App Check(기기 무결성 검증) 도입 — 단계적 적용 중.
- 분석 파라미터는 사전 정의된 비식별 항목만 전송되도록 설계.
- 다만 인터넷을 통한 전송·저장이 100% 안전함을 보장할 수는 없습니다.
9. 아동의 개인정보
앱은 만 14세 미만 아동을 주 대상으로 하지 않으며, 아동의 개인정보를 의도적으로 수집하지 않습니다. 만 14세 미만은 계정 기능(로그인·러넬 피드)을 이용할 수 없습니다(이용약관상 금지). 아동의 개인정보가 수집된 사실이 확인되면 지체 없이 파기합니다.
10. 방침 변경
본 방침은 법령·기능 변경에 따라 갱신될 수 있습니다. 중요한 변경(수집 항목·목적·보관처 변경 등)은 앱 또는 본 문서를 통해 사전 고지하며, 변경 사항은 게시된 시행일부터 적용됩니다.
- 본 v2는 러넬 피드, 기록 동기화, runclip Pro 결제 기능 도입을 반영한 개정본입니다.
11. 개인정보 보호책임자 및 문의처
앱은 개인 개발자가 운영하며, 개발자가 개인정보 보호책임자를 겸합니다.
- 책임자: 김건우 (개발자)
- 이메일: i30649303@gmail.com
개인정보 열람·정정·삭제·처리정지 요청, 계정 삭제 요청, 콘텐츠 신고를 포함한 모든 문의를 위 이메일로 접수합니다. 개인정보 침해에 대한 신고·상담은 개인정보침해 신고센터(privacy.kisa.or.kr, 국번 없이 118), 개인정보 분쟁조정위원회(kopico.go.kr, 1833-6972)에 문의할 수 있습니다.
본 문서는 https://runclip.kr/privacy 에 게시됩니다.
English version: Privacy Policy (English) — 해석에 차이가 있는 경우 한국어판이 우선합니다.