๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ“‹Technical interview(Front)

๋ธŒ๋ผ์šฐ์ € ์ €์žฅ์†Œ ์ฐจ์ด์  ( Localstorage, SessionStorage, Cookie )

by ๋…น์ฐจ๋ง›๊ฐœ๊ตฌ๋ฆฌ 2022. 11. 16.
๐Ÿ”” ๋ธŒ๋ผ์šฐ์ € ์ €์žฅ์†Œ๋กœ Cookie์™€ Web Storage๊ฐ€ ์žˆ๋‹ค

HTML5 ์—๋Š” ์›น์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ƒˆ๋กœ์šด ์ž๋ฃŒ๊ตฌ์กฐ์ธ

Web Storage ์ŠคํŽ™์ด ํฌํ•จ๋˜์–ด ์žˆ๋‹ค. 

( Web Storage์˜ ๊ฐœ๋…์€ ํ‚ค/๊ฐ’ ์Œ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๋Š” ํŒจํ„ด์ด๋‹ค. )

๋” ์‰ฝ๊ณ  ๊ฐ„๋‹จํ•œ ์ €์žฅ์†Œ ์ œ๊ณต์„ ์œ„ํ•ด ์ƒˆ๋กœ์šด localStorage์™€ sessionStorage API๋ฅผ ์ œ๊ณตํ•œ๋‹ค.

 

WebStorage์˜ ํŠน์ง•

 - ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ํด๋ผ์ด์–ธํŠธ์— ์กด์žฌํ•  ๋ฟ ์„œ๋ฒ„๋กœ ์ „์†ก์€ ์ด๋ฃจ์–ด์ง€์ง€ ์•Š๋Š”๋‹ค. ์ด๊ฒƒ์€ ๋„คํŠธ์›Œํฌ ํŠธ๋ž˜ํ”ฝ ๋น„์šฉ์„ ์ค„์—ฌ ์ค€๋‹ค๋Š” ์ฃผ์š”ํ•œ ์žฅ์ ์ด ๋œ๋‹ค.

 - WebStorage๋Š” ์šฉ๋Ÿ‰์˜ ์ œํ•œ์ด ์—†๋‹ค.

 - ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์˜ ์„ค์ •์ด ์—†๋‹ค. ์ฆ‰ ํ•œ๋ฒˆ ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋Š” ์˜๊ตฌ์ ์œผ๋กœ ์กด์žฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. 

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

   (์˜๊ตฌ์ €์žฅ์†Œ(LocalStorage)์™€ ์ž„์‹œ์ €์žฅ์†Œ(SessionStorage))

๋‘˜ ๋‹ค ์ €์žฅ ๊ณต๊ฐ„์œผ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ ์ด ๋‘˜์˜ ๊ฐ€์žฅ ํฐ ์ฐจ์ด์ ์ด๋ผ๋ฉด ์ €์žฅ์†Œ๋กœ์„œ์˜ ๊ธฐ๋Šฅ์€ ๋Œ€๋ถ€๋ถ„ ๋™์ผํ•˜๋ฉฐ ๋‹จ์ง€ sessionStorage์˜ ๊ฒฝ์šฐ ์„ธ์…˜์ด ์ข…๋ฃŒ๋˜๋ฉด ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋„ ํ•จ๊ป˜ ์‚ฌ๋ผ์ง„ ๋‹ค๋Š” ์ ์ด ๋‹ค๋ฅธ ์ ์ด๋‹ค.
[ localStorage ]
 - ๋กœ์ปฌ์— ๋„๋ฉ”์ธ ๋ณ„๋กœ ์ง€์†๋˜๋Š” storage
 - localStorage๋Š” ์‹œ๊ฐ„์ œํ•œ์ด ์—†๊ณ  ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๊บผ์ ธ๋„ ์ฃฝ์ง€ ์•Š๋Š”๋‹ค.
 - ๊ฐ’์„ ์ง€์šฐ๋ ค๋ฉด ์ง์ ‘ ์ง€์›Œ์ค˜์•ผํ•œ๋‹ค.

[ sessionStorage ]
 - ์„ธ์…˜์ด(ํ”„๋กœ์„ธ์Šค, ํƒญ, ๋ธŒ๋ผ์šฐ์ €) ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ์ง€์†๋˜๋Š” storage
 - ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋Š” localStorage์™€ ์“ฐ๋Š” ๋Š๋‚Œ์ด ๋น„์Šทํ•œ๋ฐ ์ปค๋‹ค๋ž€ ์ฐจ์ด์ ์ด ์žˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋ฐ”๋กœ ์†Œ๋ฉธ ํƒ€์ด๋ฐ์ด๋‹ค.
 - localStorage๋Š” ์†Œ๋ฉธํƒ€์ด๋ฐ์ด ์—†๋‹ค. ์ฆ‰ ์ง์ ‘ ์ง€์›Œ์ค˜์•ผํ•œ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ sessionStorage๋Š” ์„ธ์…˜์˜ ์ข…๋ฃŒ์‹œ ์ฃฝ์Œ์„ ๋งž์ดํ•œ๋‹ค. (๋‚œ ์„ธ์…˜์ด ๋Š๊ธฐ๋ฉด ์ฃฝ๋Š”๋‹ค)

 

LocalStorage

LocalStorage๋Š” ์ €์žฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ์ง€ ์•Š๋Š” ์ด์ƒ ์˜๊ตฌ์ ์œผ๋กœ ๋ณด๊ด€์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

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

 

 - ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ๋ฐ์ดํ„ฐ๋Š” ๋ณด๊ด€๋˜์–ด ๋‹ค์Œ๋ฒˆ ์ ‘์†์—๋„ ๊ทธ ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

LocalStorage ์ €์žฅ/์กฐํšŒ/์‚ญ์ œํ•˜๋Š” ๋ฒ•

localStorage.setItem("access_token", "user"); // ์ €์žฅ
localStorage.getItem("access_token"); // user
localStorage.removeItem("access_token");
localStorage.clear(); // ์ „์ฒด ์‚ญ์ œ

 


SessionStorage

SessionStorage๋Š” ์„ธ์…˜ ์ข…๋ฃŒ ์‹œ(๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์„ ๊ฒฝ์šฐ) ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ์‚ญ์ œ๋œ๋‹ค.

SessionStorage๋Š” windows ์ „์—ญ ๊ฐ์ฒด์˜ SessionStorage๋ผ๋Š” ์ปฌ๋ ‰์…˜์„ ํ†ตํ•ด ์ €์žฅ/์กฐํšŒ๊ฐ€ ์ด๋ฃจ์–ด์ง„๋‹ค.

 

 - ๋ฐ์ดํ„ฐ๊ฐ€ ์ง€์†์œผ๋กœ ๋ณด๊ด€๋˜์ง€ ์•Š๋Š”๋‹ค. ์ด๋Š” ๋งˆ์น˜ ๋ธŒ๋ผ์šฐ์ € ๊ธฐ๋ฐ˜ ์„ธ์…˜ ์ฟ ํ‚ค์™€ ๊ทธ ์„ฑ์งˆ์ด ๋น„์Šทํ•œ๋ฐ, ํ˜„์žฌ ํŽ˜์ด์ง€๊ฐ€ ๋ธŒ๋ผ์šฐ์ง• ๋˜๊ณ  ์žˆ๋Š” ๋ธŒ๋ผ์šฐ์ € ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ๋งŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์œ ์ง€๋œ๋‹ค.

 

๊ทธ๋Ÿฌ๋‚˜ sessionStorage์—์„œ ์˜๋ฏธํ•˜๋Š” ์„ธ์…˜์€ ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„์ธ ํƒญ๋‹จ์œ„๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
ํƒญ๋งˆ๋‹ค sessionStorage๋Š” ๋”ฐ๋กœ ๋ฐฐ์ •๋˜๋ฉฐ ์„œ๋กœ์˜ ์˜์—ญ์„ ๊ณต์œ ํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๊ฐ’์„ ์นจ๋ฒ”ํ•  ์ˆ˜ ๋„ ์—†๋‹ค.
โ€‹
๊ทธ๋ž˜์„œ sessionStorage๋Š” ๋” ๊ฐ๋ณ„ํ•˜๋‹ค.
cookie๊ฐ€ ๊ฐ€์กŒ๋˜ ๊ทผ๋ณธ์ ์ธ ๋ฌธ์ œ์ธ ๋„๋ฉ”์ธ ๊ฐ™์œผ๋ฉด ํ•ญ์ƒ ์ฟ ํ‚ค๋ฅผ ๋ณด๋‚ธ๋‹ค๋Š” ์กฐ๊ฑด์ด
sessionStorage๋ฅผ ํ†ตํ•ด ํ•ด์†Œํ•˜๋ คํ•œ ํ”์ ์ด ๋ณด์ธ๋‹ค.

SessionStorage ์ €์žฅ/์กฐํšŒ/์‚ญ์ œํ•˜๋Š” ๋ฒ•

sessionStorage.setItem("access_token", "User"); // ์ €์žฅ
sessionStorage.getItem("access_token"); // User
sessionStorage.removeItem("access_token")
sessionStorage.clear();

 


์ฟ ํ‚ค(Cookie) vs ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ๋น„๊ต

์ฟ ํ‚ค๋Š” ์„œ๋ฒ„์ธก๊ณผ ํด๋ผ์ด์–ธํŠธ์ธก ์–‘์ชฝ์—์„œ ์ฟ ํ‚ค ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” api๊ฐ€ ์กด์žฌํ•œ๋‹ค.

์ด์™€ ๋‹ฌ๋ฆฌ localStorage๋Š” ๋กœ์ปฌ ํ™˜๊ฒฝ์—์„œ๋งŒ ์ปจํŠธ๋กค๋œ๋‹ค.

 

์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ๋กœ์ปฌ(์›น)์Šคํ† ๋ฆฌ์ง€๋Š” ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ์ฒด ์ž์ฒด๋ฅผ ๋„ฃ๋Š”๊ฒƒ ์—ญ์‹œ ๊ฐ€๋Šฅํ•˜๋ฉฐ

๋ฌธ์ž์—ด์— ํฌ๊ธฐ์ œํ•œ์ด ์žˆ๋Š” cookie์— ๋น„ํ•ด์„œ ๋น„๊ต์šฐ์œ„๋ฅผ ๊ฐ€์ง„๋‹ค.

 

๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ข…๋ฃŒ๋˜๋ฉด ์ž๋™์œผ๋กœ ์‚ฌ๋ผ์ง€๋Š” ์ฟ ํ‚ค๋ฅผ ์žฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด์„œ sessionStorage๋ฅผ ๋„์ž…ํ•˜์˜€๋‹ค.

sessionStorage์˜ ์กด์žฌ๋กœ ์„ธ์…˜์ด ์œ ์ง€๋˜๋Š” ๋™์•ˆ๋งŒ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ๋‹ค.

 

โ€‹SessioniStorage๋Š” ๋ฐ์ดํ„ฐ์˜ ์ง€์†์„ฑ๊ณผ ์•ก์„ธ์Šค ๋ฒ”์œ„์— ํŠน์ˆ˜ํ•œ ์ œํ•œ์ด ์กด์žฌํ•œ๋‹ค.

๋„๋ฉ”์ธ๋งˆ๋‹ค ๋ณ„๋„๋กœ ์ƒ์„ฑ๋˜๋Š” ์ ์€ LocalStorage์™€ ๊ฐ™์ง€๋งŒ, ๊ฐ™์€ ์‚ฌ์ดํŠธ์˜ ๋„๋ฉ”์ธ์ด๋ผ๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ค๋ฅด๋ฉด ์„œ๋กœ ๋‹ค๋ฅธ ์˜์—ญ์ด ๋œ๋‹ค. ์ด๋Š” ๋ธŒ๋ผ์šฐ์ € ์ปจํ…์ŠคํŠธ๊ฐ€ ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋˜ํ•œ ์ฟ ํ‚ค๋Š” domain๋ณ„๋กœ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ถ„๋ฆฌ๋˜์ง€๋งŒ ๊ฐ™์€ ๋ธŒ๋ผ์šฐ์ €๋ผ๋ฉด ๊ฐ’์„ ๊ณต์œ ํ–ˆ๋‹ค.

sessionStorage๋Š” ๋‹ค๋ฅธ ํƒญ์ด๋ผ๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ๊ณต์œ ๋„์ง€ ์•Š๋Š”๋‹ค.

๋งŒ์•ฝ ๊ณต์œ ํ•  ๋ฐ์ดํ„ฐ๋Š” localStorage์— ๋„ฃ์œผ๋ฉด ๋˜๋ฏ€๋กœ ์„ ํƒ์˜ ํญ์ด ์ปค์กŒ๋‹ค.

โ€‹

์ฟ ํ‚ค๋Š” ์ž์‹ ์˜ ๋ณ€ํ™”๋ฅผ ๊ฐ์ง€ํ•  ๋ฐฉ๋ฒ•์ด ์—†๋‹ค.

web storage๋Š” ์ž์‹ ์˜ ๋ณ€ํ™”๋ฅผ ์ด๋ฒคํŠธ๋กœ ๊ฐ์ง€ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

๊ฒฐ๋ก 


๋ฐ์ดํ„ฐ์˜ ์ง€์†์„ฑ์— ๋”ฐ๋ผ ์„ ํƒ.

 

๐Ÿ“š์ฐธ๊ณ /์ถœ์ฒ˜


https://inpa.tistory.com/entry/JS-%F0%9F%93%9A-localStorage-sessionStorage

https://velog.io/@design0728/%EB%B8%8C%EB%9D%BC%EC%9A%B0%EC%A0%80-%EC%A0%80%EC%9E%A5%EC%86%8C-LocalStorage-SessionStorage-Cookie

 

728x90