Web Storage 공부

초록귤·2021년 12월 21일
0

Web Storage

😎 두 개의 메커니즘의 차이점

데이터가 어떤 범위 내에서 얼마나 오래 보존되느냐에 있다.

😎 두 개의 메커니즘의 공통점

두 기술 모두 데이터를 브라우저 상에 저장한다는 것이며,JS API가 완전히 동일한 형태이다.

local

  • 스토리지에 저장된 값을 삭제하기 전까지는 브라우저에 계속 남아있다.
  • 여러 탭이나 창 간에 데이터가 서로 공유되며 탭이나 창을 닫아도 데이터는 브라우저에 그대로 남아있다.
  • 하지만 이러한 로컬 스토리지의 데이터 영속성(Persistence) 어디까지나 계속해서 동일한 컴퓨터에서 동일한 브라우저를 사용할 떄만 해당한다.
  • 즉, 같은 컴퓨터에서 다른 브라우저를 사용하거나, 또는 다른 컴퓨터에서 같은 브라우저를 사용하는 경우에는 엄연히 다른 브라우저이므로 서로 다른 두 개의 로컬 스토리지에 데이터가 저장될 것이다.

session

  • 세션 스토리지는 웹페이지의 세션이 끝날 때 저장된 데이터가 지워진다.
  • 브라우저에서 같은 웹사이트를 여러 탭이나 창에 띄우면, 여러 개의 세션 스토리지에 데이터가 서로 격리되어 저장되며, 각 탭이나 창이 닫힐 때 저장해 둔 데이터도 함께 소멸한다.

👌 다른 기기나 브라우저 간에 데이터가 공유되고 영속되야 한다면 당연히 클라우드 플랫폼이나 데이터베이스 서버를 사용해야 한다.

기본 API

  • 웹 스토리지는 기본적으로 키와 값으로 이루어진 데이터를 저장할 수 있다. 개념적으로 해시 테이블 자료 구조를 생각하면 이해가 쉽다.
  • 자바스크립트 API의 기본적인 사용 방법은 다음과 같다.
  • 세션 스토리지를 사용할 때는 예제 코드의 localStorage 부분을 sessionStorage로 대체하기만 하면 된다.
// 키에 데이터 쓰기 + 현재 도메인의 로컬 Storage 객체에 접근한 후, 항목 하나를 추가
localStorage.setItem("key".value);
// 키로부터 데이터 읽기 
localStorage.getItem("key");
// 키의 데이터 삭제
localStorage.removeItem("key");
// 모든 키의 데이터 삭제 + localStorage 항목의 전체 제거 구문
localStorage.clear();
// 저장된 키/값 쌍의 개수 
localStorage.length;

color-picker+localstorage

엄밀하게는 window.localStorage를 사용해야하지만, window 객체의 대부분의 속성이 그러하듯, 줄여서 localStorage로 로컬 스토리지 객체에 접근할 수 있다.
브라우저의 콘솔 창을 열고 다음과 같이 테스트를 해보시면 로컬 스토레지 사용 유무 확인이 가능하다.

MDN 문서 - window.localStorage

읽기 전용 속성을 사용하면 Document 출처의 Storage객체에 접근할 수 있다.
localStorag에 저장한 자료는 페이지 프로토콜별로 구분한다.
특히 HTTP로 방문한 페이지에서 저장한 데이터는 같은 페이지의 HTTPS와는 다른 localStorage에 저장된다.

키와 값은 항상 각 문자에 2바이트를 할당하는 UTF-16 DOMString의 형태로 저장한다.

MDN문서

추가 읽어볼것

profile
초록색 귤이 노랑색으로 익어가듯, 실력이 익어가기 위해 노력하는 개발자 lahee입니다. 프론트엔드 개발자를 목표로 성장하고 있습니다.

0개의 댓글