📖
로컬 스토리지(Local Storage)란?

페이지 정보

본문

로컬 스토리지는 웹 브라우저가 제공하는 클라이언트 측 저장소로, 웹 애플리케이션이 데이터를 로컬(사용자의 기기)에 저장할 수 있도록 해줍니다. 이 데이터는 사용자가 브라우저를 닫거나 PC를 재부팅하더라도 유지됩니다.

로컬 스토리지의 종류
로컬 스토리지는 브라우저에서 제공하는 Web Storage API 중 하나이며, 아래와 같은 유형이 있습니다.

1. LocalStorage
브라우저가 종료되어도 데이터가 유지됨
용량: 5MB~10MB (브라우저에 따라 다름)
문자열(String) 데이터만 저장 가능
도메인별 저장 (같은 도메인 내에서는 접근 가능)

2. SessionStorage
세션(탭 또는 창)이 종료되면 데이터도 사라짐
용량: 일반적으로 LocalStorage와 동일 (5MB~10MB)
문자열 데이터만 저장 가능
동일한 창 또는 탭에서만 접근 가능 (새 탭에서 접근 불가)

3. IndexedDB
대용량 데이터(비정형 데이터 포함) 저장 가능
비동기 API 제공 (Promise 기반)
구조화된 데이터 저장(JSON, 객체 등 가능)
트랜잭션 지원
속도가 빠르고 복잡한 쿼리 처리 가능

4. Cookies
주로 서버와의 통신을 위한 데이터 저장에 사용
크기 제한: 4KB
만료 날짜 설정 가능
HTTP 요청마다 자동 전송됨

로컬 스토리지(LocalStorage)의 장단점
✅ 장점
1. 영구적인 데이터 저장
브라우저가 종료되어도 데이터가 유지됨.

2. 빠른 속도
서버 요청 없이 클라이언트에서 데이터 접근 가능.

3. 네트워크 부하 감소
서버와의 통신 없이 데이터를 저장하고 불러올 수 있음.

4. 보안 설정 가능
HTTPS 환경에서 안전하게 사용할 수 있음.

❌ 단점
1. 용량 제한
일반적으로 5MB~10MB로 대량의 데이터를 저장하기 어려움.

2. 데이터 변조 가능성
JavaScript에서 쉽게 접근 가능하므로 민감한 정보(비밀번호, 개인 정보 등) 저장에 부적합.

3. 문자열(String) 데이터만 저장 가능
객체 저장 시 JSON.stringify() 및 JSON.parse()로 변환해야 함.

4. 도메인 제한
같은 도메인에서만 접근 가능하며, 다른 도메인에서는 접근 불가.

로컬 스토리지(LocalStorage) 사용법
1. 데이터 저장[code]localStorage.setItem("username", "JohnDoe");[/code]
2. 데이터 불러오기[code]let username = localStorage.getItem("username");
console.log(username); // JohnDoe[/code]
3. 데이터 삭제[code]localStorage.removeItem("username");[/code]
4. 전체 데이터 삭제[code]localStorage.clear();[/code]
5. 객체 저장 및 불러오기[code]let user = { name: "John", age: 30 };

// 객체를 문자열(JSON)로 변환 후 저장
localStorage.setItem("user", JSON.stringify(user));

// 데이터 불러올 때 다시 객체로 변환
let storedUser = JSON.parse(localStorage.getItem("user"));
console.log(storedUser.name); // John[/code]
로컬 스토리지의 다양한 활용 사례
1.사용자 로그인 상태 유지
사용자가 로그인하면 localStorage에 토큰을 저장하고, 페이지를 새로고침해도 로그인 상태를 유지하도록 함.

2. 다크 모드 및 테마 설정 저장
웹사이트에서 사용자가 선택한 테마를 localStorage에 저장하여 다음 방문 시 자동 적용.

3. 장바구니 데이터 저장
쇼핑몰 웹사이트에서 사용자가 장바구니에 추가한 상품 정보를 유지.

4. 설정 및 사용자 기본값 저장
사용자가 선호하는 언어, 글꼴 크기 등의 설정값을 저장하여 사이트 방문 시 자동으로 적용.

5. 폼 데이터 임시 저장
사용자가 입력 중인 폼 데이터를 저장하여 실수로 페이지를 닫아도 복구 가능.

로컬 스토리지 vs. 다른 저장 방식 비교[code]데이터 유지 LocalStorage:영구적    SessionStorage:세션 종료 시 삭제    Cookies:설정된 만료일까지 유지    IndexedDB:영구적
크기 제한 LocalStorage:5MB~10MB    SessionStorage:5MB~10MB    Cookies:4KB    IndexedDB:수백 MB 이상
보안성 LocalStorage:낮음    SessionStorage:낮음    Cookies:중간 (HttpOnly 가능)    IndexedDB:높음 (암호화 가능)
데이터 타입 LocalStorage:문자열(String)    SessionStorage:문자열(String)    Cookies:문자열(String)    IndexedDB:객체, 파일 등
속도 LocalStorage:빠름    SessionStorage:빠름    Cookies:느림 (HTTP 요청 포함)    IndexedDB:빠름
서버 전송 여부 LocalStorage:X    SessionStorage:X    Cookies:O    IndexedDB:X
사용 예시 LocalStorage:사용자 설정, 장바구니     SessionStorage:임시 데이터 저장     Cookies:로그인 유지, 세션 관리    IndexedDB:대량 데이터 저장[/code]
보안상의 주의점 및 해결 방법
1. 민감한 정보 저장 금지
사용자 암호, 카드 정보 등의 민감한 데이터를 저장하면 보안 위협이 발생할 수 있음.
대안: 세션 토큰을 사용하고, 중요한 정보는 서버에서 관리.

2. XSS(크로스 사이트 스크립팅) 공격 방지
악성 스크립트가 localStorage 데이터를 탈취할 가능성이 있음.
해결책: Content Security Policy(CSP) 설정 및 입력값 검증.

3.데이터 무결성 체크
localStorage 데이터는 조작이 가능하므로 무결성을 검증하는 방식이 필요.
해결책: 서버에서 데이터 검증 및 서명된 토큰 사용.

결론
로컬 스토리지는 웹 애플리케이션에서 사용자 데이터를 빠르게 저장하고 유지할 수 있는 편리한 방법입니다. 하지만 용량 제한과 보안 문제를 고려해야 하며, 적절한 저장 방식(예: IndexedDB, 쿠키, 서버 저장소 등)과 함께 사용해야 합니다.
적절한 사용 사례를 선택하여 로컬 스토리지를 활용하면, 보다 나은 사용자 경험(UX)을 제공할 수 있습니다

댓글목록

등록된 댓글이 없습니다.


🔍 검색

회사소개 개인정보처리방침 서비스이용약관
Copyright © rainbowgarden.shop All rights reserved.