(5) Web data storage - 웹 스토리지 다루기

반응형

자바스크립트 코드를 사용해 웹 스토리지를 다루는 방법을 알아보자.

 

로컬 스토리지와 세션 스토리지는 모두 Web Storage API를 따르며, 동일한 방식으로 사용할 수 있다. 

이 API는 Storage 객체의 메서드인 getItem(), setItem(), removeItem() 등을 제공해 데이터를 쉽게 관리할 수 있다.


 

 

로컬 스토리지

HTML 파일 예시

로컬 스토리지를 테스트하기 위해 다음과 같은 HTML 파일을 사용한다.

<!DOCTYPE html>
<html lang="ko">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>웹 스토리지 테스트</title>
</head>

<body>
  웹 스토리지 테스트
</body>

</html>

 

초반에 localStorage를 확인해보면 데이터가 저장되어있지 않는 것을 확인할 수 있다.

etc-image-0

 

데이터 추가하기

localStorage.setItem(이름, 값)을 통해 데이터를 추가할 수 있다.

localStorage.setItem('language', 'korean');

 

데이터 가져오기

localStora데이터를 추가한 후, 해당 데이터를 가져오려면

localStorage.getItem(이름) 함수를 이용한다.

localStorage.getItem('language');

etc-image-1

 

데이터 저장 시 자료형 변환

로컬 스토리지에 저장되는 데이터는 모두 문자열로 저장된다.

숫자, 불린 값 또는 객체를 저장하면 문자열로 변환된다.

localStorage.setItem('size', 100);
localStorage.getItem('size'); // "100"

localStorage.setItem('darkmode', true);
localStorage.getItem('darkmode'); // "true"

etc-image-2

자료형 변환을 위해 다음과 같이 캐스팅하면 된다.

Number(localStorage.getItem('size')); // 100
Boolean(localStorage.getItem('darkmode')); // true

etc-image-3

 

객체 저장하기

객체나 배열을 저장하려면 문자열로 변환 후 저장해야한다.

이를 위해 JSON. stringify() 를 사용한다.

const preference = { language: 'korean', size: 100, darkmode: true };
localStorage.setItem('preference', JSON.stringify(preference));

저장된 값을 객체로 변환하려면 JSON.parse()를 사용한다.

JSON.parse(localStorage.getItem('preference'));

etc-image-4

 

데이터 변경하기

저장된 데이터를 변경하려면 동일한 키로 새로운 값을 설정하면 된다.

localStorage.setItem('language', 'english');

etc-image-5

 

 데이터 삭제하기

특정 데이터를 삭제하려면 removeItem() 메소드를 사용한다.

localStorage.removeItem('language');

etc-image-6

 

 데이터 삭제하기

로컬 스토리지의 모든 데이터를 삭제하려면 clear() 메소드를 사용한다.

localStorage.clear();

 

etc-image-7
clear 전
etc-image-8etc-image-9
clear 후

 

세션 스토리지

세션 스토리지는 Web Storage API를 따르기 때문에

로컬 스토리지와 동일한 방식으로 사용할 수 있다.

마찬가지로 setItem(), getItem(), removeItem(), clear() 등

로컬 스토리지랑 똑같은 함수를 사용하면 된다.

sessionStorage.setItem('language', 'korean');
sessionStorage.getItem('language');
sessionStorage.removeItem('language');
sessionStorage.clear();

 

반응형