2025-01-26T02:15:33
This commit is contained in:
73
doc/13_Storage_API.md
Normal file
73
doc/13_Storage_API.md
Normal file
@@ -0,0 +1,73 @@
|
||||
# 웹 스토리지(Web Storage) API
|
||||
|
||||
localStorage와 sessionStorage는 웹 스토리지(Web Storage) API의 두 가지 주요 객체로, 브라우저에 데이터를 저장하는 데 사용됩니다.
|
||||
둘 다 키-값(key-value) 쌍으로 데이터를 저장하며, 데이터를 브라우저에 클라이언트 측에 영구적으로 저장하거나 일시적으로 저장할 수 있도록 합니다.
|
||||
|
||||
## localStorage와 sessionStorage의 공통점
|
||||
|
||||
* 키-값 기반 저장
|
||||
- 데이터를 문자열 형태로 저장.
|
||||
- 저장 시 데이터를 자동으로 문자열로 변환.
|
||||
- 숫자, 객체 등도 저장할 수 있지만 문자열로 변환하여 저장해야 합니다.
|
||||
* 동기적(Synchronous) 동작
|
||||
- 저장 및 읽기 작업은 동기적으로 처리됩니다.
|
||||
* 브라우저 한정
|
||||
- 데이터는 브라우저에 저장되며, 브라우저 간 공유되지 않습니다.
|
||||
* 인터페이스
|
||||
- setItem(key, value): 데이터를 저장.
|
||||
- getItem(key): 데이터를 읽음.
|
||||
- removeItem(key): 특정 데이터를 삭제.
|
||||
- clear(): 저장된 모든 데이터를 삭제.
|
||||
- key(index): 인덱스로 키를 가져옴.
|
||||
- length: 저장된 항목 수 반환.
|
||||
|
||||
## 차이점
|
||||
* 데이터 지속성
|
||||
- localStorage: 데이터를 영구적으로 저장하며, 브라우저를 닫아도 유지됨.
|
||||
- sessionStorage: 데이터를 일시적으로 저장하며, 브라우저 탭이나 창을 닫으면 사라짐.
|
||||
* 탭/창 간 공유
|
||||
- localStorage: 동일한 출처(origin)에서는 브라우저의 모든 탭에서 데이터 공유.
|
||||
- sessionStorage: 동일한 출처(origin)이라도 각 탭/창에서 데이터가 독립적.
|
||||
* 사용 사례
|
||||
- localStorage: 사용자 설정, 즐겨찾기, 쇼핑 카트 등의 영구 데이터 저장.
|
||||
- sessionStorage: 임시 데이터, 폼 입력값, 특정 세션 데이터 관리.
|
||||
|
||||
```javascript
|
||||
// 데이터 저장
|
||||
localStorage.setItem("username", "philosopher");
|
||||
localStorage.setItem("age", 30);
|
||||
|
||||
sessionStorage.setItem("sessionId", "abc123");
|
||||
```
|
||||
|
||||
```javascript
|
||||
// 데이터 읽기
|
||||
const username = localStorage.getItem("username");
|
||||
console.log(username); // "philosopher"
|
||||
|
||||
const sessionId = sessionStorage.getItem("sessionId");
|
||||
console.log(sessionId); // "abc123"
|
||||
```
|
||||
|
||||
```javascript
|
||||
// 데이터 삭제
|
||||
localStorage.removeItem("username");
|
||||
|
||||
sessionStorage.removeItem("sessionId");
|
||||
```
|
||||
|
||||
```javascript
|
||||
// 모든 데이터 삭제
|
||||
localStorage.clear();
|
||||
|
||||
sessionStorage.clear();
|
||||
```
|
||||
|
||||
```javascript
|
||||
// 저장된 키와 값 확인
|
||||
for (let i = 0; i < localStorage.length; i++) {
|
||||
const key = localStorage.key(i);
|
||||
const value = localStorage.getItem(key);
|
||||
console.log(`${key}: ${value}`);
|
||||
}
|
||||
```
|
||||
Reference in New Issue
Block a user