Programing/javascript

브라우저 저장소 정리: localStorage vs sessionStorage vs cookie

2025. 4. 24. 08:26
반응형

웹 애플리케이션은 사용자 상태를 유지하거나 설정 값을 저장하기 위해 클라이언트 측 저장소를 활용합니다. 대표적인 저장소로는 localStorage, sessionStorage, 그리고 cookie가 있으며, 각각의 특성과 용도에 따라 적절히 사용해야 성능과 보안 측면에서 이점을 얻을 수 있습니다.


✅ 저장소 간 비교 요약

구분 localStorage sessionStorage cookie
저장 위치 브라우저 브라우저 브라우저 + 요청 시 서버 전송
만료 시점 수동 삭제 시까지 영구 저장 탭(세션) 종료 시 삭제 설정된 만료 시간 또는 세션 종료
용량 제한 약 5MB 약 5MB 약 4KB
서버 전송 여부 ❌ 전송 안됨 ❌ 전송 안됨 ✅ 매 요청마다 함께 전송
접근 방식 JavaScript JavaScript JavaScript + HTTP
보안 수준 중 (암호화 직접 구현 필요) 중 낮음 (XSS/CSRF에 취약)

📦 localStorage 예제

// 저장
localStorage.setItem("user", "Alice");

// 읽기
const name = localStorage.getItem("user");
console.log(name); // "Alice"

// 삭제
localStorage.removeItem("user");
  • 브라우저를 닫아도 유지되므로, 장기 저장에 적합합니다.
  • 로그인 상태 유지, 다크모드 설정 등에 유용

📦 sessionStorage 예제

// 저장
sessionStorage.setItem("step", "1");

// 읽기
const step = sessionStorage.getItem("step");
console.log(step); // "1"
  • 브라우저 탭이 닫히면 삭제되므로, 임시 정보 저장에 유용합니다.
  • 회원가입 단계 진행 정보, 임시 폼 데이터 등에 적합

📦 cookie 예제

// 생성 (JavaScript)
document.cookie = "token=abc123; path=/; max-age=3600";

// 읽기
console.log(document.cookie); // "token=abc123"
  • HTTP 요청 시 자동으로 서버로 전송되기 때문에 인증 정보나 트래킹에 사용됩니다.
  • 용량이 작고 보안에 취약하므로, 민감 정보는 반드시 암호화 필요

🔐 보안 주의사항

  • 민감한 정보는 저장하지 않거나 반드시 암호화 처리할 것
  • cookie는 XSS/CSRF에 특히 주의해야 하며, HttpOnly, Secure, SameSite 설정 권장

✨ 결론

  • 장기 설정 저장: localStorage
  • 임시 상태 저장: sessionStorage
  • 서버와 함께 관리해야 하는 정보: cookie

각 저장소의 특성과 만료 조건, 보안 고려 사항을 잘 이해하고 적절히 활용하면 사용자 경험을 높이고 애플리케이션의 신뢰성도 향상시킬 수 있습니다.

반응형

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

fetch로 REST API 호출하기: 기본 사용법, 응답 처리, 에러 처리까지  (0) 2025.04.29
자바스크립트 Date 객체 소개, 예제, 그리고 심화 활용법  (1) 2025.04.24
moment.js 소개, 사용법, 그리고 심화 이해  (0) 2025.04.24
자바스크립트 날짜 다루기: Date vs dayjs vs date-fns  (0) 2025.04.24
자바스크립트 이벤트 위임(Event Delegation)과 성능 최적화  (0) 2025.04.24
자바스크립트 debounce와 throttle 차이 및 성능 최적화 예제  (0) 2025.04.24
자바스크립트 IIFE 패턴(즉시 실행 함수 표현식)의 쓰임새와 모던 대안  (0) 2025.04.24
자바스크립트 클로저(Closure)의 개념과 실전 활용 예제  (0) 2025.04.24
'Programing/javascript' 카테고리의 다른 글
  • moment.js 소개, 사용법, 그리고 심화 이해
  • 자바스크립트 날짜 다루기: Date vs dayjs vs date-fns
  • 자바스크립트 이벤트 위임(Event Delegation)과 성능 최적화
  • 자바스크립트 debounce와 throttle 차이 및 성능 최적화 예제
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)
  • 인기 글

  • 최근 댓글

  • 태그

    IT블로그
    Java
    블로그
    js패턴
    iT's MY LiFE
    사고 싶은 책
    자바스크립트
    JavaScript
    SQL
    IT 관련
    기초
    IT·컴퓨터
    jsp
    읽고 싶은 책
    위시리스트
    php
    It
    자바스크립트유틸
    자바
    디자인패턴
Dongkkase
브라우저 저장소 정리: localStorage vs sessionStorage vs cookie
상단으로

티스토리툴바