최근에 웹사이트에 방문하려고 들어가면 쿠키 사용 동의 여부를 물어보는 경우가 많습니다. 거의 대부분이 물어본다고 해도 무방하지 않을까 싶습니다. 쿠키가 웹사이트에 방문했던 기록들을 모아 놓은 곳으로 다시 방문했을 때 더 빠르게 로딩 될 수 있도록 도와준다는 정도의 개념만 알고 있었지만 정확히 어떤 것인지, 왜 웹사이트에서는 쿠키를 수집하려고 하는 것인지 보다 자세히 공부해보려고 합니다.
쿠키란?
쿠키는 특정 사용자가 웹사이트에 방문할 때 브라우저에 저장되는 데이터 파일을 말합니다. 이 데이터 파일은 웹사이트가 사용자를 기억하고, 이전에 입력했던 정보나 설정을 다시 불러오거나, 로그인 상태를 유지하는데 도움을 주는 역할을 수행합니다.
일반적으로 키-값 쌍의 형태로 저장되며, 웹 서버가 HTTP 요청을 통해 브라우저로 전달하며, 이후 사용자가 같은 웹사이트를 방문하면 브라우저가 해당 쿠키를 서버로 다시 전달합니다.
쿠키의 작동 방식을 조금 더 정리하면 아래와 같습니다.
1) 생성 및 저장: 사용자가 웹사이트에 접속하면 서버는 특정 정보를 쿠키 형태로 브라우저에 전송하며 쿠키는 사용자의 브라우저에 저장됩니다.
2) 전송: 사용자가 웹사이트를 다시 방문하면 브라우저는 해당 쿠키를 서버로 자동 전송합니다. 서버는 이렇게 전송 받은 쿠키를 기반으로 사용자를 식별하거나 이전 데이터를 활용합니다.
3) 삭제: 쿠키는 사용자가 삭제하거나 만료 날짜가 지나면 브라우저에서 제거됩니다.
※ 쿠키라 불리는 이유?
쿠리(Cookie)라는 이름을 사용한 이유를 알아보기 위해서는 역사적 배경을 조금 알아야 합니다. 1960~1970년대 시스템 간 교환되는 작고 유용한 데이터 조각을 의미하는 매직 쿠키라는 용어가 등장했습니다. 그리고 1994년, Netscape Navigator 브라우저에서 HTTP 쿠키가 처음 도입되면서 매직 쿠키가 데이터를 교환하고 작업 상태를 유지하는데 쓰였던 것 처럼 웹 쿠키도 비슷한 방식으로 사용자 상태를 관리해 사용했다고도 하며, 쿠키라는 이름처럼 작고 단순한 데이터 조각이라는 개념을 나타내기 위해 사용되었다고 합니다.
쿠키를 확인할 수 있는 방법
사실 막연하게 쿠키가 정보를 저장하고 있다는 것을 알았지만 어떻게 생긴 것인지 직접 보고 싶어 확인할 수 있는 방법에 대해 알아보았습니다. 우선 가장 쉬운 방법으로 크롬 브라우저에서 아래 방법을 통해 바로 확인할 수 있었습니다.
1) 웹사이트에 접속한 상태에서 크롬 브라우저 오른쪽 상단의 점 세개 메뉴를 클릭합니다.
2) 도구 더보기 > 개발자 도구(Ctrl + Shift +l)를 선택합니다.
3) 개발자 도구 창에서 Application 탭을 클릭합니다.
4) 왼쪽 메뉴에서 Storage > Cookies를 선택하면, 해당 웹사이트의 쿠키 목록을 확인할 수 있습니다.
이렇게 확인하는 방법도 있지만 실제 PC에 아래 경로에 저장된 쿠키 파일을 SQLite 뷰어나 데이터베이스 도구를 사용해 확인할 수 있습니다. 간단히 무료 SQLite 뷰어를 통해 확인하는 방법은 아래와 같습니다.
파일 경로: C:\Users\[사용자 이름]\AppData\Local\Google\Chrome\User Data\Default\Network\Cookies
1) DB Browser for SQLite를 실행합니다.
2) 메뉴에서 File > Open Database를 선택합니다.
3) 앞서 확인한 브라우저의 쿠키 파일 경로에서 Cookies 파일을 엽니다.
4) 탭 메뉴에서 "Browse Data"를 선택합니다.
5) Table (테이블) 드롭다운 메뉴에서 cookies 또는 유사한 이름의 테이블을 선택합니다.
쿠키에 저장된 정보
다음으로 쿠키에 저장된 값은 키와 값의 쌍으로 이루어진다고 되어 있지만 정확히 어떤 데이터들이 쿠키에 쌓이는지 알기 위해 위에 구글 크롬의 개발자 사이트에서 확인할 수 있는 내용을 가져 왔습니다. 보다 자세한 내용은 위에 주소를 통해 방문하시면 확인 하실 수 있습니다.
https://developer.chrome.com/docs/devtools/application/cookies?utm_source=devtools&hl=ko
쿠키 테이블에는 다음 필드가 포함됩니다.
이름: 쿠키의 이름입니다.
값: 쿠키의 값입니다.
도메인: 쿠키를 수신할 수 있는 호스트입니다.
경로: Cookie 헤더를 전송하기 위해 요청된 URL에 있어야 하는 URL입니다.
만료 / 최대 기간: 쿠키의 만료일 또는 최대 수명입니다. 세션 쿠키의 경우 이 값은 항상 Session입니다.
Size(크기): 쿠키 크기(바이트)입니다.
HttpOnly: 이 필드가 true인 경우 쿠키가 HTTP를 통해서만 사용되어야 하며 JavaScript 수정은 허용되지 않는다는 의미입니다.
보안: 이 필드가 true인 경우 쿠키가 보안 HTTPS 연결을 통해서만 서버로 전송될 수 있음을 나타냅니다.
SameSite: 쿠키에서 실험용 SameSite 속성을 사용하는 경우 Strict 또는 Lax를 포함합니다.
파티션 키: 독립적인 파티션 상태가 있는 쿠키의 경우 파티션 키는 쿠키를 설정하는 엔드포인트에 대한 요청이 시작될 때 브라우저가 방문한 최상위 URL의 사이트입니다.
우선순위: 지원 중단된 쿠키 우선순위 속성을 사용하는 경우 Low, Medium (기본값) 또는 High를 포함합니다.
쿠키의 종류
쿠키에는 목적과 유효 기간, 속성 등 여러 기준에 따라 다양하게 분류될 수 있습니다.
먼저 유효기간에 따라서는 세션 쿠키(Session Cookies)와 지속 쿠키(Persistent Cookies)로 구분될 수 있으며 각각의 개념은 아래와 같습니다.
1) 세션 쿠키 (Session Cookies):
세션 쿠키는 브라우저를 닫으면 자동으로 삭제되는 임시 쿠키입니다. 웹사이트를 방문한 동안에만 유효하며, 사용자가 로그인하거나 쇼핑몰에서 장바구니를 유지하는 등 즉각적인 작업 상태를 관리하는 데 사용됩니다. 예를 들어, 온라인 쇼핑몰에서 로그인을 유지하거나 결제 과정에서 데이터를 처리할 때 활용됩니다.
2) 지속 쿠키 (Persistent Cookies):
지속 쿠키는 유효 기간(만료 날짜)이 설정된 쿠키로, 브라우저를 닫아도 삭제되지 않고 설정된 기간 동안 브라우저에 남아 있습니다. 이러한 쿠키는 사용자의 선호 설정(예: 언어, 테마)이나 자동 로그인 기능을 제공하며, 광고 트래킹 또는 분석 목적으로도 자주 사용됩니다. 예를 들어, 뉴스 사이트에서 사용자가 선호하는 지역 섹션을 기억하는 경우가 있습니다.
또한 쿠키를 설치한 도메인에 따라서 분류될 수도 있으며 이에 따라 1차 쿠키 혹은 자사 쿠키 혹은 영어 그대로 퍼스트 파트 쿠키라고도 하는 쿠키와 3차 쿠키 또는 서드 파트 쿠키가 있습니다.
1) 1차 쿠키 (First-Party Cookies):
1차 쿠키는 사용자가 방문한 웹사이트의 도메인에서 설정한 쿠키입니다. 웹사이트가 자체적으로 제공하는 기능과 사용자 맞춤형 서비스를 제공하기 위해 저장됩니다. 예를 들어, 사용자가 특정 뉴스 사이트를 방문하고 로그인을 유지하는 데 필요한 쿠키는 1차 쿠키입니다. 이러한 쿠키는 일반적으로 사용자 경험을 개선하는 데 초점이 맞춰져 있습니다.
2) 3차 쿠키 (Third-Party Cookies):
3차 쿠키는 사용자가 방문한 웹사이트가 아닌 외부 도메인에서 설정한 쿠키입니다. 광고 네트워크, 소셜 미디어 플랫폼 등 외부 서비스 제공자가 설정하며, 광고 타겟팅 및 사용자 행동 분석에 주로 활용됩니다. 예를 들어, 사용자가 웹사이트에 포함된 Facebook "좋아요" 버튼과 상호작용하면 Facebook 도메인에서 설정된 쿠키가 저장될 수 있습니다. 이러한 쿠키는 사용자 활동을 여러 사이트에서 추적하는 데 사용되며, 프라이버시 문제로 인해 최근 웹 브라우저에서 차단되는 경우가 많습니다.
이 외에도 사용 목적에 따라 웹사이트의 기본 기능을 지원하기 위해 반드시 필요한 필수 쿠키(로그인 세션 유지, 사용자 인증 등), 웹사이트의 성능 및 작동 방식 개선을 위해 수집되는 성능 쿠키(페이지 로드 시간 분석 등), 사용자 설정과 선호도를 기억하는 기능 쿠키(언어 설정, 사용자 인터페이스 등), 사용자의 웹 활동을 추적하고 개인화된 광고를 제공하기 위해 3차 쿠키로 설정되는 경우가 많은 타켓팅 쿠키가 있습니다.
쿠키의 주요 기능
앞서 소개한 쿠키의 정의에서도 언급했고 사용 목적에 따른 분류에서도 어느정도 쿠키의 주요 기능에 대해 알 수 있지만 보다 자세히 알아보겠습니다.
1) 사용자 세션 관리
쿠키는 로그인 정보, 장바구니 상태 등 웹사이트의 세션 정보를 저장하여 사용자가 사이트를 탐색하는 동안 상태를 유지하도록 돕습니다.
예시: 사용자가 온라인 쇼핑몰에서 제품을 장바구니에 추가하면, 쿠키가 이를 저장하여 다른 페이지로 이동하거나 브라우저를 새로고침해도 장바구니 상태가 유지됩니다.
필요성: 로그인된 사용자 상태 유지, 결제 과정 중 데이터 보존 등 실시간 작업 상태 관리에 필수적입니다.
2) 사용자 설정 저장
쿠키는 사용자가 선호하는 설정을 저장하여 웹사이트 방문 시 자동으로 이를 반영합니다.
예시: 사용자가 다크 모드와 특정 언어를 설정한 경우, 쿠키는 이를 기억해 이후 방문 시 동일한 설정을 적용합니다.
장점: 사용자는 설정을 반복 입력할 필요 없이 개인화된 경험을 누릴 수 있습니다.
3) 맞춤형 콘텐츠 제공
쿠키는 사용자의 관심사와 과거 활동을 기반으로 맞춤형 콘텐츠를 제공합니다.
예시: 사용자가 특정 상품을 자주 검색하는 경우, 관련 상품 추천이나 할인 정보를 표시하는 데 사용됩니다.
활용: 뉴스 사이트는 사용자가 자주 보는 카테고리를 기억해 맞춤형 뉴스 피드를 제공하며, 스트리밍 서비스는 사용자의 시청 이력을 기반으로 영화나 드라마를 추천합니다.
4) 인증 및 보안 강화
쿠키는 사용자의 신원을 인증하고, 안전한 연결을 유지하는 데 기여합니다.
예시: 은행 웹사이트는 로그인 세션 쿠키를 사용해 사용자의 인증 상태를 유지하며, 중요한 작업을 수행할 때만 재인증을 요구합니다.
보안 측면: HttpOnly 또는 Secure 속성이 설정된 쿠키는 자바스크립트를 통한 조작이나 도청을 방지합니다.
5) 사용자 행동 분석
쿠키는 웹사이트에서 사용자의 행동 데이터를 수집하여 사이트의 성능과 사용자 경험을 개선하는 데 활용됩니다.
예시: Google Analytics 쿠키는 사용자가 어떤 페이지를 방문하고, 얼마나 오래 머물렀는지 등을 기록해 웹사이트 운영자가 사이트 구조를 개선할 수 있도록 돕습니다.
의미: 쿠키 데이터는 트래픽 분석, 콘텐츠 개선, 사용자 경험 최적화를 위한 중요한 자료를 제공합니다.
6) 광고 타겟팅 및 리마케팅
쿠키는 사용자의 브라우징 기록을 기반으로 개인화된 광고를 표시하는 데 사용됩니다.
예시: 사용자가 쇼핑몰에서 특정 제품을 검색한 후, 다른 웹사이트에서 해당 제품의 광고가 나타나는 경우가 이에 해당합니다.
활용: 광고주는 3차 쿠키를 통해 사용자 데이터를 분석하여 관심사에 맞는 광고를 제공하고, 효과적으로 리마케팅 전략을 구현할 수 있습니다.
웹 사이트가 쿠키를 수집하고 동의를 받는 이유
웹 사이트가 쿠키를 수집하는 주된 이유는 고객의 정보를 활용한 사용자 경험 개선과 맞춤형 콘텐츠 제공 그리고 광고 또는 마케팅을 하기 위해서 이며 동의를 받는 이유는 결국 법적 요구 사항을 만족하기 위해서 입니다.
많은 국가와 지역에서 웹사이트가 쿠키를 수집할 때 사용자에게 명시적으로 동의를 받아야 한다는 법적 규제가 존재합니다. 가장 대표적인 예는 EU의 GDPR(일반 데이터 보호 규정)과 쿠키 지침입니다. 이 규정에 따라, 웹사이트는 쿠키를 사용하기 전에 사용자에게 그 사용 목적과 수집되는 정보의 종류를 명확히 알리고, 사용자가 이를 명시적으로 동의해야만 쿠키를 수집할 수 있습니다. 이 외에도 CCPA(캘리포니아 소비자 개인정보 보호법)와 같은 다른 지역의 법률도 유사한 요구 사항을 포함하고 있습니다.
쿠키 수집에 따른 개인정보 위험성
사이트에서 요구하는 무분별한 쿠키 동의에 따라 발생할 수 있는 가장 큰 문제는 쿠키가 수집되는 과정에서 개인정보가 수집 될 수 있다는 점이며 이에 따라 아래와 같이 여러가지 위험을 초래 할 수 있습니다.
1)개인정보 노출 위험
쿠키는 사용자의 웹사이트 방문 기록, 로그인 정보, 장바구니 상태, 검색 이력 등 다양한 개인 데이터를 수집합니다. 이러한 데이터는 사용자가 웹사이트를 방문할 때마다 자동으로 저장되고, 일부 쿠키는 사용자의 행동을 지속적으로 추적합니다. 만약 쿠키에 저장된 데이터가 충분히 민감하거나 악의적인 공격자에게 노출되면, 개인정보 유출의 위험이 발생할 수 있습니다. 예를 들어, 세션 쿠키가 탈취되면 사용자의 로그인 정보나 결제 정보가 도난당할 수 있습니다
2)추적 및 개인정보 침해
특히 3차 쿠키는 사용자의 행동을 여러 웹사이트에서 추적하여 광고 타겟팅에 활용됩니다. 사용자는 자신이 방문한 웹사이트의 모든 쿠키를 제어할 수 없으므로, 3차 쿠키가 개인정보를 무단으로 추적하는 결과를 초래할 수 있습니다. 광고 네트워크나 외부 서비스 제공자가 사용자의 웹 활동을 추적하며, 이를 기반으로 맞춤형 광고를 제공하는 과정에서 프라이버시 침해가 발생할 수 있습니다.
3)과도한 데이터 수집과 관리 문제
웹사이트가 쿠키를 통해 수집하는 데이터의 양이 많아질수록, 해당 데이터의 보관과 관리가 복잡해집니다. 만약 웹사이트가 수집한 데이터를 적절하게 보호하지 않거나 잘못 관리한다면, 데이터 유출이나 불법적 접근으로 인한 위험이 커집니다. 또한, 사용자가 원하지 않는 방식으로 데이터를 수집하거나 사용자가 동의하지 않은 쿠키가 활성화되면 법적 책임을 질 수 있습니다.
4)불투명한 데이터 사용
쿠키 동의를 받는 과정에서 웹사이트가 실제로 사용자에게 얼마나 명확하고 투명하게 정보를 제공하는지가 중요한 문제입니다. 종종 쿠키 수집에 대한 동의는 사용자가 이해하기 어려운 복잡한 약관으로 되어 있어, 사용자가 실질적으로 어떤 데이터를 제공하는지, 그리고 그 데이터가 어떻게 사용될지를 정확히 알지 못하는 경우가 많습니다. 이러한 불투명성은 사용자의 신뢰를 손상시키고, 법적 문제를 야기할 수 있습니다.
결론
오늘은 이렇게 쿠키란 무엇인지 어떤 기능을 하는지에 대해 자세히 알아보았습니다. 많은 웹사이트에서는 사용자 경험을 개선하는데 유용하게 사용하기 위해 쿠키를 수집한다고 말하지만 그 과정에서 개인정보가 들어갈 수 있기 때문에 항상 조심해야하는 것 같습니다. 물론 쿠키를 수집하는 웹사이트가 사용자에게 쿠키 동의를 요청할 때 명확하고 투명하게 사용 목적과 수집하는 종류를 고지해야 하겠지만 사용자도 자신의 개인정보가 어떻게 처리될지에 대한 충분한 정보와 관심을 갖고 선택해야하지 않을까 싶습니다.
따라서 다음 포스팅에서는 이러한 중요한 정보를 담고 있는 쿠키를 어떻게 관리하는지에 대해 자세히 알아보겠습니다.