Chrome이 사이트마다 기억하는 것들—그리고 한 번에 전부 지우는 방법
웹사이트를 방문할 때마다 Chrome은 그 사이트를 대신해서 컴퓨터에 데이터를 씁니다. 명확한 것들도 있습니다: 쿠키, 로그인 세션. 잘 모르고 있는 것들도 많습니다: 사용 횟수 카운터, 체험판 플래그, "이 팝업은 이미 봤음" 마커, A/B 테스트 배정, 설정 마법사 진행 상태, 온보딩 완료 플래그.
사이트는 당신이 누구인지 몰라도 당신이 무엇을 했는지 기억할 수 있습니다. localStorage나 IndexedDB에 쓰기만 하면 됩니다. Chrome은 당신이 명시적으로 삭제하기 전까지 그 데이터를 무기한 보관합니다.
핵심 인사이트: 웹사이트가 당신에 대해 "기억"하는 많은 것들이 그들의 서버가 아니라 당신의 브라우저에 저장되어 있습니다. 즉, 계정을 건드리지 않고도 지울 수 있습니다. VertiTab의 Debug 모드가 이걸 한 번에 처리합니다.
Chrome이 사이트별로 저장하는 것
어떤 도메인을 방문하든 여러 독립적인 저장 시스템이 동시에 작동합니다:
| 저장소 종류 | 사이트가 활용하는 방식 | 새로고침 후에도 남아있나? |
|---|---|---|
localStorage | 사용 카운터, 설정, 체험판 플래그, 기능 토글 | ✓ 영구적 |
IndexedDB | 앱 상태, 오프라인 데이터, 구조화된 콘텐츠 | ✓ 영구적 |
sessionStorage | 다단계 폼 상태, 마법사 진행 상태 | 탭 닫으면 사라짐 |
| Cache Storage | 오프라인 에셋, Service Worker 리소스 | ✓ 영구적 |
| Service Workers | 캐시된 앱 버전 서빙 | ✓ 등록 해제 전까지 |
| 쿠키 | 세션, 추적, 체험판 만료 플래그 | 만료일까지 |
마지막 열이 중요합니다. 이 데이터들은 강제 새로고침, 캐시 비우기, 심지어 브라우저 재시작 후에도 그대로 남습니다. 명시적으로 삭제하기 전까지는 사라지지 않습니다.
사이트가 왜 "제한"을 클라이언트 측에 저장하는가
"N번 무료로 사용한 후 로그인하세요"라는 프롬프트 뒤에는 대부분 이런 메커니즘이 있습니다:
- 로그인 없이 기능을 사용한다
- 사이트가
localStorage에 카운터를 씁니다:{ trialUsed: 1 } - 다음 방문 시 그 카운터를 읽어 페이월 표시 여부를 결정한다
- 모든 판단이 브라우저 내 JavaScript에서 완결됨 — 서버 요청 없음
이 패턴은 수많은 제품 카테고리에서 흔합니다: 무료 프롬프트가 제한된 AI 도구, 페이지 제한이 있는 문서 에디터, 파일 수 제한이 있는 동영상 변환기, 단어 수 할당이 있는 문법 교정기, 그리고 체험 모드로 운영되는 수많은 SaaS 툴들.
같은 메커니즘은 비상업적인 맥락에서도 나타납니다: localStorage로 이번 달 기사 읽기 수를 카운트하는 뉴스 미디어(소프트 페이월), 완료한 챕터를 기억하는 튜토리얼 플랫폼, 첫 방문 시에만 표시되는 온보딩 투어.
사이트 데이터 삭제가 실제로 초기화하는 것
Debug 모드로 사이트 데이터를 지우면 다음이 초기화됩니다:
일반 사용자에게:
- localStorage나 쿠키에 저장된 체험판 사용 횟수
- "이 혜택/팝업을 이미 봤음" 플래그
- 소프트 페이월의 기사 읽기 카운터
- 팝업 억제 플래그 ("다시 보지 않기")
- A/B 테스트 배정 (다음 로드에서 새로 배정됨)
개발자에게:
- 스키마 변경 후 남아있는 오래된 앱 상태
- 오래된 캐시 번들을 계속 서빙하는 Service Worker
- 실패한 마이그레이션으로 인한 손상된 IndexedDB 레코드
- 이전 테스트 세션의 인증 토큰 잔재
두 그룹 모두 같은 기저 저장소를 초기화하고 있습니다. 차이는 목적뿐입니다.
사이트 데이터 삭제로 초기화할 수 없는 것
이 도구가 할 수 있는 것과 없는 것을 명확히 합니다:
우회 불가:
- 서버 사이드 사용 횟수 추적 (사이트가 백엔드에서 IP 또는 기기 지문을 기록하는 경우)
- 계정 기반 제한 (로그인 상태에서의 할당량은 서버 사이드)
- 결제 수단이나 전화번호 인증에 묶인 체험판 제한
초기화 가능:
- 서버 검증 없이 순전히 클라이언트 측 저장소로만 구현된 제한
- 사이트가 서버에 영속화하지 않은 세션 상태
- 로컬에 저장된 설정과 각종 플래그
많은 체험판 시스템이 익명 사용자에게는 클라이언트 측 저장소만 사용합니다. 구현이 가장 쉽기 때문입니다. 하지만 더 잘 설계된 시스템은 서버 측에서도 검증합니다. 가능한지는 직접 시도해봐야 알 수 있습니다.
Debug 모드 사용 방법
탭 단위 (일시적):
- VertiTab 사이드 패널에서 원하는 탭을 우클릭
- Debug 모드 활성화 선택
- 삭제할 저장소 종류를 선택
- 영구 적용이 필요하면 "이 사이트에 적용" 체크
사이트 단위 (영구적):
- VertiTab 설정 → 사이트 설정
- 호스트명으로 사이트 찾기
- Debug 모드 토글 활성화
- 설정을 클릭해 저장소 옵션 구성
활성화 후 사이드 패널 탭 옆에 🐛 아이콘이 표시됩니다. 한 번 클릭으로 삭제와 새로고침이 동시에 실행. DevTools는 필요 없습니다.
설정 가능한 삭제 항목: Cache Storage, localStorage, sessionStorage, IndexedDB, Service Workers, 쿠키, 방문 기록
로그인은 유지하고 사용 데이터만 지우려면
로그인된 사이트에서 모든 쿠키를 삭제하면 로그아웃됩니다. 사용 데이터를 초기화하면서 로그인 상태를 유지하려면 쿠키 제외 목록을 사용하세요.
현재 탭의 모든 쿠키를 불러와 보존할 항목을 선택합니다 — 인증 토큰, CSRF 토큰, 세션 식별자 등. 나머지는 정상적으로 삭제됩니다. 제외 규칙은 이름만 (session_id)과 도메인 포함 패턴 (api.example.com:token) 두 가지 형식을 지원합니다.
어떤 방법을 선택해야 하나
| 상황 | 대처 |
|---|---|
| 배포 후 JS/CSS가 업데이트되지 않음 | 강제 새로고침으로 충분 |
| 사이트가 체험판 사용을 "기억"함 | Debug 모드 |
| A/B 테스트가 항상 같은 변형 | Debug 모드 |
| 온보딩 플로우가 다시 나타나지 않음 | Debug 모드 |
| 업데이트 후 앱 상태가 깨짐 | Debug 모드 |
| 원인을 모르겠음 | Debug 모드; 가장 안전한 출발점 |
사용 시나리오
로그인 없는 도구의 체험판 초기화 — 많은 AI 어시스턴트, 문서 도구, 변환기, SaaS 데모가 가입 없이 사용해볼 수 있습니다. 2~3번 사용하면 "계속하려면 가입하세요"라는 메시지가 뜹니다. 그 카운터는 localStorage나 쿠키에 있습니다. 삭제하면 사이트는 당신을 신규 방문자로 취급합니다.
뉴스 기사의 소프트 페이월 — 뉴스 미디어와 콘텐츠 플랫폼은 이번 달 기사 읽기 수를 localStorage로 관리하는 경우가 많습니다. 로그인이 필요한 하드 페이월과는 다릅니다. 사이트 데이터를 삭제하면 카운터가 초기화되어 첫 방문자로 취급됩니다.
온보딩 플로우 다시 경험하기 — 제품 투어와 환영 마법사는 localStorage의 hasCompletedOnboarding: true 플래그로 억제되며 한 번만 표시됩니다. 삭제하면 다시 경험할 수 있습니다 — 제품 평가나 UX 테스트에 유용합니다.
배포 후 SPA 상태 버그 — 스키마 변경 후 오래된 데이터를 가진 사용자에게서 오류 발생. Debug 모드로 IndexedDB 레코드를 지우고 마이그레이션 경로를 클린한 상태에서 테스트합니다.
업데이트되지 않는 Service Worker — 새 버전을 배포해도 SW가 오래된 번들을 계속 서빙. Debug 모드가 SW 등록 해제와 캐시 삭제를 한 번에 처리합니다.
QA 회귀 테스트 — 매 테스트 실행 전 DevTools를 거치지 않고 클릭 한 번으로 재현 가능한 초기 상태를 만들 수 있습니다.
자주 묻는 질문
Q: 왜 많은 사이트가 "제한"을 서버가 아닌 localStorage에 저장하나요?
A: 익명 사용자에게는 클라이언트 측 저장소가 백엔드 인프라를 전혀 필요로 하지 않습니다. 구현이 가장 쉽고, 서버 비용이 없으며, 사용자 식별도 필요 없습니다. 단점은 삭제가 쉽다는 것 — 그래서 성숙한 제품들은 결국 서버 사이드 검증으로 이전합니다.
Q: 사이트 데이터를 지우면 로그아웃되나요?
A: 설정에 따라 다릅니다. 쿠키를 삭제했고 세션이 쿠키에 저장되어 있다면 로그아웃됩니다. 쿠키 제외 목록을 사용해 인증 쿠키를 보존하면서 다른 저장소를 지우세요.
Q: 계정 기반 제한에도 효과가 있나요?
A: 없습니다. 사이트가 서버 사이드에서 사용량을 검증한다면, 클라이언트 데이터 삭제는 효과가 없습니다.
Q: DevTools가 열려있어야 하나요?
A: 아닙니다. DevTools 상태와 관계없이 언제든지 사용할 수 있습니다.
Q: Debug 모드는 유료 기능인가요?
A: 네, VertiTab 프리미엄 구독이 필요합니다.
Q: 사이트마다 다른 설정이 가능한가요?
A: 가능합니다. 설정은 호스트명별로 독립적으로 저장됩니다.
관련 글: