본문 바로가기
  • David is trying his best.
웹 개발

로컬 스토리지 (Local Storage) | Web Storage API

by myDav 2024. 7. 6.

로컬 스토리지는 Web Storage API 가 제공하는 두 개의 저장소(sessionStorage, localStorage) 중 하나로, 사용자의 로컬 컴퓨터에 데이터를 저장할 수 있게 해주는 기능이다. 로컬 스토리지는 클라이언트 측 저장소 중 하나이며, 브라우저 탭을 닫거나 컴퓨터를 재부팅해도 데이터가 사라지지 않는다는 특징이 있다.

 

 

로컬 스토리지의 주요 특징

 

1. 영구성: 브라우저를 닫더라도 데이터가 유지된다. 사용자가 명시적으로 데이터를 삭제하거나 브라우저 캐시를 지우지 않는 한 데이터는 남아 있다.

 

2. 용량: 대부분의 브라우저는 도메인 당 약 5MB 의 저장 공간을 제공한다.

 

3. 보안: 로컬 스토리지에 저장된 데이터는 동일한 도메인에서만 접근할 수 있다. 이는 보안 문제를 어느 정도 방지하지만, 민감한 정보를 저장하는 것은 권장되지 않는다.

 

4. key-value Pair: 데이터를 키-값 쌍으로 저장한다. 문자열 형식의 키와 값만 저장할 수 있고, 객체나 배열 같은 복잡한 데이터는 JSON 형식으로 변환한 후 저장할 수 있다.

 

용량 초과 오류

로컬 스토리지는 대부분의 브라우저에서 도메인 당 5MB 의 용량을 제공하지만, 이를 넘어서는 경우 'QuotaExceededError' 에러가 발생하며 더 이상 저장이 되지 않는다. 용량 초과 에러가 발생할 경우 try...catch 블럭 안에서 불필요한 데이터를 삭제하는 방법으로 핸들링 할 수 있으며, 용량 초과가 빈번할 정도로 데이터가 크다면 IndexedDB 와 같은 다른 대체 저장 방법을 고려하여 사용할 것이다.

 

QuotaExceededError

 

 

기본  사용  방법

// 데이터 저장
localStorage.setItem('key', 'value');

// 데이터 읽기
const value = localStorage.getItem('key');

// 데이터 삭제
localStorage.removeItem('key');

// 모든 데이터 삭제
localStorage.clear();

 


References

 

Web Storage API, MDN. - https://developer.mozilla.org/en-US/docs/Web/API/Web_Storage_API


Storage quotas and eviction criteria, MDN. - https://developer.mozilla.org/en-US/docs/Web/API/Storage_API/Storage_quotas_and_eviction_criteria

 

 

 

'웹 개발' 카테고리의 다른 글

Polyfill  (1) 2024.10.01
번들러와 기능  (0) 2024.09.20
캐싱 전략 - Cache-Control  (0) 2024.05.29
Design System - 개발자, 디자이너, 기획자의 입장에서  (0) 2024.05.26
SPA vs MPA  (1) 2024.05.20