
웹 애플리케이션에서 클라이언트 측 데이터 저장은 필수적인 기능입니다. 이 글에서는 브라우저에서 제공하는 세 가지 주요 저장 방식인 localStorage, sessionStorage, Cookie에 대해 자세히 알아보겠습니다.
브라우저 저장소 API는 웹 애플리케이션이 클라이언트 측에 데이터를 저장할 수 있게 해주는 웹 스토리지 솔루션입니다. 주요 특징은 다음과 같습니다:
쿠키는 웹사이트가 사용자의 브라우저에 저장하는 작은 텍스트 파일입니다. 주로 서버와 클라이언트 간의 상태를 유지하는 데 사용됩니다.
// 쿠키 설정
document.cookie = "username=홍길동; expires=Fri, 31 Dec 2024 23:59:59 GMT; path=/";
// 쿠키 읽기
function getCookie(name) {
const value = `; ${document.cookie}`;
const parts = value.split(`; ${name}=`);
if (parts.length === 2) return parts.pop().split(';').shift();
}
// 쿠키 삭제
function deleteCookie(name) {
document.cookie = name + '=; expires=Thu, 01 Jan 1970 00:00:00 GMT; path=/';
}
// 보안 쿠키 설정
document.cookie = "sessionId=abc123; Secure; HttpOnly; SameSite=Strict";
| 브라우저 | 용량 제한 | 비고 |
|---|---|---|
| Chrome | 10MB | 도메인당 |
| Firefox | 10MB | 도메인당 |
| Safari | 5MB | 도메인당 |
| Edge | 10MB | 도메인당 |
| Opera | 10MB | 도메인당 |
| IE | 10MB | 도메인당 |
| 브라우저 | 용량 제한 | 비고 |
|---|---|---|
| Chrome | 4KB | 쿠키당 |
| Firefox | 4KB | 쿠키당 |
| Safari | 4KB | 쿠키당 |
| Edge | 4KB | 쿠키당 |
| Opera | 4KB | 쿠키당 |
| IE | 4KB | 쿠키당 |
참고사항
- localStorage와 sessionStorage는 도메인당 제한이 적용됩니다.
- 쿠키는 개별 쿠키당 4KB로 제한되며, 도메인당 총 쿠키 수에도 제한이 있습니다.
- 모바일 브라우저의 경우 저장 용량이 더 제한적일 수 있습니다.
- 저장 용량 초과 시
QuotaExceededError예외가 발생합니다.
| 저장소 | 지속성 |
|---|---|
| localStorage | 영구 보관 |
| sessionStorage | 세션 종료 시 삭제 |
| Cookie | 만료 기간 설정 가능 |
| 저장소 | 접근성 |
|---|---|
| localStorage | 클라이언트 측 JavaScript |
| sessionStorage | 클라이언트 측 JavaScript |
| Cookie | 클라이언트/서버 모두 접근 가능 |
| 저장소 | HTTP 요청 시 전송 |
|---|---|
| localStorage | ❌ |
| sessionStorage | ❌ |
| Cookie | ✅ |
HttpOnly 옵션
Secure 옵션
SameSite 옵션
민감한 데이터 저장 금지
데이터 암호화
// 데이터 저장 시 암호화
const encryptData = (data) => {
return btoa(JSON.stringify(data));
};
// 데이터 조회 시 복호화
const decryptData = (encryptedData) => {
return JSON.parse(atob(encryptedData));
};
XSS 공격 방지
각 저장소는 고유한 특징과 사용 사례가 있습니다:
Cookie 선택 시기
localStorage 선택 시기
sessionStorage 선택 시기
보안을 고려하여 각 저장소의 특성을 잘 이해하고, 적절한 용도에 맞게 사용하는 것이 중요합니다.