1. 쉬운 요약
- 계정 인증은 Firebase Authentication에서 처리되며, 인증 데이터는 미국 데이터 센터에서 처리됩니다.
- 사용자가 저장한 할 일과 장소 데이터는 서울 리전
asia-northeast3의 Cloud Firestore에 저장됩니다. - 현재 GPS 좌표는 Firestore에 저장하거나 Firebase·Kakao로 전송하지 않습니다. 선택한 지점의 좌표는 근처 알림을 위해 저장하고 운영체제 지오펜스에 등록합니다.
- 광고, 사용자 행동 분석 SDK, 원격 푸시 토큰은 사용하지 않습니다. 알림은 기기에서 로컬 알림으로 예약합니다.
2. 개인정보처리자와 보호책임자
개인정보처리자 및 개인정보 보호책임자는 김도형 (Dohyung Kim)입니다.
개인정보 문의와 권리행사: privacy@sashowapp.com
이 주소는 수신 전용 전달 주소이므로 실제 답장은 ramon.sashow@gmail.com에서 올 수 있습니다. 발신자 주소가 다른 이유는 Porkbun 이메일 전달 방식 때문입니다.
3. 목적·처리 항목·처리 근거·보유기간
계정과 인증
서비스 로그인, 계정 관리, 인증 보안과 남용 방지를 위해 Firebase Authentication이 Firebase UID, 이메일 주소, 비밀번호 인증 정보, 계정 생성 시각·최근 로그인 시각·인증 상태 등 계정 메타데이터, IP 주소와 사용자 에이전트 등 서비스 메타데이터를 처리합니다. 이는 계정 기반 서비스를 제공하고 인증을 보호하는 데 필요한 처리입니다.
앱은 평문 비밀번호를 Firestore 또는 앱의 직접 관리 저장소에 별도로 기록하지 않습니다. Firebase 계정 정보는 계정 유지 기간 동안 처리합니다.
사용자가 저장하는 서비스 데이터
사용자가 요청한 할 일·장소 관리와 근처 알림 기능을 제공하기 위해 users/{uid} 아래에 다음 컬렉션을 저장합니다.
items: 할 일 이름, 중요도, 연결 장소 ID·이름, 완료 여부와 완료 시각, 생성·수정 시각places: 장소 이름, 정규화된 이름, 색상 ID, 생성·수정 시각placeNameIndex: 장소 ID·이름·정규화된 이름·시각favoriteBranches: 논리 장소 ID, 제공자kakao, Kakao 장소 ID, 지점명, 주소·도로명 주소, 위도·경도, 반경, 활성 상태, 생성·수정 시각settings: 기본 장소 초기화 상태와 시각
이 데이터는 사용자가 입력하고 기능 이용을 요청하여 처리하며 계정 유지 기간 동안 보유합니다. 사용자가 직접 삭제한 할 일과 장소는 삭제 처리 시 제거됩니다. 완료한 할 일은 완료만으로 삭제되지 않으며, 사용자가 해당 할 일을 삭제하거나 계정 삭제가 완료될 때까지 남습니다.
4. 위치·알림·기기 저장소
위치 처리는 계정·사용자 입력 데이터 처리와 구분됩니다. 앱은 사용자의 선택에 따라 포그라운드 및 백그라운드 위치 권한을 요청합니다. 선택한 실제 지점의 좌표와 반경을 운영체제 지오펜스에 등록하고, 운영체제가 진입·이탈을 감지하면 지점 식별자를 이용해 로컬 알림을 만듭니다.
알림에는 할 일이나 장소·지점 이름이 포함될 수 있으며 잠금 화면 표시 여부는 OS 설정의 영향을 받습니다. 원격 푸시 토큰은 사용하지 않습니다.
기기에는 다음 정보가 저장될 수 있습니다.
- Firebase SDK가 관리하는 인증 세션 상태
- UID별 일일 알림 설정 상태(아직 선택하지 않음·꺼짐·켜짐)와 저장된 로컬 시각의 시·분 값 1개 또는 2개. 켜짐 상태에서만 값 1개는 하루 1회, 값 2개는 하루 2회라는 선택한 최대 알림 빈도를 뜻합니다. 아직 선택하지 않음 상태의 값은 예약을 만들지 않는 비활성 편집 기본값입니다.
- UID별 일일 알림 예약 ID·할 일 ID·예약 시각과 활성 UID
- UID별 최근 처리한 알림 응답 기록: 알림 종류, 응답 식별자, 처리 시각을 최신순 최대 32개
- UID별 알림 안내 노출 횟수와 미루기 시각
- UID, 지점명·좌표·반경, 할 일 ID·이름, 지오펜스 상태·최근 알림 시각이 포함된 근처 알림 스냅샷과 활성 UID
앱은 이 일일 알림 설정과 최근 알림 응답 기록을 현재 기기의 UID별 로컬 저장소에 보관합니다. Firestore나 다른 서버와 동기화하지 않으며, 이를 위해 원격 푸시 토큰을 추가하거나 전송하지 않습니다.
일반 로그아웃이 완료되면 해당 UID의 예약된 일일 OS 알림 요청과 현재 배정 기록은 제거하지만, 일일 알림 설정과 최근 알림 응답 기록은 같은 기기에 남을 수 있습니다. 근처 지오펜스와 스냅샷은 제거를 시도하지만 실패할 수 있고, 알림 안내 상태는 UID별로 남을 수 있습니다. 이미 표시된 OS 알림은 명시적으로 지우지 않습니다.
앱에서 계정 삭제 요청이 수락되면 해당 UID의 일일 알림 예약·설정·응답 기록 변경 작업을 무효화하고, 진행·대기 중인 해당 작업이 정리될 때까지 기다린 뒤 현재 기기의 예약된 일일 OS 알림 요청·배정 기록·일일 알림 설정·최근 알림 응답 기록을 제거하려고 시도합니다. 근처 지오펜스와 스냅샷도 제거를 시도하며, 작업 정리나 데이터 제거에 실패하면 다시 시도해야 할 수 있습니다.
이 기기 데이터는 서버 계정 삭제와 별개입니다. 서버 계정 삭제만으로 다른 기기나 앱이 접근할 수 없는 기기의 로컬 값이 원격으로 지워지는 것은 아닙니다. 현재 기기의 앱 삭제 또는 OS 앱 데이터 삭제 시 제거되며, 기기 백업과 복원은 OS 정책의 영향을 받을 수 있습니다.
5. Kakao Local 검색
장소 검색 시 사용자가 입력한 검색어의 앞뒤 공백을 제거하고 연속 공백을 하나로 정리한 검색어만 Kakao Local API에 전송합니다. Kakao 요청에는 Firebase UID, 현재 GPS 위치, 저장된 즐겨찾기 좌표를 보내지 않습니다.
응답의 장소 ID, 명칭, 분류, 주소, 도로명 주소와 좌표는 검색 결과에 사용하며, 사용자가 즐겨찾기로 선택한 지점 정보만 Firestore에 저장합니다.
6. 이메일 문의와 삭제 요청
사이트에는 문의 폼이 없습니다. 이메일을 보내면 문의자 이메일 주소와 메일 헤더, 문의 또는 권리행사 내용, 사용자가 선택적으로 제공한 앱 버전, 기기·OS 버전, 재현 순서와 첨부파일을 처리합니다. 계정 삭제 과정에서는 확인된 Firebase UID, 확인·삭제·결과 통지 시각과 처리 상태도 처리합니다.
메일은 Porkbun LLC의 전달 서비스를 거쳐 Google LLC의 Gmail 계정인 ramon.sashow@gmail.com으로 수신됩니다. 일반 문의 메일과 첨부파일은 문의 처리 완료 후 90일, 계정 삭제 요청 원문과 첨부파일은 삭제 처리 완료 후 90일 보유한 뒤 삭제합니다.
마스킹한 이메일, Firebase UID, 사건 ID와 삭제 영수증 ID, 요청·본인 확인·격리·Firestore 삭제·Auth 삭제·최종 확인·결과 통지 시각, 처리 상태와 정확한 파기 예정 시각을 담은 최소 운영 기록을 보관합니다.
삭제 절차의 안전한 재시도와 완료 여부를 확인하기 위한 별도 삭제 영수증은 macOS Keychain에 저장합니다. 이 영수증에는 프로젝트 ID와 Firebase UID, 등록 이메일·Auth 계정 인스턴스·세션 상태의 일방향 해시, 삭제 단계와 단계별 시각, 무작위 nonce가 포함됩니다. 최소 운영 기록과 삭제 영수증은 모두 삭제 처리 완료 후 1년 보유한 뒤 파기합니다. 이 두 기록에는 비밀번호, 인증코드, 접근 토큰 또는 이메일 본문을 저장하지 않습니다.
자동 계정 삭제 운영 기록
자동 삭제 완료 영수증
자동 삭제 영수증은 식별·상태, 접수·격리, 계정 바인딩, 삭제·검증, 재시도·오류, 보존 정보를 단계에 따라 기록합니다.
자동 삭제 영수증에는 이메일, 평문 비밀번호, ID/access/refresh token, 원시 Auth 생성·세션 시각 또는 사용자 앱 데이터를 저장하지 않습니다.
schemaVersionrequestIduidstatusrequestedAtquarantinedAtdeleteAfterauthInstanceDigestauthSessionDigestdataDeletedAtauthDeletedAtverifiedAtattemptCountlastAttemptAtlastErrorCategoryexpireAt
Canary acknowledgment
canary acknowledgment는 자동 삭제 완료 결과의 재실행(replay) 검증을 증명하는 운영 기록입니다. 이 acknowledgment에는 UID, 이메일, 비밀번호, token, digest를 저장하지 않습니다.
schemaVersionrequestIdtaskIdreplayVerifiedAtexpireAt
접근 경계와 보존
Security Rules는 일반 Firebase 클라이언트의 자동 삭제 증거 읽기와 쓰기를 모두 거부합니다. 제한된 Admin canary operator는 필요한 database evidence 권한만 가진 trusted evidence actor입니다. Admin SDK는 Security Rules를 우회하므로 이 역할에는 필요한 권한만 부여합니다.
완료 영수증의 expireAt은 verifiedAt부터 정확히 한 달력 연도 뒤입니다. acknowledgment의 expireAt은 완료 영수증과 정확히 같습니다. 두 문서 모두 expireAt에 Firestore TTL 정책을 적용합니다. Firestore TTL은 즉시 삭제를 보장하지 않으며, 만료된 문서는 보통 expireAt이 지난 후 24시간 이내에 물리적으로 삭제됩니다.
처리 위치와 별도 증거
자동 삭제에 사용하는 Cloud Functions, Cloud Tasks, Cloud Firestore는 대한민국 서울 asia-northeast3에서 처리하고, Firebase Authentication은 미국에서 처리합니다.
Cloud Logging도 자동 삭제 운영 과정에서 처리됩니다. 기존 운영 계약을 넘어 처리 위치와 보유 기간을 별도로 단정하지 않습니다.
이 자동 운영 기록은 수동 이메일 삭제 요청 기록 및 macOS Keychain 삭제 영수증과 별개의 증거입니다.
7. 외부 처리 및 국외 처리
아래 서비스에는 기능 이용 또는 사이트·이메일 제공 시 네트워크를 통해 필요한 정보가 전송됩니다. 각 제공자의 보안·법적 의무를 위한 별도 보유는 해당 제공자 정책과 운영자 통제 범위의 영향을 받을 수 있습니다.
Google LLC — Firebase
Firebase Authentication은 인증과 계정 보안을 위해 계정·서비스 메타데이터를 미국 데이터 센터에서 처리합니다. Cloud Firestore는 사용자가 저장한 서비스 데이터를 대한민국 서울 asia-northeast3 리전에 저장합니다. 두 처리 위치는 서로 다릅니다. 계정과 Firestore 데이터의 운영 보유기간은 계정 유지 기간입니다.
Kakao Corp. — Kakao Local API
검색할 때 정리된 검색어를 네트워크로 전송하고 장소 검색 결과를 받습니다. 현재 GPS, UID, 저장된 즐겨찾기 좌표는 요청에 포함하지 않습니다. Kakao 측 처리는 해당 서비스 정책의 적용을 받습니다.
Porkbun LLC 및 Google LLC — 이메일 전달과 Gmail
사용자가 메일을 보낼 때 이메일 주소, 헤더, 본문과 선택한 첨부파일이 Porkbun의 전달 서비스를 거쳐 Gmail로 전송됩니다. 전달 과정의 처리 국가와 보안·법적 의무에 따른 보유는 각 제공자 정책의 영향을 받으며, Gmail에 도착한 운영 사본에는 앞서 설명한 90일 보유기간을 적용합니다.
OpenAI OpCo, LLC — ChatGPT Sites
공개 사이트 호스팅을 위해 ChatGPT Sites와 공개된 하위 처리자가 IP 주소, 사용자 에이전트, 요청 경로, 접속 시각 같은 로그·사용량·기기 메타데이터를 처리할 수 있습니다. Sites DPA의 Hosted Data는 사이트 호스팅·유지·지원 기간과 서비스 종료 후 삭제 의무 이행에 필요한 기간 동안 처리됩니다.
Cloudflare 기반 인프라
사이트 제공, 보안과 장애 대응을 위해 같은 접속 메타데이터를 처리할 수 있습니다. Cloudflare Workers 로그가 활성화된 경우 공식 최대 보유기간에 따라 최대 7일 보유될 수 있습니다.
8. 파기·권리행사·안전조치
파기
계정 삭제 시 본인 확인과 삭제 결정 후 불필요해진 Firebase Authentication 계정과 users/{uid} 아래의 items, places, placeNameIndex, favoriteBranches, settings 및 발견된 하위 컬렉션을 재귀적으로 삭제하고 Auth와 Firestore 양쪽에서 결과를 다시 확인합니다. 일반 문의와 삭제 요청 원문은 위 보유기간이 끝나면 Gmail에서 삭제합니다.
열람·정정·삭제·처리정지 요청
열람, 정정, 삭제 또는 처리정지를 요청하려면 가입에 사용한 이메일 주소를 밝혀 privacy@sashowapp.com으로 보내 주세요. 비밀번호나 인증코드는 보내지 마세요.
계정 삭제 요청은 등록된 Firebase 이메일 주소로 별도의 일회성 확인 문구를 보내고, 해당 메일함에서 온 회신으로 본인 여부를 확인합니다. 본인 확인 후 10일 이내 처리 결과를 ramon.sashow@gmail.com에서 안내하며, 삭제가 결정되어 불필요해진 데이터는 지체 없이 파기합니다.
안전조치
Firestore 보안 규칙은 인증 UID를 기준으로 사용자 문서를 분리합니다. 계정 삭제 전에는 등록 이메일을 별도로 확인하고, 삭제 후 Auth와 Firestore를 다시 조회합니다. 삭제 최소 작업 기록과 Keychain 삭제 영수증은 운영자만 접근하도록 제한합니다.
9. 사이트 접속 정보와 쿠키·분석 사용 여부
호스팅 및 기반 네트워크 제공자는 사이트 제공, 보안과 장애 대응을 위해 IP 주소, 사용자 에이전트, 요청 경로, 접속 시각 같은 접속 정보를 처리할 수 있습니다.
사쇼는 사이트에 광고 또는 분석 쿠키, 별도 사용자 행동 분석 SDK, 자체 접속 로그 데이터베이스를 추가하지 않으며, 개인정보를 담는 console 로그도 추가하지 않습니다.
10. 변경 고지
앱의 처리 방식, 외부 서비스 또는 보유기간이 바뀌면 이 방침을 실제 동작에 맞게 갱신하고 시행일을 이 페이지에서 알립니다.