Web

Local Storage์™€ Session Storage

presentKey 2023. 11. 7. 03:18

๐Ÿšฉ Local Storage

  • ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์•„๋„ ๊ณ„์† ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋ฆฌ์ง„(domain·port·protocol)์ด ๊ฐ™์€ ํƒญ, ์ฐฝ ์ „์ฒด์—์„œ ๊ณต์œ 
    • ํ•œ ์ฐฝ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•˜๋ฉด ๋‹ค๋ฅธ ์ฐฝ์—์„œ ๋ณ€๋™ ์‚ฌํ•ญ์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๐Ÿšฉ Session Storage

  • ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ํƒญ์„ ๋‹ซ์œผ๋ฉด ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
  • ์˜ค๋ฆฌ์ง„์ด ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ € ํƒญ, iframe์—์„œ ๊ณต์œ 
    • ํ˜„์žฌ ๋–  ์žˆ๋Š” ํƒญ ๋‚ด์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

 

๐Ÿšฉ API

๋‘ ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋Š” ๋™์ผํ•œ ๋ฉ”์„œ๋“œ์™€ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

Storage.setItem()
  • setItem(key, value): ํ‚ค-๊ฐ’ ์Œ์„ ๋ณด๊ด€ํ•ฉ๋‹ˆ๋‹ค.
  • getItem(key):  ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  • removeItem(key): ํ‚ค์™€ ํ•ด๋‹น ๊ฐ’์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
  • clear(): ๋ชจ๋“  ๊ฒƒ์„ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.

 

๐Ÿšฉ ๊ฐ์ฒด ์ €์žฅ

ํ‚ค์™€ ๊ฐ’์€ ๋ฐ˜๋“œ์‹œ ๋ฌธ์ž์—ด์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ˆซ์ž๋‚˜ ๊ฐ์ฒด ๋“ฑ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฌธ์ž์—ด๋กœ ์ž๋™ ๋ณ€ํ™˜๋ฉ๋‹ˆ๋‹ค.

localStorage.setItem('object', { name: 'John' });
localStorage.getItem('object'); // [object Object]

 

๋‹ค์Œ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ฐ์ฒด๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

localStorage.setItem('object', JSON.stringify({ name: 'John' }));
JSON.parse(localStorage.getItem('object')); // { name: 'John' }

 

๐Ÿšฉ storage ์ด๋ฒคํŠธ

Local Storage๋‚˜ Session Storage ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐฑ์‹ ๋  ๋•Œ, storage ์ด๋ฒคํŠธ๊ฐ€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ํ”„๋กœํผํ‹ฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.

  • key: ๋ณ€๊ฒฝ๋œ ๋ฐ์ดํ„ฐ์˜ ํ‚ค(.clear()๋ฅผ ํ˜ธ์ถœํ–ˆ๋‹ค๋ฉด null)
  • oldValue: ์ด์ „ ๊ฐ’(ํ‚ค๊ฐ€ ์ƒˆ๋กญ๊ฒŒ ์ถ”๊ฐ€๋˜์—ˆ๋‹ค๋ฉด null)
  • newValue: ์ƒˆ๋กœ์šด ๊ฐ’(ํ‚ค๊ฐ€ ์‚ญ์ œ๋˜์—ˆ๋‹ค๋ฉด null)
  • url: ๊ฐฑ์‹ ์ด ์ผ์–ด๋‚œ ๋ฌธ์„œ์˜ url
  • storageArea: ๊ฐฑ์‹ ์ด ์ผ์–ด๋‚œ localStorage๋‚˜ sessionStorage ๊ฐ์ฒด

 

storage ์ด๋ฒคํŠธ๋Š” ์ด๋ฒคํŠธ๋ฅผ ๋ฐœ์ƒ์‹œํ‚จ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์ œ์™ธํ•˜๊ณ  ์Šคํ† ๋ฆฌ์ง€์—์„œ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•œ window ๊ฐ์ฒด ์ „๋ถ€์—์„œ ์ผ์–ด๋‚ฉ๋‹ˆ๋‹ค.

  • ๋‘ ๊ฐœ์˜ ์ฐฝ์— ๊ฐ™์€ ์‚ฌ์ดํŠธ๋ฅผ ๋„์›Œ๋†“๊ณ  Local Storage ๋ฐ์ดํ„ฐ ๋ณ€๊ฒฝ
  • ๋‘ ์ฐฝ์—์„œ ๋ชจ๋‘ storage ์ด๋ฒคํŠธ๋ฅผ ์ˆ˜์‹ ํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ํ•œ ์ฐฝ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐฑ์‹ ํ•˜๋ฉด ๋‹ค๋ฅธ ์ฐฝ์—์„œ ํ•ด๋‹น ์‚ฌํ•ญ์ด ๋ฐ˜์˜๋˜๋Š” ๊ฒƒ์„ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
window.addEventListener('storage', function (e) {
  if (e.key === 'myData') {
    console.log('Key: ' + e.key);
    console.log('Old Value: ' + e.oldValue);
    console.log('New Value: ' + e.newValue);
    console.log('Storage Area: ' + e.storageArea);
    console.log('URL: ' + e.url);
  }
});

 

 

๐Ÿšฉ ์ฐธ๊ณ