개인정보 처리방침
시행일:
1. 운영자와 적용 범위
그약(ThatMeds)의 운영자는 홍콩에 설립된 Bailog Private Limited (貝樂格有限公司)입니다. 개인정보 및 삭제 문의: support@bailog.co. 이 방침은 앱과 온라인 자료·계정 기능의 개인정보 처리에 적용합니다. 계정·백업 기능의 이용 가능 여부는 앱 버전과 서비스 연결 상태에 따라 달라집니다.
개인정보 보호책임자: Bailog 개인정보보호팀 (support@bailog.co). 열람·정정·삭제·처리정지 요청은 이 이메일로 보내 주세요. 자세한 요청 방법은 제8절에서 안내합니다.
2. 기기에 저장하는 정보
내 약의 제품 식별자·이름·유통기한·수량 메모·제조번호·생성/수정 시각·회수 알림 이력, 저장한 약, 선택 공관·나라, 비상 연락처 1명의 이름·전화번호, 동의 기록을 기기에 저장합니다. 병명 등 건강정보는 메모에 입력하지 마세요. 검색어는 메모리에서 처리하며 검색어 자체를 서버로 보내지 않습니다.
내 약과 비상 연락처는 기기에 암호문으로 저장되지만 키가 같은 저장소에 있어 기기 파일 접근이나 같은 출처의 실행 코드에 대한 보호 수단은 아닙니다. 중국 저장 항목(cn:medicine-saved, cn-index:saved)은 localStorage에 평문으로 남습니다. iOS 백업 제외는 구현되지 않아 기기 백업에 포함될 수 있습니다. 앱 삭제나 브라우저 데이터 정리로 기록을 잃을 수 있습니다.
3. 온라인 약품 자료와 접속 정보
제품 상세와 포장 사진을 불러올 때 자료 API에 접속합니다. 설치 토큰 발급 요청(POST /v1/install)은 본문 없이 전송하며, 서버가 발급한 임의 식별자의 서명 토큰을 기기에 저장해 최대 30일 동안 사용합니다. 상세 요청에는 토큰·자료 버전·제품 식별자가, 사진 요청에는 토큰·사진 해시가 포함되므로 서버는 어떤 자료를 요청했는지 알 수 있습니다.
조회한 상세와 사진은 IndexedDB 캐시에 각각 최대 50개 저장합니다. 오래 사용하지 않은 항목부터 교체하며, 자료의 유효기간이 지나면 열람을 제한합니다. 캐시 암호화는 개인정보 보호 경계가 아니며 제품 식별자와 접근 시각은 저장소에 드러납니다.
자료 서버는 남용 방지와 요청 제한을 위해 설치 식별자에 대응하는 요청 대상·횟수·차단 상태와 일별 키로 변환한 IP 네트워크 식별자를 처리합니다(IPv4 /24, IPv6 /48). 이 처리 경로는 원본 IP를 저장하지 않습니다. 요청 제한 기록은 정리 예약으로 삭제하지만 새 요청이 예약을 갱신하므로 모든 기록이 48시간 안에 삭제된다고 보장하지 않습니다. Cloudflare가 접속 처리 과정에서 처리하는 IP·로그는 별도입니다.
4. 계정과 선택 백업
Google 로그인 또는 이메일 일회용 인증번호를 사용합니다. 계정 서버는 이메일, 로그인 제공자의 사용자 식별자, 내부 계정 ID, 가입일·최근 이용일, 세션 인증정보의 해시, 만 14세 이상 확인, 언어와 약관·개인정보·선택 마케팅 동의 이력을 처리합니다. 생년월일은 받지 않습니다. 가입이 완료되지 않은 Google 로그인도 이메일·제공자 식별자가 담긴 임시 가입 정보를 남길 수 있습니다. 이 정보의 인증 유효기간은 10분이며 이후 발급 또는 정기 정리 시 제거될 수 있어 만료 즉시 삭제를 보장하지 않습니다. 마케팅 동의는 선택이며, 동의 기록 보관이 실제 광고 발송을 뜻하지는 않습니다.
백업은 별도로 동의하고 복구 코드를 확인한 뒤 활성화합니다. 활성화하면 내 약 변경 후 자동 업로드를 시도합니다. 현재 백업 대상은 해당 계정의 내 약 기록(제품·유통기한·메모·제조번호 등)이며 비상 연락처와 회수 알림 이력은 현재 업로드 대상에 포함되지 않습니다. 기기에서 AES-GCM으로 암호화한 내용과 암호화 부가정보를 서버에 보내며, 서버는 최신 및 직전 백업과 버전·갱신 시각·대략적인 크기를 보관합니다. 복구 키·코드는 API로 보내지 않습니다. 복구 코드를 잃으면 다른 기기에서 복원하지 못할 수 있습니다.
계정 보안을 위해 일별 키로 변환한 IP 식별자(IPv4 전체, IPv6 /64), 요청 횟수, 이메일 기반 보안 식별자와 인증 실패 기록을 처리하며 일반적인 보안·메일 처리 이벤트를 기록합니다. 계정과 백업 데이터가 서버에 전혀 남지 않는 서비스는 아닙니다.
5. 카메라·OCR·알림·분석
카메라 권한은 바코드 인식에 사용합니다. 바코드와 사진 OCR 인식은 기기에서 처리하고 앱이 인식용 사진·텍스트를 서버에 업로드하거나 보관하지 않습니다. Google ML Kit는 사용·성능 지표를 Google에 전송할 수 있으며 현재 앱에는 이 전송을 끄는 설정이 없습니다. 앱 자체의 별도 이용 분석·광고 추적 SDK는 사용하지 않습니다.
선택 동의한 네이티브 로컬 알림은 OS가 예약 시각과 문구를 평문으로 보관합니다. 약 이름은 넣지 않지만 예약 시각으로 유통기한을 추정할 수 있습니다. OS 설정에서 권한을 철회할 수 있습니다. 웹에서는 예약 알림을 제공하지 않으며 이 기능에 원격 푸시 토큰을 사용하지 않습니다.
6. 서비스 제공업체와 국외 이전
온라인 기능을 이용하면 다음 수신자에게 정보가 네트워크로 전송됩니다. 아래 국가 정보는 제공업체의 공식 안내에 따른 것이며, 실제 서비스에 적용된 저장·접근 국가 전체와 계약별 보관 조건은 미확인입니다. 본사 소재지가 유일한 이전 국가라는 뜻은 아닙니다.
Cloudflare, Inc.
- 이전 국가: 공식 정책상 미국과 유럽경제지역(EEA)에 주로 저장하며 전 세계에서 접근·처리할 수 있습니다. 이 앱에 적용된 개별 국가·리전은 미확인입니다.
- 이전 항목: IP 등 접속 정보, 설치 식별자·토큰, 요청한 자료 버전·제품 식별자·사진 해시, 요청 횟수·차단 상태, 제4절의 계정·인증·동의·보안 정보, 선택 백업의 암호문·암호화 부가정보·버전·갱신 시각·크기입니다. 복구 키·코드와 비상 연락처는 백업 API로 보내지 않습니다. 앱 서버가 변환·저장하는 IP 식별자와 Cloudflare 자체 접속 로그는 구별됩니다.
- 이전 시기·방법: 웹 페이지·온라인 자료 조회, 계정 가입·로그인·관리, 백업 업로드·복원 등 해당 기능 이용 시 네트워크로 전송합니다. 백업을 켜면 내 약 변경 후 자동 업로드도 시도합니다.
- 이용 목적: 웹 호스팅, 자료·계정 API 제공, 인증·남용 방지, 계정 및 선택 백업 저장·복원입니다.
- 보유·이용 기간: 앱 서버의 계정·백업·보안 기록은 제3절과 제7절의 삭제·정리 규칙을 따릅니다. Cloudflare D1 복구 이력은 요금제에 따라 7일 또는 30일입니다. 실제 적용 요금제와 Cloudflare 자체 접속 로그·기타 백업의 개별 보관 기간은 미확인으로, 앱 삭제 처리와 같다고 보장하지 않습니다.
- 수신자 연락처: privacyquestions@cloudflare.com (공식 개인정보 정책). 복구 이력: D1 Time Travel 안내.
- 거부 방법과 영향: 선택 백업은 켜지 않거나 백업 동의를 철회하고 기존 백업을 삭제할 수 있으며, 이 경우 서버 백업·복원을 사용할 수 없습니다. 계정 이전을 원하지 않으면 가입하지 않거나 기존 계정을 삭제하세요. 가입이 필요한 일반 앱 기능은 이용할 수 없고 긴급 연락·법적 안내 등 예외 화면은 남습니다. 웹·온라인 자료 접속 자체의 이전을 피하려면 해당 서비스에 접속하지 않아야 하며, 온라인 상세·사진 등을 불러올 수 없습니다.
Google LLC — Google 로그인
- 이전 국가: 미국을 포함한 전 세계 서버에서 처리될 수 있습니다. 이 앱 로그인에 적용된 개별 국가·리전은 미확인입니다.
- 이전 항목: 로그인에 선택한 Google 계정의 인증 처리 정보, 앱의 OAuth 클라이언트 식별자와 일회용 nonce, 접속 정보입니다. 로그인 결과로 이메일·Google 사용자 식별자가 포함된 인증 토큰을 앱이 받아 계정 서버로 보냅니다.
- 이전 시기·방법: Google 로그인·로그인 수단 연결·재인증 기능 이용 시 네트워크로 전송합니다.
- 이용 목적: Google 계정을 이용한 본인 확인과 로그인입니다.
- 보유·이용 기간: Google 개인정보 정책과 계정 설정에 따르며, 이 앱 로그인 처리에 대한 Google의 개별 보관 기간은 미확인입니다. 그약 계정 서버의 보관은 제4절과 제7절을 따릅니다.
- 수신자 연락처: Google 개인정보 문의, Google 개인정보 정책.
- 거부 방법과 영향: Google 로그인을 선택하지 않고 이메일 인증을 이용할 수 있습니다. 이미 연결했다면 다른 로그인 수단을 확보한 뒤 Google 연결을 해제하거나 계정을 삭제하세요. Google 로그인·재인증은 사용할 수 없으며, 이메일 인증을 선택해도 아래 Play Integrity나 ML Kit의 별도 처리를 피하는 것은 아닙니다.
Google LLC — Play Integrity
- 이전 국가: 미국을 포함한 전 세계 서버에서 처리될 수 있습니다. 실제 개별 국가·리전은 미확인입니다.
- 이전 항목: 앱의 Google Cloud 프로젝트 번호, 일회용 nonce의 해시, 앱·기기 무결성 확인에 필요한 정보와 접속 정보입니다. 앱이 받은 무결성 토큰은 계정 서버에서 Google에 보내 확인하며 앱 패키지·서명·기기 무결성 판정 결과를 처리합니다. SDK가 처리하는 세부 항목 전체는 미확인입니다.
- 이전 시기·방법: Android에서 해당 기능이 설정된 경우 가입 동의와 함께 인증을 제출할 때 네트워크로 전송합니다. Google 로그인과 이메일 인증 모두 해당될 수 있습니다.
- 이용 목적: 앱·기기 무결성 확인 및 가입 남용 방지입니다.
- 보유·이용 기간: Google 개인정보 정책에 따르며 Play Integrity의 개별 보관 기간은 미확인입니다. 그약 서버의 보안 기록 정리는 제7절을 따릅니다.
- 수신자 연락처: Google 개인정보 문의, Google 개인정보 정책.
- 거부 방법과 영향: 별도 전송 해제 설정은 없습니다. 해당 가입 절차를 진행하지 않거나 기존 계정을 삭제하고 다시 가입하지 않는 방법으로 이후 가입 시 전송을 피할 수 있습니다. 가입이 필요한 일반 앱 기능은 이용할 수 없고 긴급 연락·법적 안내 등 예외 화면은 남습니다. 무결성 확인 실패 자체가 반드시 가입을 막는 것은 아니며 서버는 판정에 따라 가입 요청 제한을 달리 적용합니다.
Google LLC — ML Kit 사용·성능 지표
- 이전 국가: 미국을 포함한 전 세계 서버에서 처리될 수 있습니다. 실제 개별 국가·리전은 미확인입니다.
- 이전 항목: ML Kit의 사용·성능 지표입니다. 현재 앱에서 실제 전송되는 세부 필드 전체는 미확인입니다. 바코드·OCR 입력 사진과 인식 결과는 기기에서 처리하며 앱이 이를 인식 서버로 업로드하지 않습니다.
- 이전 시기·방법: ML Kit를 사용하는 네이티브 바코드 인식 기능 이용 시 SDK가 지표를 네트워크로 전송할 수 있습니다. 실제 전송 시점·재전송 일정은 미확인입니다.
- 이용 목적: Google의 SDK 사용·성능 측정, 유지 및 개선입니다.
- 보유·이용 기간: Google 개인정보 정책과 ML Kit 약관에 따르며 해당 지표의 개별 보관 기간은 미확인입니다.
- 수신자 연락처: Google 개인정보 문의, ML Kit 약관, Google 개인정보 정책.
- 거부 방법과 영향: 선택 기능인 네이티브 바코드 인식을 이용하지 않을 수 있으며, 이 경우 해당 바코드 인식 기능을 사용할 수 없습니다. 사진 OCR은 별도의 기기 내 Tesseract 엔진을 사용합니다. 현재 앱에는 지표 전송만 끄는 설정이 없습니다. 계정 삭제만으로 SDK 지표 전송이 꺼지는 것은 아니며, 이미 생성된 지표의 전송·삭제까지 보장하지 않습니다.
Resend — 이메일 전송
- 이전 국가: 미국입니다. 공식 안내상 서비스 데이터는 미국에 저장합니다.
- 이전 항목: 수신 이메일 주소와 인증번호·보안 안내·계정 삭제 안내 등 메일 제목·본문, 발신 주소입니다.
- 이전 시기·방법: 이메일 인증 기능 이용 시 또는 계정 보안·삭제 안내 발송 사유가 생길 때 서버가 네트워크로 전송합니다. 보안·삭제 안내는 자동 발송될 수 있습니다.
- 이용 목적: 일회용 인증번호 전달과 계정 보안·삭제 안내 발송입니다.
- 보유·이용 기간: 공식 안내상 Free/Pro/Scale 요금제의 메일·로그는 30일, 백업은 7일입니다. 서비스 고객 계약 종료 후 잔여 데이터 삭제는 90일 이내라는 별도 조건이며, 그약 이용자의 계정 삭제 후 90일 보관이라는 뜻은 아닙니다. 실제 적용 요금제·계약 조건은 미확인이며 앱의 삭제와 제공업체의 삭제 완료 시점이 같다고 보장하지 않습니다.
- 수신자 연락처: support@resend.com (공식 개인정보 정책), 보관·국외 처리 안내.
- 거부 방법과 영향: 이메일 인증을 이용하지 않으면 해당 인증 메일 전송을 피할 수 있지만, Google 로그인 계정에도 보안·삭제 안내가 발송될 수 있습니다. 계정 관련 메일 처리를 원하지 않으면 가입하지 않거나 계정을 삭제하세요. 가입이 필요한 일반 앱 기능과 이메일 인증은 이용할 수 없고 긴급 연락·법적 안내 등 예외 화면은 남습니다. 삭제 절차의 안내 메일과 기존 발송 기록의 보관까지 즉시 중단되는 것은 아닙니다.
계정 삭제·동의 철회는 이미 이전된 정보의 즉시 회수나 제공업체가 별도로 보관하는 로그의 삭제를 보장하지 않습니다. 앱에 접근할 수 없을 때의 요청은 제8절 연락처로 보내 주세요. 외부 링크를 열면 해당 사이트가 IP 등 접속 정보를 처리할 수 있습니다.
7. 보관과 삭제
기기 기록은 사용자가 삭제하거나 앱·브라우저 저장소가 정리될 때까지 남을 수 있습니다. 계정은 삭제 요청 또는 24개월 미이용 정리 대상으로 관리합니다. 백업은 백업 삭제·동의 철회·계정 삭제 시 제거 대상입니다. 계정 서버의 정기 정리 규칙은 삭제 표식·보안 실패 이력·복원 작업 기록 약 30일, 요청 제한 카운터 약 2일, 집계 메일 카운터 최대 40일입니다. 로그인 접근 토큰은 15분 유효하며, 갱신 토큰은 갱신 없이 30일이 지나면 만료됩니다. 같은 로그인 세션의 전체 유지 기간은 최대 90일입니다. 만료된 세션 기록은 갱신 또는 전체 유지 기한이 지난 뒤 1일 후부터 정리 대상입니다. 이메일 인증번호는 10분 유효하며 만료된 인증 요청은 만료 후 1일이 지난 뒤 정리 대상입니다. 실제 삭제 시점은 정리 실행과 제공업체 보관 정책에 따라 달라질 수 있습니다.
설정의 기기 데이터 전체 삭제는 내 약·저장 항목·제조번호·동의·공관·나라 선택·비상 연락처·예약 알림을 지웁니다. 공개 안전 공고와 안전 제한은 보존합니다. 이 작업은 서버 계정·백업을 삭제하지 않으며 온라인 설치 토큰과 조회 캐시도 모두 지우는 기능은 아닙니다. 이 캐시는 앱·브라우저 저장소 정리로 삭제할 수 있습니다.
8. 권리 행사와 아동
내 약 기록은 앱에서 열람·수정·삭제할 수 있습니다. 계정 화면에서 로그인 수단 연결·해제, 선택 동의 변경, 백업 삭제·동의 철회, 재인증 후 계정 삭제 또는 삭제 예약을 할 수 있습니다. 예약 삭제는 안내 발송 24시간 후와 요청 7일 후 중 먼저 도달한 시점부터 정기 처리 대상이 됩니다. 계정 삭제 시 기기 기록 삭제를 선택해도 기기의 모든 저장소가 지워지는 것은 아닙니다. 백업 삭제만 하고 백업을 계속 켜 두면 이후 변경 시 다시 업로드될 수 있으므로 중단하려면 백업 동의도 철회하세요.
열람·정정·삭제·처리정지 요청이나 앱에 접근하지 못할 때의 권리 행사 요청은 support@bailog.co로 보내 주세요. 요청하려는 권리, 대상 정보와 회신받을 연락처를 적어 주세요. 필요한 범위의 본인 확인 후 처리하며 법령상 보관이 필요한 경우 그 사유를 안내합니다. 인증번호나 복구 코드를 보내지 마세요. 계정 가입은 만 14세 이상 확인이 필요하며 만 14세 미만 아동을 대상으로 하지 않습니다. 아동 정보가 제공된 사실을 알게 되면 위 연락처로 삭제를 요청할 수 있습니다.
9. 변경과 기기 저장 항목
방침이 바뀌면 시행일을 갱신하여 앱과 공개 페이지에 게시합니다. 앱의 필수 동의 문서 버전이 바뀌면 다시 확인하도록 안내합니다. 아래에는 이전 버전의 이전·정리용 항목도 포함되어 있습니다.
- thatmeds-mine (IndexedDB)
- mine:migrated-v1
- consent:v1
- emergency:city
- region:country
- kr:saved (이전 후 제거)
- kr:lots (이전 후 제거)
- cn:medicine-saved
- cn-index:saved
- cn:medicine-snapshot
- kr:snapshot
- kr-official:snapshot
- cn-index:snapshot
- cn:medicine-alert-state
- cn:medicine-alerts (구형 자료 이전 후 제거)
- cn:medicine-safety-hold
- kr:safety-hold
- kr-official:hold
- kr-recall:state
- kr-recall:hold
- cn:medicine-storage-probe (즉시 제거)
- medicine-shell-* (CacheStorage)
- cn:legacy-migrated
- cn:legacy-medicine-safety-hold
- cn:legacy-medicine-alert-state
- cn:legacy-medicine-alerts
- medicine-safety-hold
- medicine-alert-state
- medicine-alerts
- medicine-saved
- medicine-snapshot
- data-install-v1 (localStorage)
- thatmeds-viewed-v1 (IndexedDB)
- 계정 세션·백업 키 (네이티브 보안 저장소)