Grrab 개인정보처리방침
Grrab이 Google API로부터 받은 정보의 사용은 Chrome 웹 스토어 사용자 데이터 정책 (Limited Use 요구사항 포함)을 준수합니다.
1. Grrab이 하는 일 (단일 목적)
Grrab은 단일 목적의 Chrome 확장 프로그램입니다. 사용자가 키보드 단축키(Mac: Cmd+C, Windows/Linux: Ctrl+C)로 모든 웹페이지의 이미지와 소셜 미디어 게시물을 저장하고, 콘텐츠 유형(Img 또는 SNS)별로 자동 분류할 수 있도록 합니다.
2. 수집하는 정보, 방법, 목적
Grrab은 사용자가 확장 프로그램과 상호작용할 때만 데이터를 수집합니다 — 저장 단축키 누름, 로그인, 또는 현재 사용 중인 탭에서 클립 가능한 콘텐츠에 마우스를 올리는(호버) 동작. Grrab은 사용자의 브라우징 전반을 백그라운드에서 분석하지 않으며, 사용자가 상호작용하지 않는 페이지의 데이터를 수집하거나 전송하지 않습니다. 핵심 기능에 필수적인 두 가지 좁은 예외는 아래에 명시되어 있습니다: 익명·식별 불가능한 클립 횟수 집계(2.5절)와 클립을 즉각화하기 위한 이미지·링크의 온디맨드 가져오기(2.6절).
2.1 계정 정보
- 무엇을: Google 계정의 고유 식별자(UID), 이메일 주소, 표시 이름, 프로필 사진 URL.
- 언제 수집: Grrab 사이드 패널에서 로그인할 때.
- 방법: Chrome의
chrome.identityAPI를 통한 OAuth 2.0. 비밀번호는 저장하지 않습니다. - 요청하는 OAuth scope:
openid,email,profile,https://www.googleapis.com/auth/drive.file. - 목적: 저장 항목의 소유자 식별 및 기기 간 동기화.
- 저장 위치: Firebase Authentication (Google Cloud).
2.2 저장 항목 메타데이터
- 무엇을: 사용자가 명시적으로 저장한 항목의 URL, 페이지 제목, 이미지 URL, 이미지 미리보기 데이터(원본 이미지 URL을 가져올 수 없는 경우 사이드 패널에서 미리보기를 표시할 수 있도록, 사용자의 브라우저가 소스 페이지에서 이미 렌더링한 썸네일을 저장한 것), 카테고리(Img 또는 SNS), 도메인 이름, 타임스탬프, 중복 저장 방지용 콘텐츠 식별자(동일 항목을 두 번 저장하지 않기 위한 안정적 참조값 — 예: 동영상 소스 URL 또는 게시물 ID), 감지된 플랫폼 라벨(예: 저장 항목이 유래한 소셜 네트워크), 내부 상관 ID(먼저 표시된 카드를 저장된 레코드와 매칭하기 위한 짧은 임의 문자열), 사용자가 지정한 폴더(있는 경우).
- 언제 수집: 저장 단축키를 눌렀을 때만.
- 방법: 저장 순간에만 실행되는 content script가 활성 페이지의 URL, 제목(이미지 저장 시 이미지 URL)을 읽음.
- 목적: Grrab 사이드 패널에서 나중에 찾을 수 있도록 클립을 저장하고 정리.
- 저장 위치: Firebase Firestore (Google Cloud, 아시아 북동부 지역), 사용자 계정 하위.
2.3 저장된 파일
- 무엇을: 사용자가 명시적으로 저장한 실제 이미지 또는 콘텐츠 파일.
- 언제 수집: 저장 단축키를 눌렀을 때만.
- 방법: Grrab이 소스 URL에서 다운로드.
- 목적: 사용자가 나중에 접근할 수 있도록 콘텐츠 보존.
- 저장 위치 (저장 대상 설정에 따라 사용자가 선택):
- 로컬 폴더: Chrome의 File System Access API로 사용자가 선택한 컴퓨터 내 폴더. Grrab은 이 폴더에만 파일을 쓰며, 다른 폴더에 접근할 수 없습니다.
- Google Drive: 사용자의 Google Drive 루트에 자동 생성되는
Grrab_files폴더. Grrab은drive.fileOAuth scope만 사용하므로 Grrab이 직접 만든 파일만 접근 가능하며, 사용자의 다른 Drive 파일은 볼 수 없습니다.
2.4 사용자 환경 설정
- 무엇을: 저장 대상 선택(로컬 폴더 vs Google Drive), UI 토글, 선택한 로컬 폴더 참조(있는 경우).
- 방법:
chrome.storage.local. - 목적: 세션 간 설정 기억.
- 저장 위치: 사용자 기기 로컬에만. 외부로 전송되지 않습니다.
2.5 익명 사용 횟수 (로그아웃 상태일 때)
- 무엇을: 클립이 1회 발생했다는 익명 신호. 요청 본문은 비어 있으며 — URL, 사이트, 페이지, 이미지, 계정, 기기 식별자가 전송·저장되지 않습니다. 서버에서는 집계 카운터(누적 총계 및 일자별 총계)만 증가합니다.
- 언제 수집: 로그인하지 않은 상태에서 클립할 때만. 로그인 상태의 저장은 이 신호를 보내지 않습니다.
- 방법: Grrab 서버로의 fire-and-forget 단일 요청. 식별자가 포함되지 않으므로 사용자와 연결될 수 없습니다.
- 목적: 누구도 식별하지 않고, 클립이 어디서 일어났는지 기록하지 않으면서, 전체 사용량(클립 발생 횟수)을 파악하기 위함.
- 저장 위치: Firebase Firestore(Google Cloud)에 집계 카운터로만. 개별 이벤트·개별 사용자 레코드는 생성되지 않습니다.
2.6 이미지·링크 가져오기 (클립 즉각화를 위해)
- 무엇을: 현재 사용 중인 탭의 이미지 URL 또는 링크 URL.
- 언제: (a) Grrab 사이드 패널이 이미 저장한 항목의 미리보기를 표시할 때, 원본 호스트가 직접 로딩을 막더라도 미리보기가 렌더링되도록 저장 항목의 이미지 URL을 Grrab image-proxy 서버로 경유시킬 수 있습니다. (b) 활성 탭에서 클립 가능한 항목에 호버하거나 저장할 때, 저장을 즉각화하기 위해 Grrab이 항목의 최종 링크를 해석(리다이렉트 추적)하고 이미지를 미리 가져올 수 있습니다.
- 방법: 이 가져오기는 (교차 출처/핫링크 제한 우회를 위해) Grrab 자체 백엔드가 사용자를 대신해 수행합니다. 사용자가 클립 가능한 콘텐츠와 상호작용하는 활성 탭에서만 실행되며, 상호작용하지 않는 페이지를 백그라운드에서 모니터링하지 않습니다.
- 목적: 미리보기를 안정적으로 렌더링하고 저장 동작을 즉각화하기 위함.
- 동영상 프레임: 사이트가 동영상을 다른 출처에서 제공해 프레임을 직접 읽을 수 없는 경우, Grrab은 클립하려는 프레임을 얻기 위해 현재 보이는 탭을 잠깐 캡처합니다. 이 캡처는 해당 클립 이미지를 만드는 데만 사용되며 별도로 저장되지 않습니다.
- 보관: 이 가져오기는 일시적입니다 — URL은 이미지를 가져오거나 리다이렉트를 따라가는 데만 사용되며 별도 레코드로 저장되지 않습니다. (사용자가 명시적으로 저장한 항목의 URL은 2.2절에 설명된 대로 저장됩니다.)
2.7 클립 이미지 (크기 조정, 온디바이스 업스케일링, 저장)
- 무엇을: 사용자가 클립한 이미지를 선택한 클립 크기에 맞게 조정한 것. 원본이 클립 크기보다 크면 축소하고, 작으면 초해상도(super-resolution) 머신러닝 모델로 확대합니다. 이렇게 생성된 이미지는 사이드 패널에서 저장 항목의 미리보기로 표시하기 위해 저장됩니다.
- 온디바이스 업스케일링: 업스케일링은 확장 프로그램에 번들된 모델을 사용해 전적으로 사용자 기기에서 실행됩니다(백그라운드 offscreen 문서에서 WebAssembly로 실행). 이미지는 업스케일링을 위해 외부·제3자 AI 서비스로 전송되지 않습니다.
- 언제: 로그인 상태에서 이미지 클립을 저장할 때만.
- 저장 위치: 생성된 클립 이미지는 사용자 계정 하위의 Firebase Storage(Google Cloud)에 업로드되어, 저장 대상으로 선택한 로컬 폴더나 Google Drive 사본과는 별개로(추가로) 항목의 미리보기로 사용됩니다.
- 목적: 원본 소스 이미지를 나중에 가져올 수 없게 되더라도, 저장 항목이 선택한 크기의 미리보기를 안정적으로 표시할 수 있도록 하기 위함.
3. 수집하지 않는 것
- 브라우징 기록을 남기거나 방문 페이지의 기록을 구축하지 않습니다.
- 사용자가 상호작용하지 않는 페이지의 데이터를 수집·저장하지 않으며, 사용자가 저장하지 않은 항목을 저장하지 않습니다.
- 제3자 분석 도구, 광고 SDK, 추적기를 사용하지 않습니다. Grrab이 수집하는 유일한 사용 신호는 2.5절의 익명·식별 불가능한 클립 횟수뿐입니다.
- 광고주나 데이터 브로커에게 데이터를 판매하거나 공유하지 않습니다.
- 저장 항목이나 페이지 콘텐츠를 외부·제3자 AI 서비스로 전송하여 처리하지 않습니다. (이미지 업스케일링은 확장 프로그램에 번들된 모델이 전적으로 사용자 기기에서 수행합니다 — 2.7절 참조.)
- 민감한 콘텐츠(이메일 전체 내용, 비밀번호, 금융 데이터, 건강 데이터 등)를 수집하지 않습니다.
- 저장 항목과 함께 보관되는 썸네일은 사용자의 브라우저가 소스 페이지에서 이미 렌더링한 미리보기입니다. 미리보기를 안정적으로 표시하기 위해 Grrab은 저장 항목의 이미지를 자체 image-proxy로 추가로 가져올 수 있으나(2.6절 참조), 이러한 가져오기는 일시적이며 저장 항목의 저장된 필드 이상으로 보관되지 않습니다.
4. 권한 사용 근거
Grrab은 다음 Chrome 권한을 요청하며 다음과 같이 사용합니다:
storage— 사용자 환경 설정(저장 대상, UI 설정)을chrome.storage.local로 기기 로컬에만 저장.downloads— Downloads 폴더에 저장할 때, 클립한 이미지 파일을 그 폴더에 기록하기 위함.tabs— 저장 순간에 활성 탭의 URL과 제목을 읽고, 사이드 패널 UI와 content script 간 메시지 전달.windows— 로컬 저장 폴더를 고를 때 사용하는 Grrab 폴더 선택 팝업 창을 열고 닫기 위함.sidePanel— Chrome 사이드 패널에 Grrab 메인 UI 표시. 사용자가 저장 항목을 카테고리별로 탐색하는 곳입니다.identity— OAuth 2.0을 통한 Google 로그인. 계정 식별 및 Drive 접근 요청(drive.filescope만).clipboardWrite— 클립한 이미지를 클립보드에 복사하기 위함: 저장 단축키는 클립한 이미지를 복사하고, 사이드 패널의 복사 버튼은 저장 항목의 이미지를 복사하여 다른 앱에 바로 붙여넣을 수 있게 합니다. Grrab은 클립보드에 이미지 데이터만 기록하며, 복사는 로컬에서 이뤄지고 전송되지 않습니다.offscreen— Grrab의 온디바이스 이미지 업스케일링(초해상도)을 백그라운드 offscreen 문서에서 실행하기 위함. 클립한 이미지가 선택한 클립 크기보다 작을 때 페이지를 멈추게 하지 않고 로컬에서 확대합니다. 이미지는 전적으로 사용자 기기에서 처리됩니다(2.7절 참조).notifications— 클립 도중(예: 이미지 업스케일링 중) 사용자가 페이지를 벗어났을 때 저장 완료를 알리는 간단한 시스템 알림을 표시하기 위함. 인페이지 메시지가 보이지 않을 때도 완료를 확인할 수 있게 합니다. 이 알림에는 일반적인 상태 메시지만 포함되며 개인정보는 포함되지 않습니다.
호스트 권한 (<all_urls>)
Grrab은 사용자가 저장하기로 선택한 모든 웹사이트에서 작동해야 하는 범용 저장 도구이므로 모든 URL에 대한 권한을 요청합니다. 특정 사이트로 제한하면 핵심 목적이 무력화됩니다.
광범위한 URL 패턴에도 불구하고:
- Grrab은 사용자가 현재 사용 중인 탭에서, 사용자의 상호작용에만 응답하여 동작합니다 — 저장 단축키 누름, 또는 클립 가능한 콘텐츠에 호버. 호버 시 클립 가능한 항목을 강조 표시하며, 저장을 즉각화하기 위해 호버된 항목의 링크와 이미지를 미리 해석할 수 있습니다(2.6절 참조).
- Grrab은 클립에 필요한 메타데이터(URL, 제목, 주요 이미지, 가리킨 요소)만 읽습니다.
- Grrab은 브라우징을 백그라운드에서 모니터링하지 않으며, 사용자가 상호작용하지 않는 탭에서는 동작하지 않습니다.
- Grrab은 사용자가 상호작용하지 않는 페이지에서 데이터를 수집·저장하지 않습니다.
- Grrab은 방문 페이지에서 지속적이거나 AI 기반의 콘텐츠 분석을 실행하지 않습니다.
Grrab의 클립 기능은 사용자가 활성 탭에서 클립 가능한 콘텐츠와 상호작용하기 전까지 휴면 상태로 유지됩니다.
5. 데이터 공유
Grrab은 확장 프로그램의 문서화된 기능을 운영하기 위해서만 다음 서비스 제공자와 데이터를 공유합니다:
5.1 Google (Firebase — 인증, Firestore, Storage)
- 공유되는 것: 계정 정보, 저장 항목 메타데이터, 미리보기용으로 저장되는 클립 이미지(2.7절).
- 목적: 계정·저장 항목·미리보기 이미지를 호스팅하는 백엔드 인프라.
- 여기서 함께 처리됨: 익명 클립 횟수(2.5절)와 온디맨드 이미지·링크 가져오기(2.6절)는 Google Cloud에서 구동되는 Grrab 자체 백엔드가 처리합니다. 이미지·링크 가져오기는 일시적이며 저장되지 않고, 클립 횟수는 식별자 없이 집계 총계로만 저장됩니다.
- 준수: Google의 개인정보처리방침 및 Google Cloud Platform 서비스 약관.
5.2 Google Drive (Drive를 저장 대상으로 선택한 경우에만)
- 공유되는 것: 명시적으로 저장한 파일.
- 목적: 사용자 본인의 Google Drive에 저장된 파일 보관.
- 접근 범위:
drive.file만 — Grrab이 직접 만든 파일만 보고 수정 가능. 사용자의 다른 Drive 파일은 볼 수 없음.
Grrab은 다른 어떤 제3자와도 데이터를 공유하지 않습니다. 광고주, 데이터 브로커, 분석 제공자에게 데이터를 판매하거나 대여하거나 양도하지 않습니다.
6. 데이터 보관 및 삭제
- 저장된 항목: 사용자가 개별 삭제(사이드 패널 각 항목의 삭제 버튼)하거나 계정을 삭제할 때까지 보관.
- 계정 데이터: 계정 삭제 요청 시까지 보관.
- 로컬 데이터(chrome.storage.local): Grrab 제거 또는 Chrome 확장 설정에서 확장 데이터 삭제 시 제거.
계정 삭제 요청: tlstlsgns@gmail.com.
7. 사용자의 권리
- 조회: Grrab 사이드 패널에서 모든 저장 항목 확인.
- 개별 항목 삭제: 각 항목 카드의 삭제 버튼 사용.
- 계정 삭제: tlstlsgns@gmail.com으로 계정 삭제 요청.
- OAuth 권한 철회: Google 계정 보안 설정에서 Grrab 권한 언제든지 취소 가능.
- 로컬 데이터:
chrome://extensions에서 Grrab 제거 시 로컬 데이터도 함께 삭제.
8. 보안
- 모든 네트워크 통신은 HTTPS(TLS 암호화)를 사용합니다.
- OAuth 토큰은 Chrome의 보안
chrome.identityAPI로 관리됩니다. - 백엔드 인프라(Firebase)는 Google Cloud Platform의 업계 표준 보안 사례를 사용합니다.
- Firebase Security Rules가 사용자별 데이터 격리를 강제합니다. 한 사용자는 다른 사용자의 데이터에 접근할 수 없습니다.
- Grrab 자체는 비밀번호를 저장하지 않습니다. 인증은 전적으로 Google OAuth flow에 위임됩니다.
9. 아동 보호
Grrab은 만 13세 미만 아동을 대상으로 하지 않으며, 만 13세 미만 아동으로부터 의도적으로 데이터를 수집하지 않습니다. 만일 그러한 수집이 확인되면 즉시 데이터를 삭제합니다.
10. 정책 변경
이 정책은 수시로 업데이트될 수 있습니다. 중요한 변경은 이 페이지 상단의 "최종 수정일"에 반영됩니다. 데이터 수집 시점에 공개된 범위 이상으로 정책을 소급 적용하여 변경하지 않습니다.
11. 오픈 소스
Grrab은 오픈 소스입니다. 이 정책에 설명된 데이터 처리를 확인하기 위해 전체 코드를 github.com/tlstlsgns/Grrab에서 검토할 수 있습니다.