개인정보

개인 건강과 계정 데이터의 경계를 분명히 합니다.

요약

개인 건강 추적은 계정 없이 기기에서 작동합니다. Pro 권한 확인에는 계정 식별자만 사용하며 건강 값은 전송하지 않습니다. 이전에 공유 기능을 사용한 계정에는 구성원 번호·역할과 구조화된 운동 일정·상태가 남아 있을 수 있습니다. 앱 내 광고는 18세 이상 무료 사용자에게만 제한적으로 표시하며 Pro 회원과 18세 미만 사용자에게는 표시하지 않습니다.

데이터 처리 경계
기기에만 있는 정보 HealthKit 원본, 심박수와 BPM, 혈당, 칼로리, 수면, 질병별 추정, 직접 입력한 건강 값
기존 공유 서버에 있는 정보 키 기반 HMAC 로그인 식별자, 구성원 번호와 역할, 만료되는 초대 코드, 운동 강도(MPA/VPA)·일정·시간·상태
기존 연결에 제공된 정보 구성원 번호와 역할, 명시적으로 공유한 운동 강도(MPA/VPA), 요일·시각·시간대 일정, 운동 시간, 완료·진행 중·기록 없음 상태
익명 광고 성과 정보 쿠팡 카드의 캠페인·광고 소재 버전, 노출·클릭·신고, 홈 위치, 카드 순서와 앱 버전. 건강·계정·기기 식별자는 포함하지 않음

개인 기능에서 처리하는 정보

사용자가 허용한 HealthKit 데이터와 확인 후 직접 입력한 혈당은 목표 BPM, 운동 기록, 추세와 웰니스 추정을 위해 기기에서 처리됩니다. Apple 건강 앱이 원본 데이터의 기준이며, Vitatally는 화면에 필요한 최소 파생 요약만 iOS Data Protection으로 보호해 로컬에 저장합니다.

개인 기능은 로그인 없이 사용할 수 있습니다. 개인 사용 중 건강 데이터는 개발자 서버로 전송하지 않습니다. 아래에 적은 쿠팡 카드 성과 정보에도 개인 건강 데이터나 계정 식별자를 넣지 않습니다.

공개 근거 요청

앱은 서명된 공개 논문 근거 카탈로그를 내려받을 수 있습니다. 이 요청에는 건강 값, 가족 정보 또는 사용자 식별자를 넣지 않습니다.

앱 내 광고

버전 1.0은 18세 이상 무료 사용자 홈의 한 자리에 Vitatally가 검토한 쿠팡 파트너스 카드 하나만 표시합니다. Pro 회원, 18세 미만 사용자와 나이가 확인되지 않은 사용자에게는 광고를 표시하지 않습니다.

쿠팡 카드에는 항상 광고라고 표시하고 수수료 안내 버튼을 제공합니다. 버튼을 누르면 “이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.”를 확인할 수 있습니다. 쿠팡 링크를 열면 쿠팡의 개인정보처리방침이 적용됩니다.

광고 요청에서 제외하는 정보

Vitatally는 HealthKit 데이터, BPM, METs, 운동 종류·강도·칼로리, 질병·위험 추정, 프로필·계정 데이터, IDFA, 기기 위치 또는 광고 타게팅 키워드를 쿠팡 상품 선택이나 성과 측정에 사용하거나 전송하지 않습니다. App Tracking Transparency 권한도 요청하지 않습니다.

익명 성과 측정과 신고

카드가 화면에 50% 이상 보이는 상태로 1초 이상 유지될 때 노출로 집계하고, 상품 링크를 실제로 열 때 클릭으로 집계합니다. 전송 항목은 스키마 버전, 사람·계정·기기를 식별하지 않는 무작위 노출 UUID, 캠페인 ID, 광고 소재 버전, 노출·클릭·신고, 앱 화면과 홈 위치, 카드 순서 및 앱 버전으로 제한합니다. 서버는 UUID를 SHA-256으로 해시하고 노출 해시 원장, 별도 신고 해시 원장과 익명 일별 집계를 91일 뒤 삭제합니다. 신고는 노출 수를 늘리지 않습니다.

정보 버튼에서 부적절하거나 연령에 맞지 않는 광고를 신고할 수 있습니다. 신고한 광고는 즉시 숨기고 같은 앱 설치에서 중복 신고하지 않습니다. 신고에도 건강·계정·기기 식별자를 포함하지 않습니다.

Google AdMob 지원 상태

버전 1.0 App Store 메인 타깃과 배포 바이너리에는 Google Mobile Ads SDK와 User Messaging Platform이 링크되거나 포함되지 않습니다. 조건부 AdMob 어댑터는 배포되지 않는 전용 PhoneOnlyQA 타깃에서만 재활성화할 수 있습니다. 따라서 버전 1.0은 Google 광고·UMP 요청과 App Tracking Transparency 권한 요청을 하지 않습니다. 향후 AdMob을 활성화하기 전에는 Google 광고 의존성을 App Store 타깃에 추가하기 전에 이 방침과 App Store Connect 개인정보 답변을 실제 처리에 맞게 갱신하고 필요한 동의 흐름을 다시 검증합니다.

기존 공유 계정에서 처리된 정보

이 항목은 이전에 가족 공유를 사용한 계정에 남아 있을 수 있는 데이터를 설명합니다. 새로운 가족 공유 가입이나 초대 기능은 더 이상 제공하지 않습니다.

계정과 연결

Google 로그인 토큰과 Google이 반환한 계정 정보는 인증 중에만 일시 처리합니다. 서버에는 검증된 Google 계정 식별자의 키 기반 HMAC만 저장합니다. 표시 이름이나 로그인 제공자의 프로필 이름은 서버에 전송하거나 저장하지 않습니다. Apple 계정 식별자도 키 기반 HMAC으로 저장합니다. 가족 안에서는 이름 대신 자동으로 부여된 구성원 번호와 소유자·구성원 역할을 사용합니다.

이메일 로그인

이메일 주소 원문은 인증 코드를 보내는 요청 동안에만 일시적으로 처리됩니다. D1에는 원문 주소가 아니라 키 기반 HMAC만 저장하며, 원문 주소는 코드 발송 요청이 끝난 뒤 가족 계정 데이터로 보관하지 않습니다.

공유되는 운동 일정

사용자가 공유를 선택한 운동 강도(MPA/VPA), 요일·시각·시간대 일정, 운동 시간과 완료·진행 중·기록 없음 상태만 처리합니다. 자유 입력 루틴 이름은 서버에 전송하거나 저장하지 않습니다. 가족 구성원에게는 구성원 번호·역할과 이 범위만 제공됩니다.

가족에게 제공하지 않는 정보

현재·목표 BPM, 심박수 기록, 혈당, 칼로리, HealthKit 원본, 질병별 추정, 논문 적용 결과와 직접 입력한 건강 값은 가족 공유 API와 화면에 포함하지 않습니다. 표시 이름과 자유 입력 루틴 이름도 가족 서버가 받지 않습니다.

서비스 제공자

Google, Apple, 이메일 로그인

Google Sign-In은 신규·기존 사용자가 선택할 수 있는 계정 로그인 방식이며 Google 광고와 별개입니다. Google Sign-In 9.2 개인정보 매니페스트는 이름·이메일 주소·전화번호·기타 데이터·대략적 위치·사용자 ID를 앱 기능 목적으로, 기타 데이터·사용자 ID·기기 ID·기타 사용 데이터를 분석 목적으로 처리할 수 있다고 선언합니다. 이 데이터는 사용자와 연결될 수 있지만 추적에는 사용하지 않는다고 선언합니다. Google SDK의 처리에는 Google 개인정보처리방침이 적용됩니다. Vitatally는 Google 로그인 토큰과 Google이 반환한 정보를 인증 중에만 일시 처리하고, 검증된 계정 식별자의 키 기반 HMAC만 저장합니다. 표시 이름이나 로그인 제공자의 프로필 이름은 서버에 전송하거나 저장하지 않으며 건강 데이터를 로그인 요청에 추가하지 않습니다.

Apple 로그인 인증 코드는 서버에서 즉시 교환하며 저장하거나 기록하지 않습니다. 계정 삭제 때 Apple 연결을 해제하기 위한 갱신 토큰만 서버 비밀키로 암호화해 보관하고 삭제 완료와 함께 제거합니다. 이메일 주소는 코드 발송 중에만 일시 처리하고, D1에는 해당 주소의 키 기반 HMAC만 저장합니다.

Google Gmail

로그인 코드는 Google Gmail API로 발송합니다. 코드 전달을 위해 수신 이메일 주소와 코드가 포함된 메시지가 Google에 전송됩니다. 건강 데이터는 포함하지 않습니다.

Cloudflare

Cloudflare Workers와 D1은 키 기반 HMAC 로그인 식별자, 가족 연결, 초대 코드와 구조화된 운동 일정을 처리합니다. 개인 건강 값, 표시 이름, 이메일 주소 원문과 자유 입력 루틴 이름은 D1에 저장하지 않습니다.

앱 API의 과도한 요청과 로그인 남용을 방지하기 위해 Cloudflare가 요청과 함께 제공하는 접속 IP와 해당하는 이메일·계정 식별자를 일시 처리합니다. D1의 요청 제한 기록에는 원문 대신 키 기반 HMAC, 시간 구간, 요청 횟수와 만료 시각을 저장합니다. 이 기록은 최대 2시간 안에 만료되도록 설정하며, 만료된 기록을 매일 정리하도록 구성합니다. IP 원문이나 건강 값은 이 기록에 저장하지 않습니다.

Apple App Store와 RevenueCat

Pro 구매와 사용 권한 확인에는 Apple App Store와 RevenueCat을 사용합니다. RevenueCat에는 계정 범위의 구매 권한 식별자와 구독 상태가 전달될 수 있지만 건강 값이나 기존 공유 운동 일정은 전달하지 않습니다. 결제 카드 정보는 Vitatally가 받지 않습니다.

쿠팡 파트너스

앱은 공개 상품 목록에서 검토된 쿠팡 카드를 내려받고 제한된 익명 성과 정보를 Vitatally 광고 서버에 보냅니다. 상품 링크를 연 뒤의 구매와 쿠팡 서비스 이용에는 쿠팡의 약관과 개인정보처리방침이 적용됩니다.

이 웹사이트

위 앱 내 광고와 별개로, 이 소개 웹사이트 자체는 추적 스크립트, 광고, 분석 도구, 픽셀과 쿠키를 사용하지 않습니다. Cloudflare는 사이트 전송과 보안을 위해 일반적인 요청 정보를 자체 정책에 따라 처리할 수 있습니다.

보관과 삭제

키 기반 HMAC 로그인 식별자, 가족 관계, 구성원 번호·역할과 공유 운동 일정은 계정이 활성 상태인 동안 보관합니다. 사용자가 가족 계정을 삭제하면 가족 연결과 공유 접근을 즉시 해제하고, 계정 식별자·로그인 HMAC·가족 관계·초대 코드·운동 강도(MPA/VPA)·일정·시간·상태를 30일 이내 영구 삭제합니다.

쿠팡 카드의 전송 실패 이벤트는 기기에서 최대 24시간, 최대 200건까지만 보관합니다. 서버의 중복 집계용 노출·신고 해시 원장과 익명 일별 캠페인 집계는 91일 뒤 삭제합니다.

Apple이 보관하는 구매 내역은 Apple의 정책을 따릅니다. 가족 계정을 삭제해도 App Store 구독은 자동으로 해지되지 않으므로 iOS 구독 설정에서 별도로 해지해야 합니다.

기존 계정 삭제 방법 확인

사용자 선택과 통제

  • Apple 건강 설정에서 데이터 종류별 권한을 언제든 변경할 수 있습니다.
  • 왼쪽 상단의 목록에서 프로필 > 내 구독 관리를 열고 계정 삭제를 눌러 기존 계정과 서버 데이터를 삭제할 수 있습니다.
  • 광고 정보 버튼에서 부적절하거나 연령에 맞지 않는 쿠팡 카드를 신고하고 즉시 숨길 수 있습니다.
  • 앱을 삭제하면 Vitatally의 로컬 요약이 삭제됩니다. HealthKit에 기록된 운동이나 입력값은 Apple 건강 앱에서 별도로 확인하고 삭제할 수 있습니다.

연령과 서비스 범위

Vitatally는 14세 이상을 대상으로 합니다. 지역 법률상 별도 보호자 동의가 필요한 사용자는 보호자와 함께 앱과 계정을 설정해야 합니다.

Vitatally의 수치는 논문 집단 통계를 개인 운동 패턴에 적용한 웰니스 추정입니다. 진단, 치료, 응급 탐지 또는 개인 절대 발병확률을 제공하지 않습니다.