๐Ÿค  Web Storage

@winuss ยท April 11, 2021 ยท 2 min read

Web Storage

Web Storage๋Š” HTML5์—์„œ ์ถ”๊ฐ€๋œ ๊ฐ„๋‹จํ•œ ํ‚ค์™€ ๊ฐ’์„ ์ €์žฅ(key-value storage) ํ•  ์ˆ˜ ์žˆ๋Š” ์ €์žฅ์†Œ์ด๋‹ค. ๋ฐ์ดํ„ฐ์˜ ์ง€์†์„ฑ์— ๋”ฐ๋ผ ์˜๊ตฌ์ €์žฅ์†Œ(LocalStorage)์™€ ์ž„์‹œ์ €์žฅ์†Œ(SessionStorage) ๋‘๊ฐ€์ง€๋ฅผ ์ง€์›ํ•œ๋‹ค. ๊ทธ ๋™์•ˆ ๋งŽ์ด ์‚ฌ์šฉํ•ด ์™”๋˜ ์ฟ ํ‚ค์™€ ๊ฑฐ์˜ ์ฐจ์ด๊ฐ€ ์—†์–ด ๋ณด์ด์ง€๋งŒ ๋ช‡ ๊ฐ€์ง€ ์ฟ ํ‚ค์˜ ๋‹จ์ ์„ ๊ทน๋ณตํ•˜๋Š” ๊ฐœ์„ ์ ์ด ๋„์ž…์ด ๋˜์—ˆ๋‹ค.

Web Storage ํŠน์ง•

Web Storage๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์ด ์žˆ๋‹ค.

  • ํ‚ค์™€ ๊ฐ’์€ ๋ฌด์กฐ๊ฑด ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋˜์–ด ์ €์žฅ๋œ๋‹ค. (๊ฐ์ฒด๋ฅผ ์ฝ๊ณ  ์“ฐ๋ ค๋ฉด JSON.stringify, JSON.parse๋ฅผ ์‚ฌ์šฉ)
  • ๋ธŒ๋ผ์šฐ์ €๋ณ„ ์šฉ๋Ÿ‰์ œํ•œ์ด ๋‹ค๋ฅด๋‹ค. (์šฉ๋Ÿ‰ ์ œํ•œ์€ ๋Œ€๋žต 5MB)
  • ๋„๋ฉ”์ธ๋ณ„ Storage๋Š” ๋‹ค๋ฅด๋ฉฐ ๋„๋ฉ”์ธ๋ณ„๋กœ ์šฉ๋Ÿ‰ ์ œํ•œ์ด ์žˆ๋‹ค. (Protocal, host, port๊ฐ€ ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ๊ณต์œ )
  • ์ด๊ฒƒ ๋งˆ์ € ์šฉ๋Ÿ‰์ด ๋ถ€์กฑํ•˜๋‹ค๋ฉด indexedDB๊ฐ€ ์žˆ๋‹ค.

(indexedDB์— ๋Œ€ํ•ด์„œ๋Š” ๋‹ค์Œ์— ์ข€๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ณ ,,)

localStorage์™€ sessionStorage

Web Storage๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง€์†์„ฑ์— ๋”ฐ๋ผ ๋‘ ๊ฐ€์ง€ ์šฉ๋„์˜ ์ €์žฅ์†Œ๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

LocalStorage

์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์šฐ์ง€ ์•Š๋Š” ์ด์ƒ ์˜๊ตฌ์ ์œผ๋กœ ๋ณด๊ด€์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์•ž์„œ ๋งํ•œ ๊ฒƒ์ฒ˜๋Ÿผ ๋„๋ฉ”์ธ๋ณ„๋กœ ์Šคํ† ๋ฆฌ์ง€๊ฐ€ ์ƒ์„ฑ์ด ๋˜๊ณ  Windows ์ „์—ญ ๊ฐ์ฒด์˜ LocalStorage๋ผ๋Š” ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ์ €์žฅ๊ณผ ์กฐํšŒ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

SessionStorage

SessionStorage๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์†์ ์œผ๋กœ ๋ณด๊ด€์ด ๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ๋งˆ์น˜ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์„ธ์…˜ ์ฟ ํ‚ค์™€ ๊ทธ ์„ฑ์งˆ์ด ๋น„์Šทํ•œ๋ฐ, ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ๋ธŒ๋ผ์šฐ์ง•๋˜๊ณ  ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ € ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋œ๋‹ค. ์‰ฝ๊ฒŒ ๋งํ•˜์ž๋ฉด, ํƒญ ๋ธŒ๋ผ์šฐ์ง•์ด๋‚˜ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ํ•˜๋‚˜ ๋” ์‹คํ–‰ํ•ด์„œ ๊ฐ™์€ ํŽ˜์ด์ง€๋ฅผ ์‹คํ–‰ํ–ˆ์„ ๋•Œ, ์ด ๋‘ ํŽ˜์ด์ง€์˜ SessionStorage๋Š” ๊ฐ๊ฐ ๋ณ„๊ฐœ์˜ ์˜์—ญ์œผ๋กœ ์„œ๋กœ ์นจ๋ฒ”ํ•˜์ง€ ๋ชปํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. ์ด๋Š” ๋„๋ฉ”์ธ๋งŒ ๊ฐ™์œผ๋ฉด ์ „์—ญ์ ์œผ๋กœ ๊ณต์œ  ๊ฐ€๋Šฅํ•œ LocalStorage์™€ ๊ตฌ๋ถ„ ๋˜๋Š” ๊ฐ€์žฅ ํฐ ํŠน์ง•์ด๋‹ค.

Cookie

  • ํ›„์† ์š”์ฒญ์œผ๋กœ ์„œ๋ฒ„๋กœ ๋‹ค์‹œ ๋ณด๋‚ด์•ผํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•œ๋‹ค. ๋งŒ๋ฃŒ๋Š” ์œ ํ˜•์— ๋”ฐ๋ผ ๋‹ค๋ฅด๋ฉฐ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์€ ์„œ๋ฒ„ ์ธก ๋˜๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก (์ผ๋ฐ˜์ ์œผ๋กœ ์„œ๋ฒ„ ์ธก)์—์„œ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ์ฃผ๋กœ ์„œ๋ฒ„ ์ธก์—์„œ ์ฝ๊ธฐ(ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ์ฝ์„ ์ˆ˜๋„ ์žˆ์Œ) ์œ„ํ•œ ๊ฒƒ์ด๋ฉฐ, Local Storage ๋ฐ Session Storage๋Š” ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ๋งŒ ์ฝ์„ ์ˆ˜ ์žˆ๋‹ค.
  • ํฌ๊ธฐ๋Š” 4KB๋ณด๋‹ค ์ž‘์•„์•ผ ํ•œ๋‹ค.
  • ํ•ด๋‹น ์ฟ ํ‚ค์— ๋Œ€ํ•ด httpOnly ํ”Œ๋ž˜๊ทธ๋ฅผ true๋กœ ์„ค์ •ํ•˜์—ฌ ์ฟ ํ‚ค๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. ์ด๋ ‡๊ฒŒํ•˜๋ฉด ์ฟ ํ‚ค์— ๋Œ€ํ•œ ํด๋ผ์ด์–ธํŠธ ์ธก ์•ก์„ธ์Šค๊ฐ€ ์ฐจ๋‹จ๋œ๋‹ค.

๊ฐ ์ €์žฅ์†Œ๋ณ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ €์žฅ๋˜๊ณ  ์žˆ๋Š”์ง€๋ฅผ ๋ณด๊ณ  ์‹ถ๋‹ค๋ฉด ๋””๋ฒ„๊น…๋ชจ๋“œ(F12) > Application์—์„œ ํ™•์ธ ํ•  ์ˆ˜ ์žˆ๋‹ค.

01
01

๋งˆ์น˜๋ฉฐ...

WebStorage์˜ ๋ณด์•ˆ์€ ์„œ๋กœ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ๋ฐ์ดํ„ฐ ์นจ๋ฒ”์„ ๋ง‰๊ณ ๋Š” ์žˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ, ์ฆ‰ ์‚ฌ์šฉ์ž๋ฅผ ๋ง‰๊ณ  ์žˆ์ง€๋Š” ์•Š๋‹ค. ํด๋ผ์ด์–ธํŠธ๋Š” ์–ผ๋งˆ๋“ ์ง€ ์ €์žฅ๋œ ๊ฐ’์„ ์ž„์˜๋กœ ์ˆ˜์ •์ด ๊ฐ€๋Šฅํ•˜๋‹ค. ์ด๊ฒƒ์€ ์ฟ ํ‚ค์™€ ๋™์ผํ•œ ๊ฐœ๋…์ด๋‹ค. ๊ทธ๋ ‡๋‹ค๊ณ  ์ฟ ํ‚ค์— ๋น„ํ•ด ๋ณ„๋‹ค๋ฅธ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ๋” ๊ฐ€์ง„ ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐœ๋ฐœ์ž๋Š” ์‚ฌ์šฉ์ž์— ์˜ํ•œ ์ด๋Ÿฌํ•œ ์ž„์˜ ๋ณ€๊ฒฝ์— ํ•ญ์ƒ ์˜ˆ์˜ ์ฃผ์‹œํ•˜๊ณ  ๋ฐฉ์–ด ์ฝ”๋“œ์˜ ์ž‘์„ฑ์„ ์žŠ์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค.

@winuss
Hello :) Developer notes!