네비게이션 바를 열어둔 채로 브라우저를 종료하거나 다른 페이지로 이동했을 때, 네비게이션 바가 동일하게 열린 형태로 나오는 스크립트를 짜야 했다. 네비게이션 바가 열려있었다는 정보를 어떻게 저장하면 좋을까 찾아보다가 선택하게 된 것이 쿠키다.
쿠키는 브라우저를 사용하는 환경에서 서버가 사용자의 웹 브라우저에 보내는 작은 데이터 조각으로, 브라우저에 쿠키를 저장했다가 나중에 요청하면 데이터를 다시 서버로 보낼 수 있다.
쿠키가 있으면 웹사이트에서 사용자의 방문에 관한 정보 등 브라우저에서의 정보를 기억하여 다음번에 사이트에 방문했을 때 번거로운 작업을 피하고 더 유용하게 사이트를 활용할 수 있다.
사용자가 방문한 웹사이트의 서버에 의해 저장되어 이용자의 온라인 행태정보에 대한 분석 데이터를 수집하고 맞춤형 설정 등을 그대로 유지하는 것을 의미한다.
사용자가 방문한 웹사이트의 운영자가 아닌 제 3자가 설치한 쿠키로, 추적 쿠키(Tracking Cookies)라고도 불린다. 제3자 쿠키는 사용자가 여러 웹사이트에서 활동한 내역을 추적하는 크로스 사이트(cross-site) 추적이 가능하다.
옵션
유효시간(Expires): 쿠키 유지 시간옵션
도메인(Domain): 쿠키를 전송할 도메인옵션
경로(Path): 쿠키를 전송할 요청 경로document.cookie = "name=value";
// 함수형
function setToggleCookie(name, value) {
document.cookie = `${name}=${value};`;
}
console.log(document.cookie); // cookie1=value1; cookie2=value2; cookie3=value3;
// value 값 얻기
function getToogleCookie(name) {
let cookieName = `${name}=`;
let result = "";
const cookieArr = document.cookie.split(";");
for (let i = 0; i < cookieArr.length; i++) {
if (cookieArr[i][0] === " ") {
cookieArr[i] = cookieArr[i].substring(1);
}
if (cookieArr[i].indexOf(cookieName) === 0) {
result = cookieArr[i].slice(cookieName.length, cookieArr[i].length);
return result; // value
}
}
return result; // ""
}
function deleteToggleCookie(key) {
setToggleCookie(key, "", {
"max-age": -1,
});
}
쿠키에 대해 공부하니 다른 데이터 저장 방식들이 많이 나왔다. 나중에는 세션, 로컬 스토리지, 세션 스토리지를 작성하여 4가지를 비교해 봐야 겠다.
출처