JS

[JS] ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€(localStorage)๋ž€?

๋ฏธ๋กœ910 2024. 8. 27. 09:09
๐Ÿ’ก ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€(localStorage)์™€ ์„ธ์…˜์Šคํ† ๋ฆฌ์ง€(sessionStorage)๋Š” ๋‘˜ ๋‹ค ๋ธŒ๋ผ์šฐ์ €์˜ ์›น ์Šคํ† ๋ฆฌ์ง€(Web Storage) API์— ์†ํ•˜๋Š” ๊ธฐ๋Šฅ์œผ๋กœ, ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ ํ™˜๊ฒฝ(์ฆ‰, ๋ธŒ๋ผ์šฐ์ €)์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์ด๋“ค์€ ์ฟ ํ‚ค์™€ ๋น„์Šทํ•œ ์—ญํ• ์„ ํ•˜์ง€๋งŒ, ์šฉ๋Ÿ‰์ด ๋” ํฌ๊ณ  ์„œ๋ฒ„์™€์˜ ํ†ต์‹  ์—†์ด ํด๋ผ์ด์–ธํŠธ ์ธก์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€(localStorage) ํŠน์ง•

  • ๋ฐ์ดํ„ฐ ์ง€์†์„ฑ
    • ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๊ฑฐ๋‚˜ ์ปดํ“จํ„ฐ๋ฅผ ์žฌ๋ถ€ํŒ…ํ•ด๋„ ์‚ญ์ œ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๊ฑฐ๋‚˜ ์ฝ”๋“œ๋กœ ์ œ๊ฑฐํ•˜์ง€ ์•Š๋Š” ํ•œ, ํ•ด๋‹น ๋ฐ์ดํ„ฐ๋Š” ๋ฌด๊ธฐํ•œ์œผ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์šฉ๋Ÿ‰
    • ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์šฉ๋Ÿ‰์€ ๋ณดํ†ต ๋ธŒ๋ผ์šฐ์ €๋งˆ๋‹ค ๋‹ค๋ฅด์ง€๋งŒ, ์ผ๋ฐ˜์ ์œผ๋กœ ๋„๋ฉ”์ธ๋‹น ์•ฝ 5~10MB ์ •๋„์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ฟ ํ‚ค(์•ฝ 4KB)๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์€ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ฑ
    • ๊ฐ™์€ ๋„๋ฉ”์ธ ๋‚ด์—์„œ๋งŒ ์ ‘๊ทผ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๊ฐ™์€ ๋„๋ฉ”์ธ์— ์†ํ•œ ๋ชจ๋“  ์›น ํŽ˜์ด์ง€์—์„œ ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹จ, ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์ด๋‚˜ ์„œ๋ธŒ๋„๋ฉ”์ธ์—์„œ๋Š” ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ ํ˜•์‹
    • ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ๋ฌธ์ž์—ด(string) ํ˜•์‹์ด์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด ๋“ฑ์„ ์ €์žฅํ•  ๋•Œ๋Š” JSON.stringify()๋ฅผ ์‚ฌ์šฉํ•ด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•œ ํ›„ ์ €์žฅํ•˜๊ณ , ๋ถˆ๋Ÿฌ์˜ฌ ๋•Œ๋Š” JSON.parse()๋ฅผ ์‚ฌ์šฉํ•ด ๋‹ค์‹œ ๊ฐ์ฒด๋‚˜ ๋ฐฐ์—ด๋กœ ๋ณ€ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ๋ฒ•
    • ์ €์žฅํ•˜๊ธฐ: localStorage.setItem('key', 'value');
    • ๋ถˆ๋Ÿฌ์˜ค๊ธฐ: const value = localStorage.getItem('key');
    • ์‚ญ์ œํ•˜๊ธฐ: localStorage.removeItem('key');
    • ์ „์ฒด ์‚ญ์ œ: localStorage.clear();

 

์„ธ์…˜์Šคํ† ๋ฆฌ์ง€(sessionStorage)

์„ธ์…˜์Šคํ† ๋ฆฌ์ง€๋Š” ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ, ๋ฐ์ดํ„ฐ์˜ ์ƒ๋ช… ์ฃผ๊ธฐ๊ฐ€ ๋‹ค๋ฆ…๋‹ˆ๋‹ค.

์„ธ์…˜์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์„ ๋•Œ๊นŒ์ง€ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.
์ฆ‰, ๋ธŒ๋ผ์šฐ์ € ํƒญ์„ ๋‹ซ์œผ๋ฉด ํ•ด๋‹น ํƒญ์— ๊ด€๋ จ๋œ ์„ธ์…˜์Šคํ† ๋ฆฌ์ง€ ๋ฐ์ดํ„ฐ๋Š” ์‚ญ์ œ๋ฉ๋‹ˆ๋‹ค.
์ด๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ํ•œ ์„ธ์…˜(session) ๋™์•ˆ๋งŒ ๋ฐ์ดํ„ฐ๋ฅผ ์œ ์ง€ํ•˜๊ณ ์ž ํ•  ๋•Œ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์™€ ์œ ์‚ฌํ•˜๊ฒŒ ์„ธ์…˜์Šคํ† ๋ฆฌ์ง€๋„ ๋„๋ฉ”์ธ๋‹น ์•ฝ 5~10MB ์ •๋„์˜ ์šฉ๋Ÿ‰์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

 

์ฃผ์˜์‚ฌํ•ญ

๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด์— ๋ฐ์ดํ„ฐ๋ฅผ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅํ•˜๋Š” ๋ฐ ๋งค์šฐ ์œ ์šฉํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค.

๊ฒŒ์‹œํŒ๊ณผ ๊ฐ™์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ๋Š” ์‚ฌ์šฉ์ž์˜ ์„ค์ •, ๊ธ€์˜ ์ž„์‹œ ์ €์žฅ ๋“ฑ์„ ์œ„ํ•ด ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๋ณด์•ˆ์ด ์ค‘์š”ํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅํ•˜์ง€ ๋ง์•„์•ผ ํ•˜๋ฉฐ, ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋Š” ๋ฐ˜๋“œ์‹œ ์„œ๋ฒ„์— ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๋„๋ก ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.