[HTML] LocalStorage 와 SessionStorage

2025. 2. 20. 16:00·Frondend

WebStorage(웹 스토리지)란?

Web Storage(웹 스토리지) 는 브라우저에 데이터를 저장하는 방법 중 하나로, 클라이언트 측에서 데이터를 영구적 또는 일시적으로 저장할 수 있도록 합니다. 대표적으로 LocalStorage와 SessionStorage가 있으며, 기존의 쿠키(Cookie)보다 더 많은 데이터를 저장할 수 있고 보안적으로도 안전합니다.

LocalStorage

LocalStorage는 사용자가 데이터를 삭제하지 않는 한 브라우저에 영구적으로 저장됩니다. 즉, 페이지를 닫거나 브라우저를 종료해도 데이터가 유지됩니다.

// LocalStorage 데이터 저장
localStorage.setItem('username', 'JohnDoe');

// 데이터 가져오기
const user = localStorage.getItem('username');
console.log(user); // JohnDoe

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

SessionStorage

SessionStorage는 사용자가 페이지를 닫거나 브라우저를 종료하면 데이터가 자동으로 삭제됩니다. 즉, 세션이 유지되는 동안만 데이터를 저장합니다.

// SessionStorage 데이터 저장
sessionStorage.setItem('sessionData', 'Temporary Info');

// 데이터 가져오기
const sessionData = sessionStorage.getItem('sessionData');
console.log(sessionData); // Temporary Info

// 데이터 삭제
sessionStorage.removeItem('sessionData');

쿠키(Cookie)란?

쿠키는 웹 사이트가 사용자의 브라우저에 저장하는 작은 데이터 파일입니다. 주로 사용자 인증, 세션 유지, 광고 추적 등에 사용됩니다.

// 쿠키 저장 (유효기간 설정)
document.cookie = "username=JohnDoe; expires=Fri, 31 Dec 2025 23:59:59 GMT; path=/";

// 쿠키 가져오기
console.log(document.cookie);

LocalStorage, SessionStorage, 쿠키 비교

항목 LocalStorage SessionStorage Cookie(쿠키)
데이터 유지 기간 영구적 세션 종료 시 삭제 설정된 만료일에 따라 다름
저장 용량 최대 5MB 최대 5MB 약 4KB
서버 전송 전송되지 않음 전송되지 않음 매 요청마다 서버로 전송됨
보안 JavaScript에서 접근 가능 (XSS 공격 주의) JavaScript에서 접근 가능 (XSS 공격 주의) 보안 취약 (HTTPOnly 옵션 사용 가능)

결론

LocalStorage와 SessionStorage는 쿠키보다 더 많은 데이터를 저장할 수 있고, HTTP 요청 시 불필요한 데이터 전송을 방지할 수 있는 장점이 있습니다. 그러나 XSS 공격에 취약할 수 있으므로 민감한 정보는 저장하지 않는 것이 좋습니다. 쿠키는 서버와의 통신이 필요한 경우 유용하지만, 데이터 용량이 작고 보안 취약점이 존재하므로 사용 시 주의해야 합니다.

반응형

'Frondend' 카테고리의 다른 글

[Frontend] Axios Interceptor vs Transform(Request/Response)  (0) 2025.02.18
[HTML] Attribute  (0) 2025.02.18
[HTML/JavaScript] querySelector, getElementById, addEventListener  (0) 2025.02.18
[HTML] dl, dt, dd 태그  (2) 2025.02.18
[HTML/JavaScript] DOM 트리  (0) 2025.02.17
'Frondend' 카테고리의 다른 글
  • [Frontend] Axios Interceptor vs Transform(Request/Response)
  • [HTML] Attribute
  • [HTML/JavaScript] querySelector, getElementById, addEventListener
  • [HTML] dl, dt, dd 태그
JJuuuunn
JJuuuunn
  • JJuuuunn
    JJuuuunn
    JJuuuunn
  • 전체
    오늘
    어제
    • 분류 전체보기 (70)
      • Backend (7)
        • Java (7)
      • Frondend (48)
        • Vue.js (12)
        • JavaScript (21)
        • Css (1)
      • Infra (0)
      • Git (2)
      • CS (5)
        • DataBase (0)
        • Network (2)
        • OS (0)
        • Algorithm (0)
      • 리뷰 (5)
        • 강의 (1)
        • Books (4)
      • ETC (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Java
    VUE
    frontend
    Vue.js
    깊은 감시
    Network
    KDT
    자바
    API
    혼자 공부하는 컴퓨터구조+운영체제
    혼공컴운
    Watch
    렌더링
    HTML
    신세계i&c
    이벤트
    javascript
    자바스크립트
    axios
    객체
  • 최근 댓글

  • 최근 글

  • 반응형
  • hELLO· Designed By정상우.v4.10.1
JJuuuunn
[HTML] LocalStorage 와 SessionStorage
상단으로

티스토리툴바