Skip to content

Latest commit

ย 

History

History
77 lines (59 loc) ยท 4.79 KB

cookie,webstorage.md

File metadata and controls

77 lines (59 loc) ยท 4.79 KB

์ฟ ํ‚ค(cookie) ์™€ ์›น์Šคํ† ๋ฆฌ์ง€(Web Storage)

์ž‘์„ฑ์ž : ์ด์Šฌ๊ธฐ

1. ์ฟ ํ‚ค(Cookie)

1.1. ์ฟ ํ‚ค๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

  • HTTP์˜ ์ผ์ข…์œผ๋กœ ์‚ฌ์šฉ์ž๊ฐ€ ์–ด๋–ค ์›น์‚ฌ์ดํŠธ์— ๋ฐฉ๋ฌธํ•  ๊ฒฝ์šฐ ๊ทธ ์‚ฌ์ดํŠธ๊ฐ€ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž์˜ ์ปดํ“จํ„ฐ์— ์„ค์น˜๋˜๋Š” ์ž‘์€ ๊ธฐ๋ก ์ •๋ณด ํŒŒ์ผ

  • HTTP์ฟ ํ‚ค, ์›น ์ฟ ํ‚ค, ๋ธŒ๋ผ์šฐ์ € ์ฟ ํ‚ค๋ผ๊ณ ๋„ ๋ถˆ๋ฆผ

  • ์ธํ„ฐ๋„ท ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ™์€ ์›น์‚ฌ์ดํŠธ๋ฅผ ๋ฐฉ๋ฌธํ•  ๋•Œ๋งˆ๋‹ค ์ฝํžˆ๊ณ  ์ˆ˜์‹œ๋กœ ์ƒˆ๋กœ์šด ์ •๋ณด๋กœ ๋ฐ”๋€๋‹ค.

  • ๋Œ€๋ถ€๋ถ„์˜ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์ง€์›ํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž ๋‹จ์œ„๊ฐ€ ์•„๋‹ˆ๋ผ ๋ธŒ๋ผ์šฐ์ € ๋‹จ์œ„๋กœ ์ƒ์„ฑ๋œ๋‹ค. ๋•Œ๋ฌธ์—, ํฌ๋กฌ์—์„œ ๋ฐฉ๋ฌธํ•ด์„œ ์ƒ์„ฑ๋œ ์ฟ ํ‚ค์™€ ์‚ฌํŒŒ๋ฆฌ๋กœ ์ƒ์„ฑ๋œ ์ฟ ํ‚ค๋Š” ๋‹ค๋ฅด๋‹ค.

  • ๋ฐ์ดํ„ฐ ํ˜•ํƒœ๋Š” key, value ํ˜•ํƒœ๋กœ string๋ฌธ์ด๋ฉฐ, 4kb์ด์ƒ ์ €์žฅ์ด ๋ถˆ๊ฐ€๋Šฅํ•จ.

  • ์œ ํšจ๊ธฐ๊ฐ„์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด ํ•ด๋‹น ์„ธ์…˜(์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ์— ๋จธ๋ฌผ๊ณ  ์žˆ๋Š” ์‹œ๊ฐ„)๋™์•ˆ์—๋งŒ ์œ ํšจํ•˜๋‹ค.

  • ๋งค HTTP ์š”์ฒญ๋งˆ๋‹ค ํฌํ•จ๋˜์–ด API๋ฅผ ํ˜ธ์ถœํ•˜๋ฏ€๋กœ ์„œ๋ฒ„์— ๋ถ€๋‹ด์ด ๋  ์ˆ˜ ์žˆ๋‹ค.

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

    ์ŠคํŒŒ์ด์›จ์–ด : ์‚ฌ์šฉ์ž์˜ ๋™์˜ ์—†์ด ์„ค์น˜๋˜์–ด ์ปดํ“จํ„ฐ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•˜๊ณ  ์ „์†กํ•˜๋Š” ์•…์„ฑ ์†Œํ”„ํŠธ์›จ์–ด. ์‹ ์šฉ ์นด๋“œ์™€ ๊ฐ™์€ ๊ธˆ์œต ์ •๋ณด ๋ฐ ์ฃผ๋ฏผ๋“ฑ๋ก๋ฒˆํ˜ธ์™€ ๊ฐ™์€ ์‹ ์ƒ์ •๋ณด, ์•”ํ˜ธ๋ฅผ ๋น„๋กฏํ•œ ๊ฐ์ข… ์ •๋ณด๋ฅผ ์ˆ˜์ง‘ํ•œ๋‹ค.

1.2 ์ฟ ํ‚ค์˜ ์ข…๋ฅ˜

์ข…๋ฅ˜ ์„ค๋ช…
๊ธฐ์ˆ ์ ์ฟ ํ‚ค ๊ฒ€์ƒ‰ํ•˜๋Š” ์ฃผ์ฒด๊ฐ€ ์‚ฌ๋žŒ์ธ์ง€ ์•„๋‹ˆ๋ฉด ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์ธ์ง€ ์ด์šฉ์ž ๊ตฌ๋ถ„ ๊ธฐ๋Šฅ ์ˆ˜ํ–‰
๋ถ„์„์ฟ ํ‚ค ์–ด๋–ค ์ข…๋ฅ˜ ๊ฒ€์ƒ‰ํ•˜๋Š”์ง€, ๋งŽ์ด ๊ฒ€์ƒ‰ํ•˜๋Š”์ง€, ์‹œ๊ฐ„, ์–ธ์–ด ๋“ฑ์˜ ์ •๋ณด๋ฅผ ์ˆ˜์ง‘
๊ด‘๊ณ ์ฟ ํ‚ค ๊ฒ€์ƒ‰๋‚ด์šฉ, ๊ตญ๊ฐ€, ์–ธ์–ด์— ๋”ฐ๋ผ ๊ด‘๊ณ  ๊ฒŒ์žฌ

1.3 ์ฟ ํ‚ค์˜ ์‚ฌ์šฉ

  • ID์ •๋ณด์ €์žฅ -> ๋กœ๊ทธ์ธ ์ƒํƒœ ์œ ์ง€
  • ์ตœ๊ทผ ๊ฒ€์ƒ‰ํ•œ ์ •๋ณด ๊ด‘๊ณ  ์ถ”์ฒœ
  • ์‡ผํ•‘๋ชฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ €์žฅ ๊ธฐ๋Šฅ
  • ํ•˜๋ฃจ/7์ผ ๋“ฑ ์ผ์ • ๊ธฐ๊ฐ„ ๋‹ค์‹œ ๋ณด์ง€ ์•Š๊ธฐ

1.4 ์ฟ ํ‚ค์˜ ๊ตฌ์„ฑ ์š”์†Œ

์ฟ ํ‚ค

  • ์ด๋ฆ„(Name) : ๊ฐ๊ฐ์˜ ์ฟ ํ‚ค๋ฅผ ๊ตฌ๋ณ„ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ์ด๋ฆ„
  • ๊ฐ’(value) : ์ฟ ํ‚ค์˜ ์ด๋ฆ„๊ณผ ๊ด€๋ จ๋œ ๊ฐ’
  • ์œ ํšจ์‹œ๊ฐ„(Expires) : ์ฟ ํ‚ค์˜ ์œ ์ง€์‹œ๊ฐ„
  • ๋„๋ฉ”์ธ(Domain) : ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ๋„๋ฉ”์ธ
  • ๊ฒฝ๋กœ(Path) : ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•  ์š”์ฒญ ๊ฒฝ๋กœ

2. ์›น์Šคํ† ๋ฆฌ์ง€ (Web storage)

  • ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก ์ง€์›ํ•˜๋Š” HTML5์˜ ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์ด๋‹ค.

  • ๋•Œ๋ฌธ์— HTML5๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋ธŒ๋ผ์šฐ์ €์˜ ๊ฒฝ์šฐ์—” ์‚ฌ์šฉ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.

  • ์ฟ ํ‚ค์™€ ๊ธฐ๋Šฅ์ด ๋น„์Šทํ•˜์ง€๋งŒ ์›น ์Šคํ† ๋ฆฌ์ง€๋Š” ์•ฝ 5MB๊นŒ์ง€ ์ €์žฅ๊ณต๊ฐ„์„ ์ด์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

  • key, value ์ €์žฅ์†Œ๋กœ ์ˆœ์„œ๋Œ€๋กœ ์ €์žฅํ•˜๋ฉด ๋˜๋ฉฐ, ๊ฐ’์œผ๋กœ๋Š” ๋ฌธ์ž์—ด, ๋ธ”๋ฆฌ์–ธ, ์ˆซ์ž, null, undefined ๋“ฑ์„ ์ €์žฅํ•  ์ˆ˜ ์žˆ์œผ๋‚˜, ๋ชจ๋‘ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜๋œ๋‹ค.

  • ์‚ฌ์šฉ ๋ฉ”์„œ๋“œ

    ๋ฉ”์„œ๋“œ๋ช… ์„ค๋ช…
    setItem(key, value) key,value ๊ฐ’ ๋ณด๊ด€
    getItem(key) ํ‚ค์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐ›์•„์˜ด
    removeItem(key) ํ•ด๋‹น key, value๊ฐ’ ์‚ญ์ œ
    clear() ๋ชจ๋“  ๋ฐ์ดํ„ฐ ์‚ญ์ œ
    key(index) ์ธ๋ฑ์Šค(index)์— ํ•ด๋‹นํ•˜๋Š” ํ‚ค๋ฅผ ๋ฐ›์•„์˜ด
    length ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ์Œ(key,value)์˜ ๊ฐ’ ๊ธธ์ด๋ฅผ ๋ฐ›์•„์˜ด
    Object.keys ํ‚ค ์ „์ฒด๋ฅผ ์–ป์Œ
    • ex) localstorage.setItem(key, value); sessionstorage.getItem(key, value);

2.1 ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€

๋กœ์ปฌ์Šคํ† ๋ฆฌ์ง€

  • window.localStorage์— ์œ„์น˜ํžŒ๋‹ค.
  • ๋„๋ฉ”์ธ ๋‹จ์œ„๋กœ ์ƒ์„ฑ์ด ๋˜๋ฉฐ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—๋Š” ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ €์˜ ํƒญ์ด๋ผ๋„ ๋„๋ฉ”์ธ์ด ๊ฐ™์œผ๋ฉด ๊ฐ™์€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ์‚ฌ์šฉ์ž์˜ ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๋˜์ง€ ์•Š์œผ๋ฉฐ ์ˆ˜๋™์œผ๋กœ ์ง€์šฐ์ง€ ์•Š๋Š”ํ•œ ์˜๊ตฌ์ ์œผ๋กœ ์ €์žฅ ๋œ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ๋ฎ์–ด์“ฐ๊ธฐ, ์‚ญ์ œ ๋“ฑ ์กฐ์ž‘ ๊ฐ€๋Šฅํ•˜๋ฉฐ ๋ชจ๋ฐ”์ผ์—์„œ๋„ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฃผ๋กœ ์ž๋™๋กœ๊ทธ์ธ ๊ธฐ๋Šฅ ๊ตฌํ˜„ ์‹œ ์‚ฌ์šฉ๋จ.

2.2 ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€

์„ธ์…˜์Šคํ† ๋ฆฌ์ง€

  • window.sessionStorage์— ์œ„์น˜ํ•œ๋‹ค.
  • ํƒญ/์œˆ๋„์šฐ ๋‹จ์œ„๋กœ ์ƒ์„ฑ์ด ๋˜๋ฉฐ ๋„๋ฉ”์ธ์ด ๊ฐ™์•„๋„ ํƒญ์ด ๋‹ค๋ฅด๋ฉด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋‚˜ ํƒญ์„ ๋‹ซ์„ ์‹œ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ญ์ œ๊ฐ€ ๋˜๋ฉฐ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋ผ๋ฆฌ ์„œ๋กœ ์˜ํ–ฅ์„ ์ฃผ์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ ํ•œ๋‹ค.
  • ์ฃผ๋กœ ๋น„๋กœ๊ทธ์ธ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ ๋“ฑ์— ์‚ฌ์šฉ๋จ.