Skip to content

๐Ÿช ์ฟ ํ‚ค์™€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ / ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ย #85

@leemember

Description

@leemember

๐Ÿช ์ฟ ํ‚ค๋ž€?

  • ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ €์žฅ๋˜๋Š” ํ‚ค์™€ ๊ฐ™์ด ๋“ค์–ด์žˆ๋Š” ์ž‘์€ ํŒŒ์ผ
  • ๋ธŒ๋ผ์šฐ์ € ์ƒํƒœ ์ •๋ณด๋ฅผ ๋กœ์ปฌ์— ์ €์žฅํ–ˆ๋‹ค๊ฐ€ ์ฐธ์กฐํ•œ๋‹ค.
  • ๋ธŒ๋ผ์šฐ์ €์— 300๊ฐœ๊นŒ์ง€ ์ฟ ํ‚ค ์ €์žฅ ๊ฐ€๋Šฅ
  • ํ•˜๋‚˜์˜ ๋„๋ฉ”์ธ๋‹น 20๊ฐœ ๊ฐ’๋งŒ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค.
  • ํ•˜๋‚˜์˜ ์ฟ ํ‚ค๊ฐ’์€ 4KB๊นŒ์ง€ ์ €์žฅ ๊ฐ€๋Šฅ
  • Response Header์— Set-Cookie ์†์„ฑ์„ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์— ์ฟ ํ‚ค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  • ์ฟ ํ‚ค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ๋”ฐ๋กœ ์š”์ฒญํ•˜์ง€ ์•Š์•„๋„ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ Request ์‹œ์— Request Header๋ฅผ ๋„ฃ์–ด์„œ ์ž๋™์œผ๋กœ ์„œ๋ฒ„์— ์ „์†กํ•œ๋‹ค.

๐Ÿช ์„ธ์…˜

  • ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ํŒŒ์ผ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๋Š” ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜์€ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์„œ๋ฒ„์—์„œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜ ID๋ฅผ ๋ถ€์—ฌํ•˜๋ฉฐ, ์›น ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•ด์„œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ๊นŒ์ง€ ์ธ์ฆ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•œ๋‹ค.
  • ์ ‘์† ์‹œ๊ฐ„์— ์ œํ•œ์„ ๋‘์–ด ์ผ์ • ์‹œ๊ฐ„ ์‘๋‹ต์ด ์—†๋‹ค๋ฉด ์ •๋ณด๊ฐ€ ์œ ์ง€๋˜์ง€ ์•Š๊ฒŒ ์„ค์ • ๊ฐ€๋Šฅ
  • ๋ฐ์ดํ„ฐ๋ฅผ ์„œ๋ฒ„์— ๋‘๊ธฐ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋ณด๋‹ค ๋ณด์•ˆ์ด ์ข‹๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋งŽ์•„์งˆ์ˆ˜๋ก ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋งŽ์ด ์ฐจ์ง€ํ•จ

์ฟ ํ‚ค VS ์„ธ์…˜

  • ๋ฐ์ดํ„ฐ ์ €์žฅ ์œ„์น˜
์ฟ ํ‚ค ์„ธ์…˜
๋ธŒ๋ผ์šฐ์ € ์„œ๋ฒ„
  • ๋ณด์•ˆ
์ฟ ํ‚ค ์„ธ์…˜
์ €์žฅ์œ„์น˜ ๋•Œ๋ฌธ์— ์ฟ ํ‚ค๋Š” ์Šค๋‹ˆํ•‘์— ๋‹นํ•  ์šฐ๋ ค๊ฐ€ ์žˆ๋‹ค. ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•ด ์„ธ์…˜ ์•„์ด๋””๋งŒ ์ €์žฅํ•˜๊ณ  ์„œ๋ฒ„์—์„œ ์ฒ˜๋ฆฌํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์„ฑ์€ ์ฟ ํ‚ค๋ณด๋‹ค ์„ธ์…˜์ด ์ข‹๋‹ค.
  • ๋ผ์ดํ”„ ์‚ฌ์ดํด
์ฟ ํ‚ค ์„ธ์…˜
๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒํ•ด๋„ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„์ด ๋‚จ์•„์žˆ์œผ๋ฉด ์กด์žฌํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ ์‹œ ๋งŒ๋ฃŒ๊ธฐ๊ฐ„ ์ƒ๊ด€์—†์ด ์ข…๋ฃŒ๋œ๋‹ค.
  • ์†๋„
์ฟ ํ‚ค ์„ธ์…˜
์ฟ ํ‚ค๊ฐ€ ์„ธ์…˜๋ณด๋‹ค ๋น ๋ฅด๋‹ค.

์›น ์Šคํ† ๋ฆฌ์ง€

  • ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋„๋ก HTML5๋ถ€ํ„ฐ ์ถ”๊ฐ€๋œ ์ €์žฅ์†Œ
  • ๊ฐ„๋‹จํ•œ Key-Value ์Šคํ† ๋ฆฌ์ง€ ํ˜•ํƒœ
  • ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์ž๋™ ์ „์†ก์˜ ์œ„ํ—˜์„ฑ์ด ์—†์Œ
  • ์˜ค๋ฆฌ์ง„(Origin)(๋„๋ฉ”์ธ,ํ”„๋กœํ† ์ฝœ,ํฌํŠธ) ๋‹จ์œ„๋กœ ์ ‘๊ทผ์ด ์ œํ•œ๋˜๋Š” ํŠน์„ฑ ๋•๋ถ„์— CSRF๋กœ ๋ถ€ํ„ฐ ์•ˆ์ „
  • ์ฟ ํ‚ค๋ณด๋‹ค ํฐ ์ €์žฅ ์šฉ๋Ÿ‰ ์ง€์›(๋ชจ๋ฐ”์ผ 2.5MB, ๋ฐ์Šคํฌํƒ‘ 5~10MB)
  • ์„œ๋ฒ„๊ฐ€ HTTP ํ—ค๋”๋ฅผ ํ†ตํ•ด ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด๋ฅผ ์กฐ์ž‘ํ•  ์ˆ˜ ์—†์Œ (์›น ์Šคํ† ๋ฆฌ์ง€ ๊ฐ์ฒด ์กฐ์ž‘์€ JavaScript ๋‚ด์—์„œ๋งŒ ์ˆ˜ํ–‰)
  • ์˜ค์ง ๋ฌธ์žํ˜•(string) ๋ฐ์ดํ„ฐ ํƒ€์ž…๋งŒ ์ง€์›
  • ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€(Local Storage)์™€ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€(Session Storage)๊ฐ€ ์žˆ์œผ๋ฉฐ, ๊ฐ™์€ Storage ๊ฐ์ฒด๋ฅผ ์ƒ์†ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฉ”์„œ๋“œ๊ฐ€ ๋™์ผ

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

  • ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ง€์šฐ์ง€ ์•Š๋Š” ์ด์ƒ, ๋ธŒ๋ผ์šฐ์ €๋‚˜ OS๋ฅผ ์ข…๋ฃŒํ•ด๋„ ๊ณ„์† ๋ธŒ๋ผ์šฐ์ €์— ๋‚จ์•„์žˆ์Œ (์˜๊ตฌ์„ฑ)
  • ๋‹จ, ๋™์ผํ•œ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ํ•ด๋‹น
  • ์ง€์†์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ(์ž๋™ ๋กœ๊ทธ์ธ ๋“ฑ)

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

  • ๋ฐ์ดํ„ฐ๊ฐ€ ์˜ค๋ฆฌ์ง„ ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ธŒ๋ผ์šฐ์ € ํƒญ์—๋„ ์ข…์†๋˜๊ธฐ ๋•Œ๋ฌธ์—, ์œˆ๋„์šฐ๋‚˜ ๋ธŒ๋ผ์šฐ์ € ํƒญ์„ ๋‹ซ์„ ๊ฒฝ์šฐ ์ œ๊ฑฐ
  • ์ผ์‹œ์ ์œผ๋กœ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ ์ €์žฅ(์ผํšŒ์„ฑ ๋กœ๊ทธ์ธ ์ •๋ณด, ์ž…๋ ฅํผ ์ €์žฅ ๋“ฑ)

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions