동의를 어디에 저장할까: 쿠키, localStorage, 서버 측 기록 비교
두 가지 서로 다른 작업
방문자가 동의 선택을 하면 두 가지 별개의 일이 일어나야 합니다. 첫째, 배너가 모든 페이지에서 다시 나타나지 않고 태그가 무엇을 해도 되는지 알 수 있도록 브라우저가 그 선택을 기억해야 합니다. 둘째, 나중에 선택이 이루어졌다는 것, 방문자에게 무엇이 표시되었는지, 언제였는지를 증명해야 할 수 있습니다. 이 작업들은 서로 다른 저장 메커니즘이 처리하는 경우가 많으며, 이를 혼동하면 실제 문제가 생깁니다. 배너가 계속 다시 나타나거나, 일부 브라우저에서 선택이 사라지거나, 누군가 물었을 때 보여줄 기록이 없는 경우입니다.
이 비교는 세 가지 일반적인 옵션, 즉 퍼스트파티 쿠키, localStorage 같은 브라우저 저장소, 서버 측 동의 기록을 살펴보고 각각이 어디에 적합한지 설명합니다.
옵션 1: 퍼스트파티 쿠키
쿠키는 동의 상태의 전통적인 보관 장소입니다. TCF CMP는 흔히 동의 문자열을 퍼스트파티 쿠키에 저장하며, 많은 CMP가 자체 환경설정 데이터도 쿠키에 저장합니다.
강점
- 서버가 읽을 수 있습니다. 쿠키는 모든 요청과 함께 전송되므로, 서버 측 코드, 엣지 로직, 서버 측 태깅이 JavaScript를 기다리지 않고 선택을 읽을 수 있습니다.
- 서브도메인 간에 공유할 수 있습니다. 등록 가능한 도메인에 설정된 쿠키는 www, blog, shop 서브도메인을 포괄할 수 있습니다.
- 널리 기대됩니다. 많은 애드테크 통합이 쿠키에서 동의를 찾습니다.
약점
- 크기 제한. 브라우저는 쿠키 크기를 약 4 KB로 제한하며, 많은 벤더를 포함한 TCF 문자열과 다른 값들이 이 한계에 근접할 수 있습니다.
- 요청 오버헤드. 이미지와 스크립트 요청을 포함해 도메인으로 가는 모든 요청이 쿠키를 싣고 갑니다.
- 일부 브라우저의 수명 상한. Safari의 Intelligent Tracking Prevention은 JavaScript로 생성된 쿠키의 최대 수명을 7일로 제한합니다. 자체 서버가 HTTP 응답으로 설정한 쿠키는 일반적으로 더 관대하게 취급되지만 예외도 있습니다.
옵션 2: localStorage 및 기타 브라우저 저장소
일부 CMP는 상세한 환경설정을 localStorage에 저장하며, 때로는 더 작은 쿠키와 함께 사용합니다.
강점
- 더 넉넉한 공간. 오리진당 수 메가바이트로, 벤더 수준의 상세한 선택을 담기에 충분합니다.
- 요청 오버헤드 없음. 서버로 자동 전송되는 것이 없습니다.
약점
- 서버에서 보이지 않습니다. 서버 측 코드와 엣지 로직은 이를 읽을 수 없으므로, 서버 측 결정은 모두 브라우저를 기다려야 합니다.
- 하나의 오리진에 묶입니다. www.example.com의 저장소는 shop.example.com에서 사용할 수 없으므로 방문자가 서브도메인마다 배너를 다시 볼 수 있습니다.
- 삭제될 수 있습니다. Safari는 브라우저 사용 기준 7일 동안 사용자가 상호작용하지 않은 사이트의 localStorage를 포함한 스크립트 쓰기 가능 저장소를 제거할 수 있으며, 비공개 브라우징 모드는 보통 세션이 끝나면 이를 지웁니다.
옵션 3: 서버 측 동의 기록
서버 측 기록은 선택이 이루어질 때마다 귀사 또는 CMP 제공업체가 저장하는 항목입니다. 보통 가명 식별자, 타임스탬프, 선택 내용, 표시된 배너 또는 정책의 버전, 지역 같은 맥락 정보가 포함됩니다.
강점
- 내구성 있는 증거. 쿠키 삭제와 브라우저 제한에도 살아남으므로 동의가 확보되었음을 입증하는 데 적합한 수단입니다.
- 감사 가능. 시간에 따른 선택을 보고할 수 있고 특정 이벤트에 대한 질문에 답할 수 있습니다.
- 기기 간 활용 가능성. 로그인한 독자에 대해서는, 이를 설명한다면 서버 기록이 기기 간에 선택을 동기화할 수 있습니다.
약점
- 로컬 상태를 대체하지 못합니다. 브라우저의 태그에는 여전히 빠른 로컬 신호가 필요합니다. 동의를 조회하려고 모든 페이지뷰마다 서버를 호출하면 지연이 늘어납니다.
- 그 자체가 개인 데이터입니다. 기록에는 보관 기간, 접근 통제, 개인정보 처리방침 내 위치가 필요합니다.
- 식별자 의존. 익명 방문자는 기기에 저장된 식별자를 통해서만 기록과 매칭될 수 있으므로, 결국 로컬 저장소로 되돌아옵니다.
나란히 보는 요약
- 웹에서 선택을 기억하는 데 최적: 퍼스트파티 쿠키. 이상적으로는 서버가 안정적인 수명으로 설정한 것.
- 브라우저의 상세한 환경설정 데이터에 최적: localStorage. 서버가 읽을 수 있는 쿠키와 짝을 이룹니다.
- 선택을 증명하는 데 최적: 서버 측 기록.
- 단일 옵션으로서 최악: localStorage에만 의존하는 것. 서버가 아무것도 볼 수 없게 되고 일부 브라우저에서 선택이 취약해집니다.
실용적인 조합 접근법
- 권위 있는 로컬 신호(예: TCF 문자열과 간결한 환경설정 기록)를 등록 가능한 도메인으로 범위가 지정된 퍼스트파티 쿠키에 저장합니다.
- localStorage는 서버에 도달할 필요가 없는 보충 데이터에만 사용합니다.
- 표시된 배너와 정책의 버전을 포함해 각 선택마다 서버 측 기록을 작성합니다.
- 저장된 선택이 사라지면 이전의 답변이 있다고 가정하지 말고 배너를 다시 표시합니다.
- 저장된 선택에 대한 재요청 주기를 정하고 정책에 기록합니다.
방문자의 동의 선택 자체를 저장하는 것은 일반적으로 방문자가 요청한 서비스, 즉 그 결정을 기억하는 일을 제공하는 데 필요한 것으로 취급되지만, 주요 시장에 적용되는 지침을 확인하십시오.
핵심 요약
- 선택을 기억하는 것과 증명하는 것은 서로 다른 저장소가 필요한 서로 다른 작업입니다.
- 쿠키는 서버가 읽을 수 있고 서브도메인 간에 공유할 수 있지만, 크기가 제한되고 Safari에서는 스크립트가 설정한 경우 수명도 제한됩니다.
- localStorage는 공간이 넉넉하지만 서버에서 보이지 않으며 브라우저가 지울 수 있습니다.
- 서버 측 기록은 증거 계층이며 로컬 신호를 대체하지 않습니다.
- 서버가 설정한 퍼스트파티 쿠키, 선택적 브라우저 저장소, 서버 기록을 조합하십시오.