JavaScript - Cookie Attributes

안녕하세요, 미래의 웹 개발자 여러분! 오늘 우리는 쿠키의 세상으로 sweat한 여정을 떠납니다. 그러나 이说的是 초콜릿 쿠키가 아니라 (그래도 바랍니다!), 우리의 웹 경험을 더 원활하고 개인화된으로 만들어주는 디지털 쿠키입니다. 그럼 가상의 우유를 손에 들고, JavaScript 쿠키 속성의 맛있는 주제로一头潜りましょう!

JavaScript -  Cookie Attributes

Cookie Attributes

자세한 내용에 들어가기 전에, 먼저 쿠키 속성이 무엇인지 이해해 보겠습니다. 쿠키를 브라우저가 당신에 대해 저장하는 작은 메모라고 생각해 보세요. 쿠키 속성은 이 메모에 기록된 특별한 지시로, 브라우저가 어떻게 처리해야 하는지 알려줍니다. 이 것은 보안, 기능성, 그리고 사용자 경험에 매우 중요합니다.

다음은 우리가 논의할 주요 쿠키 속성에 대한 간략한 개요입니다:

속성 설명
Name/Value 쿠키의 핵심 데이터
Path 서버에서 쿠키에 접근할 수 있는 경로를 지정
Expires 쿠키의 만료 날짜를 설정
Max-Age 쿠키가 지속되어야 할 시간을 정의
Domain 쿠키를 사용할 수 있는 도메인을 결정

브라우저에서 속성 값을 확인하는 방법

쿠키를 설정하기 전에 먼저 확인하는 방법을 배워보겠습니다. 브라우저의 개발자 도구(보통 F12)를 엽니다. Application이나 Storage 탭으로 이동하여 Cookies를 찾아보세요. 쿠키통을 기어보는 것과 같습니다!

// 간단한 쿠키 설정
document.cookie = "username=John Doe";

// 콘솔에서 확인
console.log(document.cookie);

이 코드를 실행하고 콘솔을 확인하면 "username=John Doe"를 볼 수 있습니다. 쿠키 설정하고 읽는 것은 이렇게 간단합니다!

쿠키의 Name/Value 속성

이름/값 쌍은 쿠키의 핵심입니다. 키와 그에 해당하는 보물과 같습니다.

// 이름과 값으로 쿠키 설정
document.cookie = "favoriteColor=blue";

// 여러 개의 쿠키 설정
document.cookie = "favoriteAnimal=dog";
document.cookie = "favoriteNumber=42";

// 쿠키 읽기
console.log(document.cookie);

이 outputs는 모든 쿠키를 출력합니다. 기억하세요, 각 document.cookie 할당은 새로운 쿠키를 추가하며, 기존의 것을 덮어쓰지 않습니다!

쿠키의 Path 속성

Path 속성은 쿠키가 접근할 수 있는 웹사이트의 페이지를 결정합니다. 쿠키가 웹사이트의 집안에서 어느 방에 들어갈 수 있는지 말하는 것과 같습니다.

// 특정 경로에 대한 쿠키 설정
document.cookie = "user=Alice; path=/dashboard";

// 전체 사이트에 대한 쿠키 설정
document.cookie = "theme=dark; path=/";

이 예제에서 "user" 쿠키는 "/dashboard" 경로와 그 하위 경로에서만 접근할 수 있으며, "theme" 쿠키는 전체 사이트에서 사용할 수 있습니다.

쿠키의 Expires 속성

Expires 속성은 쿠키가 삭제되어야 하는 특정 날짜를 설정합니다. 우유에 만료 날짜를 붙이는 것과 같습니다!

// 7일 후 만료되는 쿠키 설정
let expirationDate = new Date();
expirationDate.setDate(expirationDate.getDate() + 7);
document.cookie = "subscription=premium; expires=" + expirationDate.toUTCString();

이 쿠키는 7일 후 자동으로 파괴됩니다. 미션 임파서블, 쿠키 스타일!

쿠키의 maxAge 속성

maxAge 속성은 쿠키가 지속되어야 할 시간을 초 단위로 설정합니다. 쿠키에 대한 다운타임 타이머와 같습니다.

// 1시간 동안 지속되는 쿠키 설정
document.cookie = "session=active; max-age=3600";

// 즉시 삭제되는 쿠키 설정
document.cookie = "tempData=123; max-age=0";

첫 번째 쿠키는 1시간 동안 지속되고, 두 번째 쿠키는 생성되자마자 사라집니다!

쿠키의 Domain 속성

도메인 속성은 쿠키를 접근할 수 있는 도메인을 지정합니다. 친구들이 비밀 레시피를 공유할 수 있는지 결정하는 것과 같습니다.

// 현재 도메인 및 모든 하위 도메인에 대한 쿠키 설정
document.cookie = "language=en; domain=.example.com";

// 정확한 도메인에 대한 쿠키 설정
document.cookie = "userId=12345; domain=shop.example.com";

첫 번째 예제에서 쿠키는 example.com 및 그 하위 도메인에서 접근할 수 있으며, 두 번째 쿠키는 shop.example.com에만 적용됩니다.

이제 모든 것을 하나의 더 복잡한 예제로 통합해 보겠습니다:

function setCookie(name, value, days, path, domain, secure) {
let expires = "";
if (days) {
let date = new Date();
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
expires = "; expires=" + date.toUTCString();
}
document.cookie = name + "=" + (value || "") + expires +
(path ? "; path=" + path : "") +
(domain ? "; domain=" + domain : "") +
(secure ? "; secure" : "");
}

// 사용법
setCookie("username", "JohnDoe", 7, "/", "example.com", true);

이 함수를 사용하면 우리가 논의한 모든 속성을 가진 쿠키를 설정할 수 있습니다. 쿠키 생성에 대한 스위스 아ーノ이刀와 같습니다!

기억하세요, 쿠키는 강력한 도구이지만, 강력한 힘에는 큰 책임이 따릅니다. 쿠키를 사용할 때는 항상 사용자의 프라이버시와 보안을 염두에 두세요.

그리고 여러분! 이제 JavaScript에서 쿠키를 다루는 데 필요한 모든 준비가 되었습니다. 다음에 웹 브라우저가 당신의 선호 사항을 기억할 때, 그 뒤에 숨겨진 sweat한 비밀이 무엇인지 알게 될 것입니다. 행복한 코딩을 하고, 항상 쿠키가 신선하고 안전하길 바랍니다!

Credits: Image by storyset