WAY(이하 "본 앱")는 「개인정보 보호법」을 준수하며, 사용자의 개인정보를 다음과 같이 처리합니다.
본 방침은 2026년 6월 19일부터 시행되며, 카드 원격 교환·게임 재화·보상형 광고 등 v2.0 관련 개정 사항(개정 이력 참조)은 v2.0 앱 업데이트 공개일부터 시행됩니다.
1. 수집하는 개인정보 항목
1.1 사용자가 직접 입력하는 정보 (선택)
- 닉네임, 성별
- 자유 입력 정보 필드 (취미, MBTI, 인스타 핸들 등 사용자가 직접 추가하는 항목)
- 아바타 디자인
- 만남 메모 및 만난 장소, 별칭
이 정보는 기본적으로 사용자의 기기에 저장됩니다(iOS는 사용자 본인의 iCloud 개인 컨테이너, Android는 기기 내부 저장소). Android에서 기기 백업이 켜져 있는 경우, 이 로컬 데이터가 사용자 본인의 Google 계정 백업에 포함되어 새 기기 복원 시 함께 복원될 수 있습니다.
카드 교환 기능을 사용하는 경우, 닉네임·성별·아바타·자유 입력 정보 필드로 구성된 "내 카드"가 아래 §1.2에 따라 Firebase 서버에 저장됩니다. 카드 교환 기능을 사용하지 않는 사용자의 프로필은 종전과 동일하게 서버에 저장되지 않습니다. 별칭·만남 메모·만난 장소는 어느 경우에도 서버에 저장되지 않는 로컬 전용 정보입니다.
1.2 카드 교환(링크·코드·QR) 시 처리되는 정보
v2.0부터 카드 교환은 근거리 통신이 아니라 일회성 교환 코드(링크·QR로도 표현되는 6자리 코드)를 주고받는 방식으로 이뤄지며, 카드 데이터가 Firebase 서버(Firestore)를 경유·저장됩니다.
- 내 카드 서버 사본: 카드 교환 기능을 처음 사용할 때(로그인 필요) 닉네임·성별·아바타·자유 입력 정보 필드 전체와 기본 공개 범위 설정이 서버에 저장됩니다. 실제로 상대에게 전달되는 범위는 저장 시점이 아니라 전달 시점에 사용자가 고른 공유 범위(프리셋 + 발급 직전 개별 조정)로 제한됩니다.
- 교환 코드(토큰): 코드 발급 시 발급자 식별자, 공개 필드 목록, 발급·만료 시각, 사용 가능 횟수가 서버에 저장됩니다. 코드는 기본 3일 후 만료되며, 만료된 코드는 서버에서 자동 삭제됩니다. 발급자는 코드를 언제든 폐기(revoke)할 수 있습니다.
- 카드 교환의 성립: 상대가 코드를 입력(또는 QR 스캔·링크 탭)하고 "카드 교환하기"를 누르면 양방향 교환이 즉시 성립합니다 — 상대의 카드가 나에게, 나의 카드(기본 공개 범위 적용분)가 상대에게 전달됩니다. 코드를 발급·전달하는 행위와 "카드 교환하기" 버튼이 각각 교환 의사의 표시입니다.
- 수집한 카드 컬렉션: 교환으로 받은 상대 카드는 교환 시점의 스냅샷으로 사용자별 컬렉션에 저장되며(만남 횟수 포함), 기기 변경·재설치 시 복원을 위해 Firebase 서버에 보관됩니다. 상대가 이후 프로필을 바꿔도 반영되지 않으며, 다시 교환할 때만 갱신됩니다.
- 전달된 카드의 귀속: 교환이 성립한 순간 전달된 카드 스냅샷은 수신자의 컬렉션 자산으로 이전된 것으로 봅니다. 따라서 발급자가 이후 계정을 삭제해도, 이미 상대의 컬렉션에 전달된 카드 스냅샷은 삭제되지 않습니다(§5·§6 참조). 전달 범위를 전달 전에 선택하게 하는 것이 본 앱의 프라이버시 모델입니다.
- QR 스캔용 카메라: QR 코드 스캔 시 기기 카메라를 사용합니다. 카메라 영상은 코드 인식에만 사용되며 저장·전송되지 않습니다.
약속 도착 시 카드 교환(§1.5)도 동일한 방식으로 처리됩니다.
참고: v2.0 이전 버전의 근거리(BLE) 카드 교환은 서버를 거치지 않는 기기 간 직접 전송이었으며, 구버전 앱을 계속 사용하는 경우 해당 교환은 종전과 동일하게 서버에 저장되지 않습니다.
1.3 오늘의 기분 정보
사용자가 "오늘의 기분"을 선택하면 선택한 이모지 식별자, 기기 식별자(deviceUserID), 만료 시각이 Firebase Firestore에 저장됩니다. 이 정보는 사용자가 카드를 교환해 등록한 사람들의 공원(광장) 화면에만 표시되며, 사용자의 기기 기준 자정 이후 앱 화면에서 자동으로 표시되지 않습니다.
1.4 서비스 제공자가 자동으로 수집하는 정보
- Firebase Analytics: 앱 사용 이벤트, 화면 조회, App Instance ID(익명 식별자), 디바이스/OS 정보
- Firebase Crashlytics: 충돌 보고서, 스택 트레이스, 디바이스 상태
- Firebase Authentication (익명 + Apple/Google 로그인 연동): 익명 사용자 식별자(UID). 카드 교환·약속 채팅을 처음 이용할 때 Apple 또는 Google 로그인을 익명 계정에 연동하며, 이때 해당 로그인 제공자가 제공하는 계정 정보와 이메일 주소(Apple은 비공개 이메일 릴레이 주소일 수 있음)가 인증 정보에 기록됩니다.
- Firebase Firestore: 신고 접수, 오늘의 기분 상태, 카드(내 카드·교환 코드·수집한 카드 컬렉션, §1.2), 약속·약속 채팅·실시간 위치·도착 기록(§1.5) 저장
- Firebase App Check: 카드 교환 요청이 변조되지 않은 정식 앱에서 온 것인지 확인하기 위한 기기·앱 무결성 확인 정보(Apple App Attest / Google Play Integrity)
위 데이터는 Google LLC가 운영하는 Firebase 서버에 저장됩니다.
1.5 약속 기능 이용 시 수집·처리되는 정보
사용자가 약속을 만들거나 약속에 참여하면 아래 정보가 Firebase Firestore에 저장되며, 같은 약속의 참여자에게 공유됩니다.
- 약속 정보: 약속 제목(최대 80자), 장소명(최대 120자)·주소(최대 200자)·정밀 좌표(위도·경도), 약속 일시 및 시간대, 메모(최대 500자), 참여자 닉네임·식별자(deviceUserID)·아바타 시드, 도착 판정 반경, 지각 허용 시간
- 실시간 위치: 사용자가 위치 공유(Start)를 켠 동안의 정밀 위치(위도·경도)와 위치 정확도(미터). 가장 최근 좌표 한 건만 보관하며 이동 이력은 저장하지 않습니다.
- 약속 채팅 메시지: 메시지 본문(최대 2,000자), 발신자 표시 이름(최대 80자), 메시지 종류, 작성 시각. 새 메시지 알림(푸시)에는 본문 미리보기 최대 80자가 포함됩니다.
- 도착 기록: 도착 등수, 지각 여부, 도착 시 약속 장소까지의 거리(미터), 도착 시각(서버 시간), 도착 확인 방식(자동/수동)
- 도착 시 카드 교환(v2.0): 카드를 발행한 참여자들이 같은 약속에 도착하면, 도착한 참여자끼리 서로의 카드(기본 공개 범위 적용분)가 §1.2의 컬렉션에 자동 교환·저장됩니다. 카드를 발행하지 않은 참여자는 교환 대상에서 제외됩니다.
- 알림용 식별자: 푸시 알림 발송을 위한 FCM(Firebase Cloud Messaging) 토큰
- 신원 연결 정보: 본인 확인을 위해 기기 식별자(deviceUserID)와 로그인 계정 식별자(UID)를 연결한 바인딩 정보
1.6 약속 일정의 캘린더 추가 (선택)
사용자가 명시적으로 선택하는 경우에 한해, 약속 일정을 기기의 캘린더에 일정으로 추가합니다. iOS는 캘린더 쓰기 전용 접근 권한을 사용하고, Android는 시스템 캘린더 추가 화면(일정 추가 인텐트)을 통해 사용자가 직접 저장하므로 별도의 캘린더 권한을 보유하지 않습니다. 어느 경우에도 기존 캘린더 일정은 읽지 않습니다.
1.7 신고 접수 시 수집되는 정보
사용자가 다른 사용자를 신고하면 신고자 식별자(UID·deviceUserID), 피신고자 식별자(deviceUserID)·표시 이름, 신고 사유 코드·사유 라벨, 앱 버전, 접수 시각이 Firestore에 저장됩니다. (Firestore 저장에 실패하면 동일 내용이 지원 이메일로 전송되는 대체 경로가 동작합니다.) 원격 교환·약속으로 받은 카드에도 동일한 신고 경로가 제공됩니다.
1.8 게임 재화(Seed) 및 보상형 광고 (v2.0)
- 재화 원장: 약속 도착 보상·광고 시청 적립으로 얻는 앱 내 재화(Seed)의 잔고와 적립·사용 내역이 로그인 계정 식별자(uid)에 연결되어 Firebase 서버에 저장됩니다. 재화는 현금으로 구매하거나 환급할 수 없으며, 계정을 삭제하면 잔고와 거래 내역도 함께 삭제됩니다(§5).
- 보상형 광고(Google AdMob): 사용자가 직접 선택해 시청하는 보상형 광고만 제공하며 배너·전면 광고는 없습니다. 광고 요청은 항상 비개인화(non-personalized)로 보내며, 다음을 지킵니다.
- 광고 식별자를 수집·전송하지 않습니다. Android는 광고 ID 권한(
AD_ID)을 앱 매니페스트에서 제거했고, iOS는 앱 추적 투명성(ATT) 권한을 요청하지 않아 IDFA에 접근하지 않습니다.
- 다른 앱·웹사이트에 걸친 추적(tracking)을 하지 않습니다.
- 광고 제공 과정에서 Google AdMob SDK가 기기·네트워크 정보를 처리할 수 있습니다. 시청 완료 확인(서버 측 검증, SSV)에는 로그인 계정 식별자(uid)가 사용되며, 이는 적립 대상 지갑을 특정하기 위한 용도로만 쓰입니다.
- 유럽 경제 지역(EEA)·영국 등 동의가 필요한 지역에서는 Google UMP(User Messaging Platform) 동의 절차를 제공하며, 사용자가 동의하지 않으면 보상형 광고를 표시하지 않습니다.
2. 개인정보의 처리 목적
본 앱은 위 목적 외의 용도로 개인정보를 이용하지 않으며, 이용 목적이 변경될 경우 사전 동의를 받습니다.
3. 개인정보의 보유 및 이용 기간
- 사용자가 직접 입력한 정보(로컬): 사용자가 본 앱을 삭제하거나 데이터를 직접 삭제할 때까지
- 내 카드 서버 사본·수집한 카드 컬렉션·재화(Seed) 원장: 계정 삭제(§5) 시까지 보관됩니다. 단, 이미 타인의 컬렉션에 전달된 내 카드 스냅샷은 §1.2의 귀속 원칙에 따라 수신자가 삭제할 때까지 수신자의 컬렉션에 남습니다.
- 교환 코드(토큰): 만료(기본 3일, 최대 30일) 후 서버에서 자동 삭제되며, 발급자가 폐기하거나 계정을 삭제하면 즉시 삭제됩니다.
- 오늘의 기분 정보: 사용자의 기기 기준 자정까지 화면에 표시되며, Firestore TTL 정책에 따라 서버 잔여 문서는 지연 삭제될 수 있음
- 약속 정보 및 도착 기록: 약속에 참여한 여러 사용자의 공동 기록이므로, 한 참여자의 요청만으로는 삭제하지 않고 약속 이력으로 보존합니다(한 사람의 삭제가 나머지 참여자의 약속·채팅·도착 기록 접근을 함께 무너뜨리기 때문입니다). 계정을 삭제하면 해당 기록과 사용자 계정의 연결(기기-계정 식별자 바인딩·알림 토큰)이 제거되어 더 이상 사용자를 식별하지 않습니다. 참여자 전원의 요청이 있거나 법령상 삭제 사유가 있는 경우에는 운영자가 삭제할 수 있습니다.
- 약속 채팅방 및 메시지: 약속 시작 시각으로부터 7일이 지나면 메시지 본문까지 일괄 삭제됩니다. 약속이 취소된 경우에는 취소 시각으로부터 7일 후 삭제됩니다(서버 정리 작업 주기에 따라 최대 하루 지연될 수 있습니다).
- 실시간 위치 좌표: 약속이 종료(모두 도착 또는 시간 초과)되거나 취소되면 즉시 삭제되며, 이와 별도로 보관 만료 시각(약속 시작 후 약 25~26시간)에 따른 자동 삭제(TTL)가 2차 안전망으로 적용됩니다. 위치 이력은 저장하지 않고 최신 좌표 한 건만 유지합니다.
- Firebase Analytics 이벤트: 최대 14개월 (Google 정책 기준)
- Firebase Crashlytics 충돌 보고: 최대 90일
4. 개인정보의 제3자 제공 및 처리 위탁
본 앱은 사용자의 개인정보를 제3자에게 판매하지 않습니다. v2.0부터 사용자가 직접 선택해 시청하는 보상형 광고에 한해 Google AdMob이 관여합니다(§1.8). 배너·전면 광고는 없으며, 광고 식별자를 수집·제공하지 않고 다른 앱·웹사이트에 걸친 자체 추적(tracking)도 하지 않습니다.
4.1 사용자 간 정보 공유
- 카드 교환 상대: 사용자가 선택한 공유 범위의 카드 정보(닉네임·성별·아바타·선택한 정보 필드)가 교환 상대의 컬렉션에 전달·저장됩니다(§1.2).
- 약속 참여자: 약속 정보, 위치 공유(Start)를 켠 동안의 실시간 좌표, 약속 채팅 메시지는 같은 약속에 참여(수락)한 다른 참여자에게 공유되어 화면에 표시됩니다. 실시간 좌표는 약속을 수락한 참여자에게만, 채팅 메시지·도착 기록은 해당 약속의 멤버에게 공유됩니다.
4.2 처리 위탁 및 국외 이전
5. 정보주체의 권리 및 행사 방법
사용자는 다음 권리를 행사할 수 있습니다.
- 열람·정정·삭제: 앱 내 [설정] 메뉴에서 직접 가능. 수집한 카드는 컬렉션에서 개별 삭제할 수 있습니다(서버 컬렉션에서도 함께 삭제).
- 계정·데이터 삭제: 앱 내 [설정] > [계정] > [계정 삭제] 메뉴에서 로그인 계정과 서버에 저장된 개인 데이터가 삭제됩니다 — 내 카드 서버 사본, 수집한 카드 컬렉션 및 그 만남 기록, 재화(Seed) 잔고와 거래 내역, 차단 목록, 발급한 교환 코드, 발급한 약속 초대 링크, 교환 코드 입력 실패 기록, 기기-계정 식별자 바인딩 및 기기 등록 정보, 알림용 FCM 토큰, 오늘의 기분 상태. 계정에 등록된 모든 기기의 위 데이터가 함께 삭제됩니다. Apple 로그인을 연동한 경우 Apple 로그인 토큰도 철회(revoke)됩니다. 앱을 삭제하면 기기에 저장된 데이터도 함께 파기됩니다.
- 계정 삭제의 예외: 다음은 계정 삭제로 지워지지 않습니다. ① §1.2의 귀속 원칙에 따라, 계정 삭제 전에 이미 타인의 컬렉션에 전달된 내 카드 스냅샷(수신자가 직접 삭제할 수 있습니다). ② 참여자 공동 기록인 약속 정보·도착 기록·약속 채팅 — §3의 정책에 따라 보존하며, 계정 삭제로 사용자와의 식별 연결이 끊깁니다(약속 채팅은 §3의 기간이 지나면 본문까지 자동 삭제됩니다). 실시간 위치 좌표는 약속이 종료·취소되면 즉시 삭제되고 보관 만료(TTL)가 2차로 적용되므로, 계정 삭제 여부와 무관하게 서버에 오래 남지 않습니다.
- 처리 정지: 위 [계정 삭제] 또는 앱 삭제로 갈음
- Firebase 측 데이터 삭제 요청: 위 메뉴로 처리되지 않는 데이터는 아래 이메일로 요청
- 그 외 문의: glasses.str.man@gmail.com
권리 행사 요청은 위 이메일을 통해 가능하며, 본 앱은 지체 없이 조치합니다.
6. 개인정보의 파기
사용자는 앱 내 [설정] > [계정] > [계정 삭제] 메뉴로 로그인 계정과 서버에 저장된 개인 데이터(§5의 목록)를 직접 삭제할 수 있습니다. 사용자가 앱을 삭제하면 기기에 저장된 데이터는 즉시 파기됩니다(다만 §1.1과 같이 Android 기기 백업이 켜져 있으면 사용자 본인의 Google 백업에 사본이 남을 수 있습니다). iCloud 데이터는 사용자가 iCloud 설정에서 직접 삭제할 수 있습니다. Firebase 측 데이터의 삭제를 원하시는 경우, 위 이메일로 요청해주시면 처리해드립니다. 다만 §3에 따라 약속 정보·도착 기록은 참여자 공동 기록으로 보존되어 한 참여자의 요청만으로는 삭제하지 않고, 타인의 컬렉션에 이미 전달된 카드 스냅샷은 수신자의 삭제에 따르며, 약속 채팅방·메시지·실시간 좌표·교환 코드는 §3에 정한 기간이 지나면 서버에서 자동으로 삭제됩니다.
7. 개인정보의 안전성 확보 조치
- 암호화 전송: 카드·약속·채팅·실시간 위치 데이터는 Firebase 서버와 HTTPS/TLS 암호화 채널로 전송됩니다.
- 전달 시점 범위 제한: 카드는 서버에 저장된 전체 정보가 아니라, 사용자가 교환마다 선택한 공유 범위 적용분만 상대에게 전달됩니다(서버 측에서 강제).
- 남용 방지: 교환 코드 무차별 대입을 막기 위해 실패 시도 횟수를 제한하고, 카드 교환 API에는 Firebase App Check(앱 무결성 확인)를 적용합니다. 코드는 기본 3일(최대 30일) 만료의 교환 토큰이며, 1회용이 기본이고 사용자가 다회용(최대 50회)을 직접 선택할 수 있습니다. 다회용 코드에는 서버가 최소 공개 범위를 강제합니다.
- 최소 수집: 본 앱 운영을 위해 반드시 필요한 정보만 수집합니다.
- 접근 제한 규칙: 카드·컬렉션·오늘의 기분·약속·채팅·위치 데이터는 Firebase 인증 및 Firestore 보안 규칙으로 본인 또는 허용된 상대(교환 상대·약속 참여자)만 접근할 수 있도록 제한하며, 컬렉션 기록·도착 기록은 서버(Cloud Functions)에서만 기록합니다.
- 접근 제한: 본 앱 운영자는 사용자의 프로필 데이터에 임의로 접근하지 않으며, Firebase 콘솔 접근은 운영자 1인으로 제한됩니다.
8. 개인정보 보호책임자
본 처리방침에 대한 문의, 권리 행사 요청, 피해 구제 요청 등은 위 이메일로 연락 주시면 신속하게 답변드립니다.
9. 권익침해 구제 방법
개인정보 침해로 인한 신고나 상담이 필요한 경우 아래 기관에 문의하실 수 있습니다.
10. 개정 이력
- 2026-07-27 (v2.0 스토어 기능 반영, 시행일 = v2.0 업데이트 공개일): 게임 재화(Seed)와 보상형 광고를 v2.0에 노출하기로 결정해, 2026-07-21에 "향후 도입 예정"으로 하향했던 §1.8을 시행 기준으로 다시 씁니다. §2 처리 목적 표에 재화 원장·보상형 광고 행, §3 보유 기간과 §5 계정 삭제 범위에 재화 원장, §4.2 위탁 표에 AdMob 행을 되살렸습니다. 다만 광고 식별자는 수집하지 않습니다 — 광고 요청을 항상 비개인화로 보내고, Android는
AD_ID 권한을 제거했으며 iOS는 ATT 권한을 요청하지 않습니다.
- 2026-07-27 (사실 정정): 약속 정보·도착 기록의 "사용자·운영자 모두 삭제 불가" 서술을 정책 근거로 재서술 — 운영자는 기술적으로 삭제할 수 있으므로 "참여자 공동 기록이라 한 참여자의 요청만으로는 삭제하지 않는다"로 고쳐 §3·§5·§6의 상호 모순을 해소했습니다. 계정 삭제 목록을 실제 삭제 범위에 맞춰 보강(만남 기록·차단 목록·기기 등록 정보, 계정에 등록된 모든 기기 대상)하고, 계정 삭제 예외에 약속 채팅과 실시간 위치의 실제 처리(자동 삭제)를 명시했습니다.
- 2026-07-21 (사실 정정): 교환 코드 다회용 사실 반영, 계정 삭제 목록 2건 보완, 채팅 삭제 지연 명시
- 2026-07-21 (v2.0 초안 수정): 게임 재화·보상형 광고 고지를 현재 사실에 맞게 하향 — v2.0 배포판에는 재화 원장과 광고 SDK가 없으므로 §1.8을 "향후 도입 예정(현재 미시행)"으로 고쳐 쓰고, §2 처리 목적 표의 재화·광고 항목과 §4.2 AdMob 위탁 행을 제거, §3 보유 기간과 §5 계정 삭제 범위에서 "재화 원장"을 뺐다. 도입 시점에 다시 개정해 시행일을 고지한다.
- 2026-07-20 (v2.0, 시행일 = v2.0 업데이트 공개일): 카드 원격 교환(링크·코드·QR) 도입에 따른 서버 저장 고지 신설(§1.1~§1.2 — 내 카드 서버 사본·교환 코드·수집 컬렉션·귀속 원칙), 근거리(BLE) 교환 제거 반영, QR 스캔 카메라 사용 고지, 약속 도착 시 카드 교환 고지(§1.5), App Check 고지(§1.4·§2·§7), 계정 삭제 범위 확장(카드·컬렉션·교환 코드·Apple 토큰 철회, §5~§6), 안전성 조치 갱신(§7)
- 2026-06-19: 인앱 계정 삭제 메뉴([설정] > [계정] > [계정 삭제]) 신설 반영(§5·§6), 로컬 저장소(iOS iCloud / Android 기기 저장소·백업)·근거리 교환(iOS Multipeer / Android BLE)·캘린더 추가 권한의 플랫폼 차이 정합(§1.1·§1.6·§7), Android 기기 백업 고지 추가(§1.1·§6)
- 2026-06-19: 약속 기능 도입 반영 — 약속 정보·실시간 위치·약속 채팅 메시지·도착 기록·FCM 토큰·신원 연결 정보 수집 항목 신설(§1.5~§1.7), Apple/Google 로그인 연동 및 이메일 보관 고지, 약속 참여자 간 정보 공유 및 처리 위탁(Apple Sign in with Apple·Android Google Maps SDK) 추가, 약속·도착·채팅·좌표의 보유·파기 기간 고지, 안전성 조치 보강
- 2026-06-04: "오늘의 기분" 기능의 Firestore 상태 저장 및 표시 범위 고지 추가
- 2026-05-04: 최초 공개