-
[CS study] 로컬스토리지 && 세션스토리지네트워크/CS Study 2023. 7. 13. 19:54
로컬스토리지와 세션스토리지의 개념
1. 로컬스토리지와 세션스토리지의 공통점
- 데이터를 클라이언트에 저장 할 수 있다
- JS API의 형태가 완전히 동일하다 (하나의 사용법만 익혀도 둘 다 사용이 가능하다)
2. 로컬스토리지와 세션스토리지의 차이점
- 로컬스토리지는 웹페이지를 종료하더라도 데이터가 날아가지 않는다 반면 세션스토리지는 세션이 종료하게 되면 데이터가 사라진다 (창을 닫았을 때 세션이 종료됨으로 보자)
- 로컬스토리지는 데이터를 모든 세션이 공유하는 반면 세션스토리지는 각 세션마다 데이터를 저장하고 공유하지 않는다
3. 로그인페이지를 만들 때 사용가능하겠다
- 로컬스토리지와 세션스토리지는 서버에 들어가지 않아도 되는 중요하지 않은 데이터를 저장하는데 사용이 되는데 클라이언트에 직접 저장이 되기 때문에 이러한 특성을 가지고 token을 저장하는 곳으로 사용해도 좋은 공간이다. (로컬스토리지의 특성 상 웹페이지를 종료하더라도 사라지지 않는다)
사용방법
// 키에 데이터 쓰기 localStorage.setItem("key", value); // 키로 부터 데이터 읽기 localStorage.getItem("key"); // 키의 데이터 삭제 localStorage.removeItem("key"); // 모든 키의 데이터 삭제 localStorage.clear(); // 저장된 키/값 쌍의 개수 localStorage.length;
실제 사용 모습
> localStorage.getItem('name') null > localStorage.getItem('email') null > localStorage.setItem('email', 'test@user.com') undefined > localStorage.getItem('email') "test@user.com" > localStorage.setItem('email', 'test@admin.com') undefined > localStorage.getItem('email') "test@admin.com" > localStorage.removeItem('email') undefined > localStorage.getItem('email') null
주의사항
1. 오직 문자형데이터타입만을 지원한다.
객체를 집어넣어도 "[object Object]" 형태로 저장이 되기 때문에 객체를 전달하려면 아래와 같이 해야 한다.
> localStorage.setItem('json', JSON.stringify({a: 1, b: 2})) undefined > JSON.parse(localStorage.getItem('json')) {a: 1, b: 2}
JSON형태로 데이터를 읽고 쓰는 방법이다 넣을 때엔 직렬화를 하고 꺼낼 떄에는 역직렬화 해준다.
2. 직접 청소를 해주어야 한다.
웹페이지를 닫아도 사라지는 것이 아니기 때문에 데이터가 남지 않도록 직접 없애주어야 한다.
> localStorage.length 5 > localStorage.key(0) "email" > localStorage.removeItem('obj') undefined > localStorage.length 4 > localStorage.clear() undefined > localStorage.length 0
f12누르고 Application에서 로컬스토리지에 저장된 데이터를 확인할 수 있다.
'네트워크 > CS Study' 카테고리의 다른 글
[CS study] TS vs JS (0) 2023.08.28 [CS study] TCP / UDP (0) 2023.08.21 [항해 99 CS study] CPU와 메모리 (0) 2023.07.07 [CS study] 도메인에 URL을 쓴다면? (0) 2023.06.30 [CS Study] TypeScript를 사용해야하는 이유 (0) 2023.06.27