카테고리 없음
Local Storage , Session Storage, Cookie
샐님
2024. 10. 29. 11:29
728x90
반응형
1. Local Storage
- 특징: 브라우저에 데이터를 영구적으로 저장하며, 사용자가 브라우저를 닫거나 컴퓨터를 재부팅해도 데이터가 유지됩니다.
- 용도: 사용자 설정이나 상태와 같은 장기적인 정보 저장에 적합합니다.
- 저장 용량: 약 5MB에서 10MB 정도로, 세 가지 중 가장 큽니다.
- 접근 방식: 자바스크립트를 통해 localStorage 객체를 사용하여 접근합니다.
- 보안: 서버에 전송되지 않으며, 클라이언트 측에서만 접근 가능하므로 비교적 안전하지만, 브라우저 보안 설정에 따라 접근이 차단될 수 있습니다.
// 데이터 저장
localStorage.setItem("username", "chatgpt");
// 데이터 가져오기
const userName = localStorage.getItem("username");
// 데이터 삭제
localStorage.removeItem("username");
// 모든 데이터 삭제
localStorage.clear();
2. Session Storage
- 특징: 사용자가 현재 브라우저 탭을 유지하는 동안만 데이터를 저장합니다. 새 탭을 열거나 브라우저를 닫으면 데이터가 사라집니다.
- 용도: 일회성 데이터나 짧은 기간 동안 유지해야 하는 정보 저장에 적합합니다.
- 저장 용량: Local Storage와 비슷하지만, 보통 약 5MB로 제한됩니다.
- 접근 방식: 자바스크립트의 sessionStorage 객체를 통해 접근합니다.
- 보안: 역시 클라이언트 측에서만 접근 가능하며, 같은 브라우저 탭에서만 데이터가 유지되므로 보안 수준은 높습니다.
// 데이터 저장
sessionStorage.setItem("sessionData", "temporary data");
// 데이터 가져오기
const sessionData = sessionStorage.getItem("sessionData");
// 데이터 삭제
sessionStorage.removeItem("sessionData");
// 모든 데이터 삭제
sessionStorage.clear();
3. Cookies
- 특징: 서버와 클라이언트 간에 데이터를 주고받을 때 사용되며, 서버에 특정 데이터가 필요한 경우 데이터를 저장하고 활용할 수 있습니다.
- 용도: 사용자 인증(로그인 상태 유지), 사용자 트래킹, 웹사이트 방문 정보 저장 등에 주로 사용됩니다.
- 저장 용량: 최대 약 4KB로, 비교적 작은 데이터를 저장하기에 적합합니다.
- 설정 방식: 클라이언트나 서버 측에서 HTTP 헤더에 쿠키를 추가하거나, 자바스크립트로 document.cookie를 사용하여 설정할 수 있습니다.
- 보안: 민감한 데이터가 포함될 수 있어 보안에 유의해야 합니다. Secure, HttpOnly, SameSite 같은 속성으로 보안 설정을 강화할 수 있습니다.
// 쿠키 생성
document.cookie = "username=chatgpt; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";
// 쿠키 가져오기
const cookies = document.cookie;
// 쿠키 삭제 (만료일을 과거로 설정)
document.cookie = "username=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/";
비교 요약
특징 | Local Storage | Session Storage | Cookies |
저장 기간 | 영구적 | 브라우저 탭이 열려있는 동안만 유지 | 설정된 만료 기간까지 (없으면 세션 쿠키) |
저장 용량 | 약 5~10MB | 약 5MB | 약 4KB |
데이터 접근 | 클라이언트 측에서만 자바스크립트를 통해 접근 | 클라이언트 측에서만 자바스크립트를 통해 접근 | 서버와 클라이언트 모두 접근 가능 |
사용 목적 | 장기적인 사용자 데이터 유지 | 세션 단위의 일시적인 데이터 유지 | 서버와의 통신에서 필요한 작은 데이터 |
보안 | 서버로 전송되지 않음 | 서버로 전송되지 않음 | HTTPS 및 HttpOnly, SameSite 설정 가능 |
웹 개발 시 Local Storage와 Session Storage는 서버와의 불필요한 데이터 전송을 줄이는 데 유용하며, Cookies는 서버 측에 필요한 정보를 저장하는 데 유용합니다. 각 방식의 특성을 이해하고 상황에 맞게 선택하는 것이 중요합니다.
728x90
반응형