๐ ๋ธ๋ผ์ฐ์ ์ ์ฅ์๋ก 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
'๐Technical interview(Front)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Get๊ณผ Post์ ์ฐจ์ด (0) | 2022.12.16 |
---|---|
[JS]์ด๋ฒคํธ ๋ฒ๋ธ๋ง๊ณผ ์บก์ฒ๋ง(Bubbling & Capturing) (0) | 2022.11.27 |
Promise (0) | 2022.11.16 |
[JavaScript] ์ค์ฝํ ์ฒด์ธ์ด๋? (0) | 2022.11.09 |
[JavaScript] Scope๋? (0) | 2022.11.05 |