예전에는 데이터를 클라이언트 사이드에서 저장할 수 있는 방법은 cookie를 사용하는 것이었다. 하지만 cookie의 서버 부하와 용량 제한 등을 보완한 Web Storage가 HTML5에서 추가되었다. (🤔 아마 UX에 대한 중요성이 높아지며만들어진 것이이 아닐까생각해 본다.))
공통점 : 사이트의 도메인 단위로 접근이 제한, 클라이언트 사이드 데이터
Cookie
Web Storage(localStorage, sessionStorage)
localStorage
sessionStorage
// 데이터 저장
localStorage.setItem("key", value);
// 데이터 읽기
localStorage.getItem("key");
// 데이터 삭제
localStorage.removeItem("key");
// 모든 데이터 삭제
localStorage.clear();
// 저장된 데이터 항목의 수를 반환
localStorage.length;
// 주어진 숫자 n에 대하여 저장소의 n번째 항목 키를 반환
localStorage.key(n)
window.addEventListener('storage', () => {});
Properties
사용 이유: Web Storage는 문자열 데이터만 취급하기 때문
데이터 저장할때
localStorage.setItem('key', JSON.stringify({value}));
데이터 읽을때
JSON.parse(localStorage.getItem('key'))
<참고 사이트>
[자바스크립트] 웹 스토리지 (localStorage, sessionStorage)
쿠키 vs 로컬스토리지: 차이점은 무엇일까?
[Web][조금 더 자세히]cookie는 너무 구식아냐? 이제부턴 Web Storage!
[Web][조금 더 자세히]서버와 클라의 연결고리, 상태를 서버에 저장하는 http session, cookie와의 비교
[Web][조금 더 자세히]도대체 왜 이름이 쿠키인걸까?, 상태를 저장하는 http cookie