๐ก ๋ก์ปฌ์คํ ๋ฆฌ์ง(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 ์ ๋์ ์ฉ๋์ ์ ๊ณตํฉ๋๋ค.
์ฃผ์์ฌํญ
๋ก์ปฌ์คํ ๋ฆฌ์ง๋ ๋ธ๋ผ์ฐ์ ๋ด์ ๋ฐ์ดํฐ๋ฅผ ์๊ตฌ์ ์ผ๋ก ์ ์ฅํ๋ ๋ฐ ๋งค์ฐ ์ ์ฉํ ๋๊ตฌ์ ๋๋ค.
๊ฒ์ํ๊ณผ ๊ฐ์ ์น ์ ํ๋ฆฌ์ผ์ด์ ์์๋ ์ฌ์ฉ์์ ์ค์ , ๊ธ์ ์์ ์ ์ฅ ๋ฑ์ ์ํด ๋ก์ปฌ์คํ ๋ฆฌ์ง๋ฅผ ํจ๊ณผ์ ์ผ๋ก ํ์ฉํ ์ ์์ต๋๋ค. ๋ค๋ง, ๋ณด์์ด ์ค์ํ ๋ฐ์ดํฐ๋ ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ์ ์ฅํ์ง ๋ง์์ผ ํ๋ฉฐ, ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ ๋ฐ๋์ ์๋ฒ์ ์์ ํ๊ฒ ์ ์ฅํ๋๋ก ํด์ผ ํฉ๋๋ค.