css ์์ ๊ฐ์ ๋ฐ ๋ง์ด ์ธ ๋ฏ
์๋ฐ์์ ์ ์ผ ๋ง์ด ์ฐ๋ ๊ณณ. ์ฝ๋ ์ค์ ๋ก ์ฐ๊ณ ์์ ํ๊ธฐ ์ ์ ์คํํด๋ณด๋ ๋๋
ํต์ ์๋, ์ฑ๋ฅ ๊ฐ์ ๊ฑฐ ๋ณผ ๋!
์ด๋ค ๋ฐ์ดํฐ ํ์ผ์ด ์ด๋ ์ ์ฅ๋์ด ์๋๊ฐ?
๋ณด์ ์ทจ์ฝ
Storage : ๋ธ๋ผ์ฐ์ ์ ์ ์ฅ์
Local Storage : ๋ก์ปฌ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ ์ฌ์ฉ์๊ฐ ์ง์ฐ์ง ์๋ ์ด์ ๊ณ์ ๋ธ๋ผ์ฐ์ ์ ๋จ์ ์๋ค. ์ฆ, ๋ฐ์ดํฐ์ ์๊ตฌ์ฑ์ด ๋ณด์ฅ๋๋ค. Key-Value ํ์ด์ ๊ฐ์ฒด ํํ๋ก ๋ฐ์ดํฐ ์ ์ฅ.
Session Storage : ์ธ์ ์คํ ๋ฆฌ์ง์ ๋ฐ์ดํฐ๋ ์๋์ฐ๋ ๋ธ๋ผ์ฐ์ ํญ์ ๋ซ์ ๊ฒฝ์ฐ ์ ๊ฑฐ๋๋ค. Key-Value ํ์ด์ ๊ฐ์ฒด ํํ๋ก ๋ฐ์ดํฐ ์ ์ฅ.
Cookie : ์๊ฐ ์ ํ ์ค์ ๊ฐ๋ฅ. ์ฟ ํค๋ ํ๋ก ํธ-๋ฐฑ์๋ ํต์ ๊ณผ ๊ด๋ จ์ด ์์ >> ์ฉ๋์ด ์์ ์ ๋ฐ์ ์์. Key-Value ํ์ด์ ๋ฌธ์์ด ํํ๋ก ๋ฐ์ดํฐ ์ ์ฅ(์ธ๋ฏธ์ฝ๋ก ์ผ๋ก ๊ตฌ๋ถ). ํ ์คํธ ํ์ ์ด๋ผ ๋ฌธ์์ด๋ง ์ ์ฅ.
์ฟ ํค๋ ํด๋ผ์ด์ธํธ(์ ์์ pc) ๋ก์ปฌ์ ์ ์ฅ๋๋ ํค์ ๊ฐ์ด ๋ค์ด์๋ ๋ฐ์ดํฐ ํ์ผ
document.cookie ํ๋ฉด ํ์ฌ ์ฟ ํค ์ ๋ณด๊ฐ ๋์ด
์ฌ์ฉ์ ์ธ์ฆ์ด ์ ํจํ ์๊ฐ์ ๋ช ์ํ ์ ์์ผ๋ฉฐ, ๋ง๋ฃ ์๊ฐ์ด ์ ํด์ง๋ฉด ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋์ด๋ ์ธ์ฆ์ด ์ ์ง๋จ.
์ฟ ํค๋ ํด๋ผ์ด์ธํธ์ ์ํ ์ ๋ณด๋ฅผ ๋ก์ปฌ์ ์ ์ฅํ๋ค๊ฐ ์ฐธ์กฐํ๋ค.
์ฟ ํค ๊ตฌ์ฑ
์ด๋ฆ(Name) : ๊ฐ๊ฐ์ ์ฟ ํค๋ฅผ ๊ตฌ๋ณํ๋ ๋ฐ ์ฌ์ฉ๋๋ ์ด๋ฆ
๊ฐ(Value) : ์ฟ ํค์ ์ด๋ฆ๊ณผ ๊ด๋ จ๋ ๊ฐ
์ ํจ์๊ฐ(Expires) : ์ฟ ํค์ ์ ์ง์๊ฐ
๋๋ฉ์ธ(Domain): ์ฟ ํค๋ฅผ ์ ์กํ ๋๋ฉ์ธ
๊ฒฝ๋ก(Path): ์ฟ ํค๋ฅผ ์ ์กํ ์์ฒญ ๊ฒฝ๋ก
์ฟ ํค์ ๋์ ๋ฐฉ์
์ฟ ํค๋ ์ธ์ ์ฌ์ฉํ๋๊ฐ?
Cookie
์๋น์ค ์ง์ ์ ์ด์ง ์์ ๋ฐ์ดํฐ
์ค๋๋ง ํ๋ ์ด๋ฒคํธ ํ์
, ์๋น์ค ์ฝ๊ด์ ๋์ํ๋์ง ๋ฑ.
์๋น์ค ์ง์ ์ ์ด์ง ์์ ๋ฐ์ดํฐ
์ค๋๋ง ํ๋ ์ด๋ฒคํธ ํ์ , ์๋น์ค ์ฝ๊ด์ ๋์ํ๋์ง ๋ฑ.
์ฟ ํค๋ ๋ง๋ฃ ๊ธฐํ์ด ์๋ ํค-๊ฐ ์ ์ฅ์์ ๋๋ค.
์๋ฒ๋ ์์ฒญ ์์ฒด๋ง์ผ๋ก๋ ๊ทธ ์์ฒญ์ด ๋๊ตฌ์๊ฒ์ ์ค๋ ์ง ์ ์ ์๊ธฐ์, ์๋ต์ ๋ณด๋ผ ์ ์์. ์ด ๋ ์ฟ ํค์ ๋์ ๋ํ ์ ๋ณด๋ฅผ ๋ด์์ ์๋ฒ๋ก ๋ณด๋ด๋ฉด ์๋ฒ๋ ์ฟ ํค๋ฅผ ์ฝ์ด์ ๋ด๊ฐ ๋๊ตฐ์ง ํ์
.
์ฟ ํค๋ ์ฒ์๋ถํฐ ์๋ฒ์ ํด๋ผ์ด์ธํธ ๊ฐ์ ์ง์์ ์ธ ๋ฐ์ดํฐ ๊ตํ์ ์ํด ๋ง๋ค์ด์ก๊ธฐ ๋๋ฌธ์ ์๋ฒ๋ก ๊ณ์ ์ ์ก๋๋ค. ๊ทธ๋์ ๋ง์ฝ 4kb ์ฉ๋ ์ ํ์ ๊ฑฐ์ ๋ค ์ฑ์ด ์ฟ ํค๊ฐ ์๋ค๋ฉด, ์์ฒญ์ ํ ๋๋ง๋ค ๊ธฐ๋ณธ 4kb์ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํด์ผํจ. 4kb ์ค์๋ ์๋ฒ์ ํ์ํ์ง ์์ ๋ฐ์ดํฐ๋ค๋ ์์ -> ๋ฐ์ดํฐ ๋ญ๋น
์ํธํ ์กด์ฌ x -> ์ฌ์ฉ์ ์ ๋ณด ๋๋ ์ํ
๋งค HTTP์์ฒญ๋ง๋ค ํฌํจ๋์ด apiํธ์ถ๋ก ์๋ฒ์ ๋ถ๋ด.
๋ฐ๋ก ๊ทธ๋ฐ ๋ฐ์ดํฐ๋ค์ ์ด์ ๋ก์ปฌ ์คํ ๋ฆฌ์ง์ ์ธ์ ์คํ ๋ฆฌ์ง์ ์ ์ฅํ๋ค.
์ฟ ํค์ ๋จ์ ์ ๋ณด์ํด HTML5์์ '์น์คํ ๋ฆฌ์ง'๋ผ๋ ๊ธฐ์ ํ์
์น ์คํ ๋ฆฌ์ง (web storage)๋ ์๋ฒ๊ฐ ์๋, ํด๋ผ์ด์ธํธ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ ์ ์๋๋ก ์ง์ํ๋ HTML5์ ์๋ก์ด ๊ธฐ๋ฅ์ด๋ค.
์น์คํ ๋ฆฌ์ง๋ ๋ก์ปฌ์๋ง ์ ๋ณด๋ฅผ ์ ์ฅ, ์ฟ ํค๋ ์๋ฒ์ ๋ก์ปฌ์ ์ ๋ณด๋ฅผ ์ ์ฅ.
๊ฐ๋จํ ํค์ ๊ฐ์ ์ ์ฅํ ์ ์์ต๋๋ค. key-value storage์ ํํ
์ด ๋ ์ ์ฅ์์ ๋ฐ์ดํฐ๋ ์๋ฒ๋ก ์๋ ์ ์ก๋์ง ์์.
๋ ์คํ ๋ฆฌ์ง๋ ๋ชจ๋ window ๊ฐ์ฒด ์์ ๋ค์ด ์์. Storage๊ฐ์ฒด๋ฅผ ์์๋ฐ๊ธฐ ๋๋ฌธ์ ๋ฉ์๋๊ฐ ๊ณตํต์ ์ผ๋ก ์กด์ฌ.
๋๋ฉ์ธ ๋ณ ์ฉ๋ ์ ํ๋ ์์(ํ๋กํ ์ฝ, ํธ์คํธ, ํฌํธ๊ฐ ๊ฐ์ผ๋ฉด ๊ฐ์ ์คํ ๋ฆฌ์ง๋ฅผ ๊ณต์ )
๋ชจ๋ฐ์ผ์ 2.5mb, ๋ฐ์คํฌํ์ 5mb~10mb๋ผ๊ณ ์๊ฐํ์๋ฉด ๋จ.
์ด๊ฒ ๋ถ์กฑํ๋ค๋ฉด 50mb๋ฅผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ ์ฅํ ์ ์๋IndexedDB๋ฅผ ์.
์ฅ์ : ์ฉ๋์ด ํฌ๋ค. (์ฝ 5Mb, ๋ธ๋ผ์ฐ์ ๋ง๋ค ์ฐจ์ด ์กด์ฌ)
๋จ์ : HTML5๋ฅผ ์ง์ํ์ง ์๋ ๋ธ๋ผ์ฐ์ ์ ๊ฒฝ์ฐ ์ฌ์ฉ ๋ถ๊ฐ
์ธ์ ์ฐ๋๊ฐ?
Local Storage
์ง์์ ์ผ๋ก ํ์ํ ๋ฐ์ดํฐ(data persistant)(ex. ID ์ ์ฅ, ๋นํ์ ์นดํธ)
UI ์ ๋ณด๋ค(ex. ์์ด๋น์ค๋น, ์ค์นด์ด์ค์บ๋ ์ธ์ฒ๊ณตํญ - ๋ฒ ๋ค์น์ ๊ฒ์ํ๋ฉด ๊ทธ๋๋ก ์ ์ง)
Session Storage :
์ ๊น ๋์ ํ์ํ ์ ๋ณด
ex. ๋ณด์์ด ์ค์ํ ์ ๋ณด (ex. ์ํ ์ฌ์ดํธ), specificํ ์ ์ ์ ๋ณด, ์ธ์ด ์ ํ
๋ฐ์ดํฐ ์ ์ฅ
localStorage.setItem("key", "value")
sessionStorage.setItem("key", "value")
setcookie("key", "value", "์ง์์๊ฐ (์ด๋จ์)")
๋ฐ์ดํฐ ํธ์ถ
localStorage.getItem("key")
sessionStorage.getItem("key")
document.cookie
๊ธฐํ ๋ฉ์๋
์ธ์๋ removeItem, clear ๋ฑ๋ฑ์ ๊ณตํต ๋ฉ์๋ ์กด์ฌ
์ธ์ ์คํ ๋ฆฌ์ง๋ ์์ ๋ค๋ฅธ ๊ฑฐ ๊ฐ์ ์ด๋ฆ๋ง ๋น์ทํ ๊ฑฐ
์ธ์ ์ด๋?
์ ์ ๊ฐ ์ธ์ฆ์ ํ ๋, ์๋ฒ๋ ์ด ๊ธฐ๋ก์ ์๋ฒ์ ์ ์ฅ์ ํด์ผํฉ๋๋ค. ์ด๋ฅผ ์ธ์ ์ด๋ผ๊ณ ๋ถ๋ฆ ๋๋ค
์ธ์ ์ ์ฟ ํค๋ฅผ ๊ธฐ๋ฐํ๊ณ ์์ง๋ง, ์ฌ์ฉ์ ์ ๋ณด ํ์ผ์ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํ๋ ์ฟ ํค์ ๋ฌ๋ฆฌ ์ธ์ ์ ์๋ฒ ์ธก์์ ๊ด๋ฆฌํ๋ค.
์๋ฒ์์๋ ํด๋ผ์ด์ธํธ๋ฅผ ๊ตฌ๋ถํ๊ธฐ ์ํด ์ธ์ ID๋ฅผ ๋ถ์ฌํ๋ฉฐ ์น ๋ธ๋ผ์ฐ์ ๊ฐ ์๋ฒ์ ์ ์ํด์ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋๊น์ง ์ธ์ฆ์ํ๋ฅผ ์ ์ง
์ฌ์ฉ์์ ๋ํ ์ ๋ณด๋ฅผ ์๋ฒ์ ๋๊ธฐ ๋๋ฌธ์ ์ฟ ํค๋ณด๋ค ๋ณด์์ ์ข์ง๋ง, ์ฌ์ฉ์๊ฐ ๋ง์์ง์๋ก ์๋ฒ ๋ฉ๋ชจ๋ฆฌ๋ฅผ ๋ง์ด ์ฐจ์งํ๊ฒ ๋จ.
๋์ ์ ์๊ฐ ๋ง์ ์น ์ฌ์ดํธ์ธ ๊ฒฝ์ฐ ์๋ฒ์ ๊ณผ๋ถํ๋ฅผ ์ฃผ๊ฒ ๋๋ฏ๋ก ์ฑ๋ฅ ์ ํ์ ์์ธ์ด ๋จ.
ํด๋ผ์ด์ธํธ๊ฐ Request๋ฅผ ๋ณด๋ด๋ฉด, ํด๋น ์๋ฒ์ ์์ง์ด ํด๋ผ์ด์ธํธ์๊ฒ ์ ์ผํ ID๋ฅผ ๋ถ์ฌํ๋ ๋ฐ ์ด๊ฒ์ด ์ธ์ ID.
์ธ์ ์ ๋์ ๋ฐฉ์
โ