Programing/javascript

자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸

2025. 5. 1. 12:59
반응형

이번 19편에서는 웹 애플리케이션에서 클라이언트 측 데이터를 저장하는 데 사용되는 localStorage와 sessionStorage를 보다 안전하고 효율적으로 다룰 수 있는 유틸 함수들을 정리합니다.


✅ 1. setStorage (데이터 저장)

📌 localStorage 또는 sessionStorage에 문자열 또는 객체 저장

function setStorage(type, key, value) {
  const storage = type === 'session' ? sessionStorage : localStorage;
  const data = typeof value === 'object' ? JSON.stringify(value) : value;
  storage.setItem(key, data);
}

📌 활용 예시

(예: 사용자 설정값을 로컬에 저장)

setStorage('local', 'theme', { darkMode: true });

✅ 2. getStorage (데이터 불러오기)

📌 저장된 값을 파싱하여 반환

function getStorage(type, key) {
  const storage = type === 'session' ? sessionStorage : localStorage;
  const data = storage.getItem(key);
  try {
    return JSON.parse(data);
  } catch {
    return data;
  }
}

📌 활용 예시

(예: 테마 설정 불러오기)

const theme = getStorage('local', 'theme');

✅ 3. removeStorage (데이터 삭제)

📌 해당 키의 항목 삭제

function removeStorage(type, key) {
  const storage = type === 'session' ? sessionStorage : localStorage;
  storage.removeItem(key);
}

📌 활용 예시

(예: 로그아웃 시 사용자 정보 삭제)

removeStorage('local', 'userToken');

✅ 4. clearStorage (전체 초기화)

📌 저장소 전체 비우기

function clearStorage(type) {
  const storage = type === 'session' ? sessionStorage : localStorage;
  storage.clear();
}

📌 활용 예시

(예: 관리자 모드에서 전체 캐시 삭제)

clearStorage('local');

✅ 5. hasStorageKey (해당 키 존재 여부 확인)

📌 특정 키 존재 여부 체크

function hasStorageKey(type, key) {
  const storage = type === 'session' ? sessionStorage : localStorage;
  return storage.getItem(key) !== null;
}

📌 활용 예시

(예: 저장된 사용자 인증 토큰 확인)

if (hasStorageKey('local', 'userToken')) {
  redirectToDashboard();
}

✅ 결론

브라우저 저장소는 사용자 경험을 개선하고 상태 유지를 가능하게 하는 중요한 수단입니다. 위에서 소개한 유틸 함수들은 localStorage와 sessionStorage를 안정적으로 다루는 데 실질적인 도움을 줄 수 있습니다.

반응형

'Programing > javascript' 카테고리의 다른 글

자바스크립트 실무 유틸 함수 시리즈 23 - 브라우저 환경 감지 및 대응 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 22 - URL 및 쿼리 파라미터 처리 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 18 - 스크롤 관련 유틸  (1) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 17 - 이벤트 제어를 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 16 - HTML 요소 조작을 위한 유틸  (0) 2025.05.01
자바스크립트 실무 유틸 함수 시리즈 15 - 폼 입력 검증을 위한 유틸  (1) 2025.05.01
'Programing/javascript' 카테고리의 다른 글
  • 자바스크립트 실무 유틸 함수 시리즈 21 - 정규 표현식을 활용한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 20 - 배열 비교 및 동기화를 위한 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 18 - 스크롤 관련 유틸
  • 자바스크립트 실무 유틸 함수 시리즈 17 - 이벤트 제어를 위한 유틸
Dongkkase
Dongkkase
개발자로 일하면서 부딪히는 문제풀이가 누군가에게 도움이 되길 바라며
    반응형
  • Dongkkase
    정집사의 개발로그
    Dongkkase
  • 전체
    오늘
    어제
    • All (478)
      • 금융 (61)
      • Programing (295)
        • Algorithm (39)
        • API (2)
        • javascript (122)
        • CSS (8)
        • HTML (10)
        • PHP (15)
        • JAVA (27)
        • JSP (17)
        • JSP 예제 (1)
        • IOS (1)
        • Android (1)
        • Sencha Touche (1)
        • bat file, cmd (0)
        • 디버깅 (2)
        • SQL (21)
        • MS-SQL (1)
        • MySQL (13)
        • 보안 (5)
      • Server (14)
        • Docker (1)
        • Windows (9)
        • Linux (3)
        • jeus (1)
      • Database (6)
      • IT 일반 (15)
      • 리뷰 (38)
        • Book (17)
        • 제품 (2)
        • 영화 소개 (11)
        • 음악 소개 (7)
      • 잡생각 (36)
        • 회고 (3)
        • 컬럼 (4)
        • 자료실 (6)
        • 낙서장 (12)
        • 위시리스트 (2)
        • WOW (1)
        • 덕 (1)
  • 인기 글

  • 최근 댓글

  • 태그

    jsp
    iT's MY LiFE
    It
    자바스크립트
    디자인패턴
    SQL
    IT 관련
    Java
    위시리스트
    php
    기초
    사고 싶은 책
    js패턴
    블로그
    읽고 싶은 책
    JavaScript
    IT블로그
    자바
    IT·컴퓨터
    자바스크립트유틸
Dongkkase
자바스크립트 실무 유틸 함수 시리즈 19 - 로컬 스토리지 / 세션 스토리지를 위한 유틸
상단으로

티스토리툴바