๋ณธ๋ฌธ์œผ๋กœ ๊ฑด๋„ˆ๋›ฐ๊ธฐ

[Medium] ๐Ÿ“„ cookie, sessionStorage, localStorage

๋น„๊ตโ€‹

์†์„ฑcookiesessionStoragelocalStorage
์ƒ๋ช…์ฃผ๊ธฐ๋งŒ๋ฃŒ ์‹œ๊ฐ„(Expires) ๋˜๋Š” ์ตœ๋Œ€ ๋ณด์กด ์‹œ๊ฐ„(Max-Age)์„ ์„ค์ •ํ•˜์ง€ ์•Š์œผ๋ฉด, ๊ธฐ๋ณธ์ ์œผ๋กœ ํŽ˜์ด์ง€๋ฅผ ๋‹ซ์œผ๋ฉด ์‚ญ์ œํŽ˜์ด์ง€๋ฅผ ๋‹ซ์œผ๋ฉด ์‚ญ์ œ๋ช…์‹œ์ ์œผ๋กœ ์‚ญ์ œํ•  ๋•Œ๊นŒ์ง€ ์˜๊ตฌ ๋ณด์กด
HTTP Request์˜ˆ, Cookie header๋ฅผ ํ†ตํ•ด ์„œ๋ฒ„์— ์ „์†ก ๊ฐ€๋Šฅ์•„๋‹ˆ์˜ค์•„๋‹ˆ์˜ค
์ด ์šฉ๋Ÿ‰4KB5MB5MB
์ ‘๊ทผ ๋ฒ”์œ„์œˆ๋„์šฐ/ํƒญ ๊ฐ„ ๊ณต์œ ๋™์ผ ํƒญ๋งŒ์œˆ๋„์šฐ/ํƒญ ๊ฐ„ ๊ณต์œ 
๋ณด์•ˆ์„ฑJavaScript๋Š” HttpOnly cookies์— ์ ‘๊ทผ ๋ถˆ๊ฐ€์—†์Œ์—†์Œ

์šฉ์–ด ์„ค๋ช…โ€‹

Persistent cookies๋ž€ ๋ฌด์—‡์ธ๊ฐ€?

์˜๊ตฌ cookie๋Š” ์‚ฌ์šฉ์ž ๋ธŒ๋ผ์šฐ์ €์— ๋ฐ์ดํ„ฐ๋ฅผ ์žฅ๊ธฐ๊ฐ„ ์ €์žฅํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ์œ„์—์„œ ์–ธ๊ธ‰ํ•œ ๋งŒ๋ฃŒ ์‹œ๊ฐ„์„ ์„ค์ •ํ•˜์—ฌ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค(Expires ๋˜๋Š” Max-Age).

๊ฐœ์ธ ๊ตฌํ˜„ ๊ฒฝํ—˜โ€‹

1. ๋ณด์•ˆ ๊ฒ€์ฆโ€‹

์ผ๋ถ€ ๋ ˆ๊ฑฐ์‹œ ํ”„๋กœ์ ํŠธ๋Š” ๋ณด์•ˆ ์ƒํƒœ๊ฐ€ ์ข‹์ง€ ์•Š์•„ ๊ณ„์ • ํƒˆ์ทจ ๋ฌธ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•˜์—ฌ ์šด์˜ ๋น„์šฉ์ด ํฌ๊ฒŒ ์ฆ๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋จผ์ € Fingerprint ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ(์ปค๋ฎค๋‹ˆํ‹ฐ ๋ฒ„์ „ ์ •ํ™•๋„ ์•ฝ 60%, ์œ ๋ฃŒ ๋ฒ„์ „ ์›” ๋ฌด๋ฃŒ ํ• ๋‹น๋Ÿ‰ 2๋งŒ ๊ฑด)๋ฅผ ์ฑ„ํƒํ•˜์—ฌ ๋กœ๊ทธ์ธํ•˜๋Š” ์‚ฌ์šฉ์ž๋ฅผ ๋””๋ฐ”์ด์Šค์™€ ์œ„์น˜ ์ •๋ณด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๊ณ ์œ ํ•œ visitID๋กœ ์‹๋ณ„ํ–ˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ cookie๊ฐ€ ๋งค๋ฒˆ HTTP ์š”์ฒญ ์‹œ ์ „์†ก๋˜๋Š” ํŠน์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๋ฐฑ์—”๋“œ์—์„œ ์‚ฌ์šฉ์ž์˜ ํ˜„์žฌ ์ƒํ™ฉ(๋””๋ฐ”์ด์Šค ๋ณ€๊ฒฝ ๋˜๋Š” ์œ„์น˜ ์ด์ƒ ๋ณ€๋™)์„ ํ™•์ธํ•˜๊ณ , ์ด์ƒ์ด ๊ฐ์ง€๋˜๋ฉด ๋กœ๊ทธ์ธ ๊ณผ์ •์—์„œ OTP ์ธ์ฆ(ํšŒ์‚ฌ ์š”๊ตฌ์— ๋”ฐ๋ผ ์ด๋ฉ”์ผ ๋˜๋Š” SMS)์„ ๊ฐ•์ œ๋กœ ํŠธ๋ฆฌ๊ฑฐํ–ˆ์Šต๋‹ˆ๋‹ค.

2. ํ”„๋กœ๋ชจ์…˜ ์ฝ”๋“œ URLโ€‹

์ œํ’ˆ ์›น์‚ฌ์ดํŠธ ์šด์˜ ์‹œ ์ œํœด ๋งˆ์ผ€ํŒ… ์ „๋žต์œผ๋กœ ํ˜‘๋ ฅ ํŒŒํŠธ๋„ˆ์—๊ฒŒ ์ „์šฉ URL์„ ์ œ๊ณตํ•˜์—ฌ ์œ ์ž…๊ณผ ํ™๋ณด๋ฅผ ์‰ฝ๊ฒŒ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์œ ์ž…์„ ํ†ตํ•ด ๋“ค์–ด์˜จ ๊ณ ๊ฐ์ด ํ•ด๋‹น ํ”„๋กœ๋ชจํ„ฐ์˜ ์‹ค์ ์— ์†ํ•˜๋„๋ก ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•ด cookie์˜ expires ํŠน์„ฑ์„ ํ™œ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ์‚ฌ์ดํŠธ์— ์œ ์ž…๋œ ์‹œ์ ๋ถ€ํ„ฐ 24์‹œ๊ฐ„ ์ด๋‚ด(์ œํ•œ ์‹œ๊ฐ„์€ ์šด์˜ ์ธก์—์„œ ๊ฒฐ์ • ๊ฐ€๋Šฅ)์—๋Š” ํ”„๋กœ๋ชจ์…˜ ์ฝ”๋“œ๊ฐ€ ์œ ํšจํ•˜๋ฉฐ, ์‚ฌ์šฉ์ž๊ฐ€ ์˜๋„์ ์œผ๋กœ URL์˜ ํ”„๋กœ๋ชจ์…˜ ์ฝ”๋“œ ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ญ์ œํ•ด๋„ ๋“ฑ๋ก ์‹œ cookie์—์„œ ํ•ด๋‹น ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ๊ฐ€์ ธ์™€ ์ ์šฉํ•˜๊ณ , 24์‹œ๊ฐ„ ํ›„์— ์ž๋™์œผ๋กœ ๋งŒ๋ฃŒ๋ฉ๋‹ˆ๋‹ค.

localStorageโ€‹

1. ์‚ฌ์šฉ์ž ํ™˜๊ฒฝ ์„ค์ • ์ €์žฅโ€‹

  • ์‚ฌ์šฉ์ž์˜ ๊ฐœ์ธ ํ™˜๊ฒฝ ์„ค์ • ์ €์žฅ์— ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ: ๋‹คํฌ ๋ชจ๋“œ, i18n ์–ธ์–ด ์„ค์ • ๋“ฑ.
  • ๋˜๋Š” ๋กœ๊ทธ์ธ token ์ €์žฅ.