개인정보처리방침
PAN Bookmark는 북마크를 기기에 저장하고, 사용자가 선택한 경우에만 Google 계정을 이용한 암호화 동기화를 제공합니다. 공식 Chrome 확장기는 PAN Bookmark를 빠르게 열고 사용자가 직접 요청한 현재 페이지 또는 현재 창의 웹 탭을 PAN Bookmark에 저장하기 위해 사용됩니다.
PAN Bookmark는 광고를 위한 사용자 데이터 판매, 맞춤형 광고, 행동 프로파일링을 하지 않으며 현재 배포 코드에는 별도의 광고·행동분석·제3자 추적 기능을 두고 있지 않습니다.
1. 적용 범위와 서비스 목적
본 방침은 다음 PAN Bookmark 구성요소에 적용됩니다.
- PAN Bookmark 웹앱:
https://pan-bookmark.pages.dev/ - PAN Bookmark 공식 Chrome 확장기
서비스의 단일 목적은 사용자가 링크를 워크스페이스·카테고리·그룹으로 정리하고, 필요 시 여러 기기에서 동일한 북마크 상태를 동기화하며, 확장기를 통해 현재 보고 있는 페이지 또는 열린 탭을 빠르게 저장하도록 돕는 것입니다.
2. PAN Bookmark가 처리하는 데이터
| 구분 | 처리되는 내용 | 목적 / 저장 위치 |
|---|---|---|
| 북마크 콘텐츠 | 북마크 이름, URL, 워크스페이스·카테고리·그룹 이름, 즐겨찾기 여부, 아이콘 방식·문자·색상, 생성 시각, 최근 사용 시각 등 | 기본적으로 브라우저 로컬 저장소에 저장. 클라우드 동기화를 켜면 브라우저에서 암호화한 뒤 Firestore에 저장. |
| 앱 설정 | 테마, 화면 모드, 글자색·크기 등 표시 설정, 현재 워크스페이스, 접힘 상태, 태블릿 표시 설정, 동기화 일시정지 상태 등 | 주로 해당 브라우저의 로컬 저장소에 저장. 북마크 상태 객체에 포함된 설정은 동기화 대상에 포함될 수 있음. |
| 기기 식별값 | PAN Bookmark가 브라우저에서 임의 생성한 UUID 형태의 기기 ID | 동기화 충돌·기기 구분을 위한 기술적 메타데이터. Google 계정의 실제 기기 ID를 읽는 방식이 아님. |
| 가져오기 데이터 | 사용자가 직접 선택한 PAN 백업 JSON, 다른 북마크 JSON, 브라우저 북마크 HTML 안의 링크 이름·URL·폴더/구조 정보 | 사용자의 명시적 파일 선택 후 브라우저에서 읽어 PAN Bookmark 상태로 변환. 파일 자체를 PAN 서버에 자동 업로드하지 않음. |
| 로컬 백업 | 전체 PAN Bookmark 상태가 포함된 JSON 또는 읽기용 TXT, 선택한 자동백업 파일/브라우저 전용 저장공간 | 사용자 기기 또는 브라우저 저장공간에 저장. JSON/TXT 백업은 평문일 수 있으므로 사용자가 파일을 안전하게 관리해야 함. |
| Google 계정 식별 | OAuth/OpenID Connect에서 확인한 Google 사용자 고유 식별자 sub |
계정별 동기화 공간을 구분하기 위해 사용. 서버에서는 이를 그대로 공개 식별자로 쓰지 않고 HMAC 기반 익명 식별값을 생성. |
| Google OAuth 임시 인증정보 | Google OAuth authorization code 교환으로 받은 ID token 및 access token | Google Cloud/Firebase/Firestore 최초 설정에 사용. access token은 필요한 설정 단계 동안 암호화된 HttpOnly/Secure 임시 쿠키에 최대 약 12분 보관될 수 있으며 30일 로그인 세션에는 넣지 않음. |
| 로그인 세션 | 익명 사용자 ID, PAN 동기화 프로젝트 ID, 동의 버전, 만료 시각 | 서명된 HttpOnly/Secure 쿠키로 최대 30일 유지. Google access token은 이 장기 세션에 저장하지 않음. |
| 동기화 메타데이터 | 암호화 payload, 임의 기기 ID, 동기화 시각, 스키마 버전, 동의 버전·동의 시각, 키 설정 완료 버전 | 사용자 전용 Google Cloud 프로젝트의 Firestore 문서에 저장. |
| 확장기 저장 대상 | 사용자가 저장을 요청한 현재 페이지의 제목·URL 또는 현재 창의 http/https 탭 제목·URL | chrome.storage.local에 임시 대기 상태로 저장한 뒤 PAN Bookmark에 사용자가 지정한 위치로 추가. 저장 또는 취소 시 임시 대기 데이터를 삭제. |
| 확장기 설정 | 새 탭에서 PAN Bookmark를 열지 여부 | chrome.storage.sync에 저장되어 사용자의 Chrome 환경에서 동기화될 수 있음. |
3. Google 로그인 및 cloud-platform 권한을 사용하는 이유
PAN Bookmark는 현재 OAuth 범위로 openid와
https://www.googleapis.com/auth/cloud-platform을 요청합니다.
cloud-platform은 Google Cloud 전반을 다룰 수 있는 넓은 범위의 권한이지만,
현재 PAN Bookmark 코드는 아래의 동기화 환경 준비 작업에만 사용합니다.
- Google 사용자 식별자(
sub) 확인 - 계정별 고정 ID의 PAN Bookmark Sync Google Cloud 프로젝트 검색·확인·생성
- 해당 프로젝트에서 Firebase API와 Firestore API 활성화 상태 확인 및 활성화
- 해당 Google Cloud 프로젝트에 Firebase 연결
- Firestore Native 데이터베이스 확인 및 생성(기본 위치는 현재 설정상
asia-northeast3) - PAN 동기화 서비스 계정에 해당 프로젝트의
roles/datastore.user권한 부여 - Firebase 최초 이용약관 동의가 필요한 경우 해당 Firebase 프로젝트 화면으로 사용자를 안내
cloud-platform 범위 자체가 넓기 때문에 실제 PAN Bookmark의 사용 범위보다 넓게 보이는 문구를 표시할 수 있습니다.
PAN Bookmark는 위에 적은 동기화 환경 준비 목적 외의 Google Cloud 데이터를 읽거나 변경하도록 구현되어 있지 않습니다.
4. Google 이메일·이름과 동기화 암호
- 현재 OAuth 요청에는
email또는profile범위를 별도로 요청하지 않습니다. - PAN Bookmark의 중앙 사용자 DB에 Google 이메일 주소와 Google 프로필 이름을 저장하지 않습니다.
- 사용자 구분에는 Google의 고유
sub에서 만든 익명 식별값을 사용합니다.
동기화 암호
동기화 암호는 Google 비밀번호와 별개의 PAN Bookmark 전용 암호입니다. 암호화·복호화는 사용자의 브라우저에서 수행되며 동기화 암호 원문은 PAN 서버 API로 전송하지 않습니다.
현재 구현은 사용 편의를 위해 계정별 동기화 암호를 해당 브라우저의 localStorage에 저장할 수 있으며,
최초 연결 중에는 같은 탭의 sessionStorage에 일시적으로 보관할 수 있습니다.
따라서 기기 및 브라우저 프로필 자체를 안전하게 보호해야 합니다.
5. 암호화 동기화 방식
- 북마크 상태는 브라우저에서 AES-GCM 256-bit로 암호화한 뒤 전송합니다.
- 암호화 키는 동기화 암호에서 PBKDF2-SHA-256, 310,000회 반복으로 파생합니다.
- Firestore에는 평문 북마크 상태 대신 암호화 payload가 저장됩니다.
- 서버 API는 평문
state업로드 요청을 거부하도록 구현되어 있습니다.
PAN 서버의 서비스 계정은 동기화 기능을 위해 사용자의 Firestore 동기화 문서에 기술적으로 접근할 수 있으며 암호문과 동기화 메타데이터를 읽고 쓸 수 있습니다. 그러나 동기화 암호 원문은 서버에 저장하지 않으므로, 서버가 사용자의 북마크 평문을 복호화하는 방식으로 설계되어 있지 않습니다.
6. 로컬 저장·자동백업·내보내기·불러오기
- PAN Bookmark의 기본 상태는 브라우저
localStorage에 자동 저장됩니다. - 편집 중 임시 초안·선택·설정 확인값 등은
sessionStorage를 사용할 수 있습니다. - 지원 브라우저에서는 사용자가 직접 선택한 JSON 파일에 최신 PAN 상태를 자동 덮어쓰는 백업을 연결할 수 있습니다.
- Safari 등에서는 Origin Private File System(OPFS) 같은 브라우저 전용 저장공간을 자동백업에 사용할 수 있습니다.
- 파일 선택형 자동백업의 파일 핸들은 IndexedDB에 기억될 수 있습니다.
- 사용자가 직접 내보내는 JSON/TXT 백업은 암호화되지 않은 평문 링크 목록을 포함할 수 있습니다.
- 사용자가 직접 선택한 JSON/HTML 파일은 브라우저에서 분석하여 URL·이름·폴더/그룹 구조를 가져옵니다.
사용자가 선택한 백업/가져오기 파일을 PAN 서버에 자동 전송하는 코드는 현재 포함되어 있지 않습니다.
7. 사이트 아이콘(favicon)과 외부 사이트 접속
북마크가 '주소 아이콘' 모드인 경우 PAN Bookmark는 사용자의 브라우저에서
해당 북마크 사이트의 /favicon.ico 주소를 직접 요청하여 아이콘을 표시합니다.
이 요청은 PAN 서버가 대신 수집하는 방식이 아니며, 대상 사이트는 자신의 서버 정책에 따라 일반적인 네트워크 요청 정보(IP 주소 등)를 처리할 수 있습니다.
사용자가 북마크를 눌러 외부 사이트로 이동하면 해당 사이트의 개인정보처리방침과 서비스 정책이 적용됩니다. PAN Bookmark는 링크를 연 시각을 '최근 사용' 기능을 위해 현재 북마크 상태에 기록할 수 있습니다.
8. Chrome 확장기가 사용하는 권한과 정확한 용도
| Chrome 권한 | 현재 PAN Bookmark에서의 사용 |
|---|---|
tabs | 현재 활성 페이지의 제목·URL, 사용자가 '현재 창 탭 전체 저장'을 실행했을 때 현재 창의 웹 탭 제목·URL을 읽고, 기존 PAN 탭을 찾고 활성화하며, 새 탭 대체 옵션을 처리하는 데 사용합니다. |
storage | 저장 대기 중인 페이지/탭 목록을 chrome.storage.local에 임시 보관하고, '새 탭에서 PAN Bookmark 열기' 설정을 chrome.storage.sync에 저장합니다. |
scripting | PAN Bookmark 웹페이지 안에서만 저장 UI를 보장하고, PAN Bookmark 로컬 상태의 워크스페이스·카테고리·그룹을 읽어 선택 목록을 만들며 사용자가 확정한 링크를 PAN Bookmark 상태에 추가합니다. |
contextMenus | '현재 페이지 저장', '현재 창 탭 전체 저장', 'PAN Bookmark 열기' 메뉴를 제공합니다. |
| 호스트 권한 | https://pan-bookmark.pages.dev/*에만 content script/스크립트 동작 권한을 사용합니다. |
확장기의 탭 처리 방식
- 현재 페이지 저장: 사용자가 버튼/메뉴를 누른 시점의 활성 웹페이지 제목과 URL만 저장 대상으로 만듭니다.
- 현재 창 탭 전체 저장: 사용자가 직접 실행한 경우 현재 창의
http://및https://탭 제목·URL을 저장 대상으로 만듭니다. - PAN Bookmark 자체 주소와 비웹 URL은 저장 대상에서 제외합니다.
- 저장 대기 정보는 저장 또는 취소 시 삭제합니다. 작업을 중간에 종료한 경우에는 확장기의 로컬 저장소에 대기 데이터가 남을 수 있으며 확장기 데이터 삭제/제거로 삭제할 수 있습니다.
- '새 탭에서 PAN Bookmark 열기' 옵션을 위해 탭 생성·URL 변경 이벤트에서 새 탭 주소인지 로컬로 판별합니다. 일반 탐색 URL을 이 목적으로 PAN 서버에 전송하거나 기록하지 않습니다.
- 확장기의 content script는 PAN Bookmark 도메인에만 등록되어 있으며 일반 웹사이트 본문을 읽기 위해 전체 사이트에 주입되지 않습니다.
9. 현재 수집하거나 사용하지 않는 항목
- Google 이메일·프로필 이름을 PAN 사용자 데이터베이스에 저장하는 기능
- Chrome의 전체 방문 기록(
history) 권한 또는 전체 Chrome 북마크(bookmarks) 권한을 이용한 자동 수집 - 일반 웹페이지의 본문, 입력 폼, 비밀번호, 쿠키, 스크린샷을 수집하는 기능
- 사용자의 시스템 클립보드 내용을 읽는 기능(주소 복사 기능은 사용자가 선택한 URL을 클립보드에 쓰기만 함)
- 광고 타게팅, 재타게팅, 관심사 프로파일링, 사용자 데이터 판매
- 별도의 행동분석/광고 추적 SDK를 이용한 사용자 활동 추적
10. 제3자 서비스 및 데이터 처리
PAN Bookmark 기능 제공 과정에서 다음 서비스가 사용됩니다.
- Google OAuth / Google Cloud / Firebase / Firestore: 로그인, 사용자 전용 동기화 환경 준비, 암호화 동기화 데이터 저장
- Cloudflare Pages / Workers: 웹앱 제공, OAuth 콜백, 세션 및 Google Cloud 설정 API 중계, Firestore 동기화 API 제공
- Google Chrome: 확장기 실행,
chrome.storage.local및chrome.storage.sync제공 - 사용자가 저장한 각 웹사이트: favicon 표시 또는 사용자가 링크를 열 때 사용자의 브라우저가 직접 접속
Cloudflare와 Google/Chrome은 서비스 인프라 제공 과정에서 각자의 정책에 따라 IP 주소, 요청 메타데이터 등 기술적 정보를 처리할 수 있습니다. PAN Bookmark는 이러한 제3자 서비스가 자체적으로 처리하는 데이터까지 직접 통제하지 않습니다.
11. 데이터의 판매·광고·사람에 의한 열람
- PAN Bookmark는 Google 사용자 데이터, 북마크 데이터 또는 확장기에서 처리한 탭 데이터를 판매하지 않습니다.
- 해당 데이터를 맞춤형 광고, 재타게팅 또는 관심사 광고에 사용하지 않습니다.
- 사용자가 요청한 기능 제공에 필요한 범위를 벗어나 제3자에게 이전하지 않습니다.
- 운영자가 사용자의 북마크 평문을 일상적으로 열람하는 기능을 제공하지 않습니다.
PAN Bookmark는 Google API Services User Data Policy 및 Chrome Web Store User Data Policy의 Limited Use 요구사항에 맞춰, 공개한 기능을 제공하는 데 필요한 범위에서만 사용자 데이터를 사용하도록 설계합니다.
12. 보관 기간
| 데이터 | 현재 보관 방식 |
|---|---|
| 웹앱 로컬 북마크/설정 | 사용자가 삭제·초기화하거나 브라우저 사이트 데이터를 삭제할 때까지 해당 브라우저에 유지될 수 있습니다. |
| 자동백업 파일/OPFS | 사용자가 파일 또는 브라우저 저장공간을 직접 삭제할 때까지 유지될 수 있습니다. |
| Firestore 암호화 동기화 데이터 | 새 상태로 덮어쓰거나 해당 Google Cloud 프로젝트를 삭제할 때까지 유지될 수 있습니다. |
| 동의 기록 | 사용자 전용 Firestore 프로젝트의 동의 문서에 프로젝트가 유지되는 동안 남을 수 있습니다. |
| OAuth state 쿠키 | 약 10분 이내의 임시 인증 흐름용. |
| 설정용 bootstrap 쿠키 | 필요한 경우 최대 약 12분의 임시 설정 흐름용. |
| PAN 로그인 세션 쿠키 | 최대 약 30일 또는 로그아웃/쿠키 삭제 시까지. |
| 확장기 저장 대기 데이터 | 저장·취소 시 제거. 중단된 경우 확장기 로컬 저장소에 남을 수 있음. |
13. 데이터 삭제, 초기화 및 권한 철회
- PAN Bookmark의 '모든 북마크 초기화': 현재 앱의 카테고리·북마크 상태를 비웁니다. 테마/화면 설정 일부는 남을 수 있습니다.
- 자동백업 주의: 연결된 자동백업 파일은 초기화 직전 복구본으로 보존하도록 구현되어 있어, 앱 초기화만으로 백업 파일까지 삭제되지 않습니다.
- 브라우저 로컬 데이터 완전 삭제: 브라우저에서
pan-bookmark.pages.dev사이트 데이터(로컬 저장소, IndexedDB, OPFS 등)를 삭제해야 합니다. - 사용자가 내려받은 백업: JSON/TXT 파일은 사용자가 저장한 위치에서 직접 삭제해야 합니다.
- 클라우드 동기화 데이터 완전 삭제: 본인 Google Cloud에서 PAN Bookmark Sync 프로젝트를 삭제하면 해당 프로젝트의 Firestore 동기화 데이터와 동의 기록도 함께 제거할 수 있습니다.
- Google OAuth 권한 철회: Google 계정의 연결된 앱/제3자 접근 관리에서 PAN Bookmark의 접근 권한을 철회할 수 있습니다.
- 확장기 데이터: 확장기 제거 또는 Chrome의 확장기 데이터 관리 기능을 통해 확장기 로컬 데이터를 삭제할 수 있습니다.
14. 보안
- 서비스는 HTTPS를 사용합니다.
- OAuth Client Secret, PAN 서비스 계정 JSON, 세션 서명 Secret은 일반 프론트엔드 JavaScript에 넣지 않고 Cloudflare 서버 측 Secret으로 관리하도록 구성되어 있습니다.
- 인증 쿠키는
HttpOnly,Secure,SameSite=Lax속성을 사용합니다. - 북마크 클라우드 동기화는 브라우저 측 암호화를 적용합니다.
다만 어떠한 인터넷 서비스도 절대적인 보안을 보장할 수 없습니다. 사용자는 동기화 암호, Google 계정, 브라우저 프로필, 내려받은 백업 파일을 직접 안전하게 관리해야 합니다.
15. 개인정보처리방침 변경
PAN Bookmark의 데이터 처리, Google OAuth 범위, 확장기 권한 또는 동기화 구조가 변경되면 실제 동작과 일치하도록 본 방침을 갱신하고 시행일을 변경합니다.
16. 문의
PAN Bookmark의 개인정보 및 데이터 처리 관련 문의는 PAN Bookmark를 제공받은 공식 배포·안내 채널 또는 Google OAuth 동의 화면/Chrome Web Store에 표시되는 개발자 연락처를 통해 접수할 수 있습니다.