일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 리액트 테스트
- React 테스트코드
- react testing library 비동기 테스트 사용법
- FlatList 무한 스크롤
- nest.js circular Dependency
- mock api 사용법
- 개발
- 리액트 테스트 코드
- Testing-library/react
- 첫코딩
- 비동기 테스트
- nest.js 순환 종속성
- TDD방식으로 리액트 테스팅
- HTML
- 프로젝트 배포하기
- jest
- react jest
- 첫 코딩
- JavaScript
- ScrollView 무한 스크롤
- React Testing Library
- nest.js 순환 참조
- CSS
- react native 무한스크롤
- javascript 테스트
- mock api를 이용한 react 테스트
- TodoList 테스트 코드
- react 테스트
- react
- nest.js forwardRef
- Today
- Total
성장을 위한 기록
JS(JavaScript) 웹 스토리지, 로컬 스토리지(local Storage) 본문
JS(JavaScript) 웹 스토리지, 로컬 스토리지(local Storage)
B_Tae 2022. 5. 18. 17:00웹 스토리지
웹 스토리지는 브라우저 상에 데이터를 저장할 수 있는 기술이다.
개발을 시작하면 DB서버나 Cloud 플랫폼에 데이터를 저정하는 경우가 많은데,
브라우저에 저장할 필요가 있나?
개인적인 생각으로 무족건 필요하다고는 볼 수 없는데, 개발 시작단계에서 가볍게 테스트하기 좋다고 생각하고있다.
그리고 모든 데이터(사소한 것까지)를 DB에 저장하는 것은 낭비라고 생각해 웹 스토리지에 저장하는 경우가 있다고 한다.
소실 될 수 있으니 중요하지 않은, 없어져도 되는 데이터만 저장하자
웹 스토리지는 2가지로 나뉠 수 있다.
- 로컬 스토리지
- 세션 스토리지
두 기술의 차이는 간단하게 저장 기간(?) 이다.
세션 스토리지의 경우 세션마다 저장을 한다고 볼 수 있다. 그래서 여러 창을 띄우면 우리는 각 페이지 마다 다른 공간에(세션 스토리지) 데이터를 저장하고, 그 창을 종료하게 되면 데이터는 사라진다.
로컬 스토리지는 브라우저에 저장하는 데이터이다. 따라서 창을 닫더라도 데이터가 유지되고 각 페이지에 데이터를 공유 할 수 있다.
당연한 얘기지만 브라우저 상에 저장하는 것이기 때문에, 브라우저가 다르면 데이터 공유는 불가능하다.
localStorage

구글 개발자 도구 > Application > Local Storage에서 로컬 스토리지 저장 내역을 확인 할 수 있다.
localStorage 사용법
데이터는 key, value로 이루어진 데이터를 저장할 수 있고, value에는 문자열만 저장이 가능하다.
localStorage.setItem('key', value); // 저장할 때 (저장할 키와 값 입렵)
localStorage.getItem('key'); // 가져올 떄 (키로 데이터 가져오기)
localStorage.removeItem('key'); // 삭제할 때 (해당 키 데이터 삭제)
localStorage.clear(); // 모든 키 데이터 삭제
배열이나 객체 문자열로 저장하는 법
앞서 value 값에는 문자열만 들어갈 수 있다고 했다.
하지만 우리는 [{},{},{},{}]이렇게 배열이나 객체 혹은 둘에 혼합 상태에서 데이터를 저장할 필요가 있을 것이다.
핵심
- JSON형태로 직렬화 하여 저장하기.
- 데이터를 받아 역직렬화 하여 사용하기.
let x = [{'name':'btae', 'age': 20}, {'name':'tom', 'age': 30}]
localStorage.setItem('user', JSON.stringify(x)); // 배열 x를 문자열로 직렬화 하여 저장
JSON.parse(localStorage.getItem('user);) // 직렬화된 데이터를 역직렬화 하여 사용
여기서 JSON.stringify(), JSON.parse()를 기억해주면 된다.
JSON.stringify()는 문자열로 변환시켜 줄 것이며, JSON.parse()는 그 문자열을 원래 배열로 바꿔줄 것이다. 단순히 문자열과 배열을 푸는게 아니라 JSON형식으로 변하게 하는 개념이라 본다.
모질라 페이지
https://developer.mozilla.org/ko/docs/Web/API/Window/localStorage
'FE (Front End) (구) > javascript' 카테고리의 다른 글
JS(JavaScript) 기본 구조 개념 [호이스팅, 스코프, TDZ, 객체 복사 ... ] (0) | 2022.05.20 |
---|---|
js(JavaScript) addEventLister() 기본 개념, 약간 심화? (0) | 2022.05.18 |
JS (JavaScript) map(), reduce() 기초 사용법 (0) | 2022.05.14 |
js chatbot 챗 봇 만들기 기초 연습 (0) | 2022.03.27 |
중급 기본 정리 (with 앙마코딩) Generator (0) | 2022.03.22 |