Cookie, Sesiion, Cache, Web Storage๐Ÿค”

โ€์„œ์ง€์˜คยท2022๋…„ 9์›” 8์ผ
1

Server Study

๋ชฉ๋ก ๋ณด๊ธฐ
8/11
post-thumbnail

1. ์ธ์ฆ(Authentication) & ์ธ๊ฐ€(Authorization)๐Ÿ‘ป

  • ์ธ์ฆ : ์ž์‹ ์„ ์ธ์ฆํ•  ์š”์†Œ๋ฅผ ํ†ตํ•ด ํŠน์ • ๊ฐœ์ฒด์˜ ์‹ ์›์„ ํ™•์ธํ•˜๋Š” ๊ณผ์ •
  • ์ธ๊ฐ€ : ํŠน์ • ๊ฐ์ฒด๊ฐ€ ํŠน์ • ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ํ˜น์€ ํŠน์ • ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ง€ ํ™•์ธํ•˜๋Š” ๊ณผ์ •

2. HTTP ํ”„๋กœํ† ์ฝœ ํŠน์ง•๐Ÿ‘พ

  1. Connectionless(๋น„์—ฐ๊ฒฐ ์ง€ํ–ฅ) : ์š”์ฒญ์— ๋งž๋Š” ์‘๋‹ต์„ ๋ณด๋‚ธ ํ›„ ์—ฐ๊ฒฐ์„ ๋Š๋Š” ์ฒ˜๋ฆฌ ๋ฐฉ์‹
  2. Statless(๋ฌด์ƒํƒœ) : ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ๊ฐ„์˜ connection์„ ๋Š์€ ํ›„์—๋Š” ์ƒํƒœ ์ •๋ณด๋ฅผ ์œ ์ง€ํ•˜์ง€ ์•Š๋Š”๋‹ค.

๐Ÿ’ก Stateful์˜ ํ•„์š”์„ฑ : HTTP์˜ Connectionless, Statless ํŠน์ง•์— ์˜ํ•ด ์ด์ „ ํ†ต์‹ ์—์„œ ์ฃผ๊ณ  ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์Œ ํ†ต์‹ ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋˜๋Š”๋ฐ ์‹ค์ œ ์„œ๋น„์Šค๋ฅผ ์‚ดํŽด๋ณด๋ฉด ์ด์ „ ๋ฐ์ดํ„ฐ๋“ค์ด ํ˜„์žฌ ํ†ต์‹ ์„ ์ฒ˜๋ฆฌํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํšŒ์›์šฉ API(ex. ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๋‚ด์—ญ ํ™•์ธ ๋“ฑ)๋ฅผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํ˜ธ์ถœ ์‹œ ๋งค๋ฒˆ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ˆ„๊ตฌ์ธ์ง€ ์ธ์ฆ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š” ๋ฒˆ๊ฑฐ๋กœ์›€์ด ์ƒ๊ธด๋‹ค. ์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค์™€ ์„ธ์…˜์ด ๋“ฑ์žฅํ•˜์˜€๋‹ค.


3. ์ฟ ํ‚ค(Cookie)๋ž€?๐Ÿช

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ์›น์‚ฌ์ดํŠธ์— ์ ‘์† ํ•  ๋•Œ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ์˜ ์ƒํƒœ ์ •๋ณด๋ฅผ ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ์ปฌ pc์— ์ €์žฅํ•˜๋Š” ๊ธฐ๋ก ์ •๋ณด ํŒŒ์ผ์„ โ€˜์ฟ ํ‚คโ€™๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.

  • ์ฟ ํ‚ค ํŠน์ง•
    • ์ด๋ฆ„, ๊ฐ’, ๋งŒ๋ฃŒ์ผ, ๊ฒฝ๋กœ ์ •๋ณด๋กœ ๊ตฌ์„ฑ๋˜์–ด์ง„๋‹ค.
    • 4KB ์ •๋„์˜ ์ €์žฅ ๊ณต๊ฐ„์„ ์ง€๋‹Œ๋‹ค
    • session cookie์™€ persistent cookie๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.
      • session cookie : ๋งŒ๋ฃŒ์ผ์ด ์—†๊ณ  ๋ธŒ๋ผ์šฐ์ €๋‚˜ ํƒญ์ด ์—ด๋ ค ์žˆ๋Š” ๋™์•ˆ์—๋งŒ ์ €์žฅ๋จ
      • persistent cookie : ๋งŒ๋ฃŒ์ผ์„ ์ง€๋‹Œ ์ฑ„ ๋””์Šคํฌ์— ์ €์žฅ๋˜์–ด ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ๋‹ซํ˜€๋„ ์œ ์ง€๋œ๋‹ค.
    • ๋งค ์š”์ฒญ ์‹œ ์„œ๋ฒ„์— ์ „๋‹ฌ ๋˜๋ฏ€๋กœ ํฌ๊ธฐ๊ฐ€ ํด ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๋ถ€๋‹ด์ด ๊ฐˆ ์ˆ˜๋„ ์žˆ๋‹ค.
    • ์œ ํšจ ๊ธฐ๊ฐ„์ด ์กด์žฌํ•œ๋‹ค.(์„œ๋ฒ„๊ฐ€ ๊ฒฐ์ •)
    • ์„ธ์…˜ ํ‚ค ๊ฐ’์„ ์ง€๋…€ ์„œ๋ฒ„๊ฐ€ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•œ๋‹ค.
    • ๋ฌธ์ž์—ด๋งŒ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค.
    • ๋„๋ฉ”์ธ์— ๊ตญํ•œ๋œ๋‹ค.
      • ์œ ํŠœ๋ธŒ๊ฐ€ ๋ณด๋‚ด์ค€ ์ฟ ํ‚ค๋Š” ์œ ํŠœ๋ธŒ์—๋งŒ ๋ณด๋‚ด์ง€๊ฒŒ ๋œ๋‹ค.
    • ์š”์ฒญ ์‹œ ์ฟ ํ‚ค์˜ ๊ฐ’์„ ๊ทธ๋Œ€๋กœ ๋ณด๋‚ด ๋ณด์•ˆ์— ์ทจ์•ฝํ•˜๋‹ค.
    • ๋ธŒ๋ผ์šฐ์ €๊ฐ„ ์ฟ ํ‚ค ์ง€์› ํ˜•ํƒœ๊ฐ€ ๋‹ฌ๋ผ ๋ธŒ๋ผ์šฐ์ € ๊ฐ„ ๊ณต์œ ๊ฐ€ ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค.
  • ์ฟ ํ‚ค ๋™์ž‘ ๊ณผ์ •
    1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ์ ‘๊ทผ
    2. ์›น ์„œ๋ฒ„๊ฐ€ ์ฟ ํ‚ค ์ƒ์„ฑ
    3. ์‘๋‹ต์„ ๋ณด๋‚ผ ๋•Œ ์ƒ์„ฑํ•œ ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ
    4. ์ฟ ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ์ปฌ pc์— ์ €์žฅํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ์ถ”ํ›„์— ๋‹ค์‹œ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌ
    5. ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๊ป๋‹ค๊ฐ€ ๋‹ค์‹œ ํ‚ค๊ณ  ๋™์ผ ์‚ฌ์ดํŠธ ์žฌ๋ฐฉ๋ฌธ ์‹œ ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ์ปฌ pc์— ์ฟ ํ‚ค๊ฐ€ ๋‚จ์•„์žˆ๋‹ค๋ฉด ์š”์ฒญ ์‹œ ์ฟ ํ‚ค๋ฅผ ํ•จ๊ป˜ ์ „๋‹ฌํ•œ๋‹ค.
  • ์˜ˆ์‹œ
    • ๋กœ๊ทธ์ธ ์ž๋™ ์™„์„ฑ
    • โ€œ์˜ค๋Š˜ ํ•˜๋ฃจ ์ด ์ฐฝ์„ ๋‹ค์‹œ ๋ณด์ง€ ์•Š๊ธฐโ€ ํŒ์—…์„ ์ฒดํฌํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์ฟ ํ‚ค ์ •๋ณด๋ฅผ ํ™•์ธํ•˜์—ฌ ํŒ์—…์„ ๋„์šฐ์ง€ ์•Š๋Š”๋‹ค.

4. ์ฟ ํ‚ค ์†์„ฑ๐Ÿช

  • Http ํ—ค๋”์— ์ฟ ํ‚ค์— ๋Œ€ํ•œ ์†์„ฑ์„ ์ง€์ •ํ•œ๋‹ค.
    • Set-Cookie : ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ฟ ํ‚ค๋ฅผ ์ €์žฅํ•˜๋ผ๊ณ  ์ง€์ •, ๋งŒ๋ฃŒ ๋‚ ์งœ๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค.
    • Cookie : ์ฟ ํ‚ค๋ฅผ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ €์žฅ, Http ์š”์ฒญ ์‹œ ์„œ๋ฒ„๋กœ ์ „๋‹ฌ
{
  Set-Cookie:
		b_cookie=butter;
    Expires=Sat, 11 Feb 2023 16:35:00;
		Domain=naver.com;
		Path=/users;
		Secure;
    HttpOnly;
  ]
}
  • Name: ์ฟ ํ‚ค ์ด๋ฆ„(b_cookie)
  • Value: ์ฟ ํ‚ค์— ์ €์žฅ๋œ ๊ฐ’(butter)
  • Expires & Max-Age : ์ฟ ํ‚ค์˜ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ์„ค์ •
    • Expires(๋‚ ์งœ์™€ ์‹œ๊ฐ„) ๋˜๋Š” Max-age(์ดˆ)๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ๋ช…์‹œํ•œ๋‹ค๋ฉด Permanent Cookie๊ฐ€ ๋˜๊ณ  ๊ทธ๋ ‡์ง€ ์•Š๋‹ค๋ฉด Session Cookie๊ฐ€ ๋œ๋‹ค.
    • expires="Wdy, DDโˆ’Monโˆ’YYYY HH:MM:SS GMTโ€
    • ๋งŒ๋ฃŒ ์‹œ๊ฐ„์€ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ธฐ์ค€์œผ๋กœ ๊ณ„์‚ฐ๋œ๋‹ค.
    • Expires์™€ MaxAge ๋ชจ๋‘ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด MaxAge๊ฐ€ ์šฐ์„  ์‹œ ๋œ๋‹ค.
  • Domain: ์ฟ ํ‚ค๊ฐ€ ์ „์†ก๋˜๋Š” ๋„๋ฉ”์ธ์„ ์ง€์ •(์Šค์ฝ”ํ”„ ์ง€์ •)
    • ์Šค์ฝ”ํ”„์— ํ˜„์žฌ ์œ„์น˜์™€ ์„œ๋ธŒ ๋„๋ฉ”์ธ ๋ชจ๋‘ ํฌํ•จ
      • news.naver.com / email.naver.com ๊ณผ ๊ฐ™์ด naver.com์˜ ์„œ๋ธŒ ๋„๋ฉ”์ธ ๋˜ํ•œ ์š”์ฒญ ์‹œ ์ฟ ํ‚ค๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•˜๋„๋ก ์ง€์ •
    • ์ง€์ •ํ•œ domain ๊ฐ’์ด ํƒ์ƒ‰ ์ค‘์ธ ๋„๋ฉ”์ธ๊ณผ ์ผ์น˜ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ €์—์„œ ๊ฑฐ๋ถ€ ํ•œ๋‹ค. โ‡’ ์ด๋ฅผ ํ†ตํ•ด ํŠน์ • ๋„๋ฉ”์ธ์—์„œ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์— ๋Œ€ํ•œ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ํ•œ๋‹ค.
  • Path : ์ฟ ํ‚ค ์Šค์ฝ”ํ”„๋ฅผ ๋„๋ฉ”์ธ ๋‚ด ํŠน์ • ๊ฒฝ๋กœ๋กœ ์ œํ•œ
    • path์— ์ง€์ •ํ•œ ๊ฐ’์„ ํฌํ•จํ•œ ํ•˜์œ„ ๊ฒฝ๋กœ๋กœ ์š”์ฒญํ•  ๋•Œ๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†ก
    • ex. /Users โ‡’ /Users๋ฅผ ํฌํ•จํ•œ ๊ฒฝ๋กœ์ผ ๋•Œ๋งŒ ์ฟ ํ‚ค ์ „์†ก
  • Secure : Https ํ”„๋กœํ† ์ฝœ์—์„œ๋งŒ ์ฟ ํ‚ค๋ฅผ ์ „์†ก
    • ์Šค๋‹ˆํ•‘์œผ๋กœ๋ถ€ํ„ฐ ์•ˆ์ „์„ฑ ์ฆ๊ฐ€
  • HttpOnly : ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์˜ Document.cookie ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ์ฟ ํ‚ค์˜ ์ ‘๊ทผ์„ ์ œํ•œ

5. ์„ธ์…˜(Session)๐Ÿค–

์ผ์ • ์‹œ๊ฐ„ ๋™์•ˆ ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ์˜ค๋Š” ์š”์ฒญ๋“ค์€ ํ•˜๋‚˜์˜ ๊ฐ™์€ ์ƒํƒœ(๋‹จ์œ„)๋ผ ๋ณด๊ณ  ๊ทธ ์ƒํƒœ๋ฅผ ์œ ์ง€ ์‹œํ‚ค๋Š” ๊ธฐ์ˆ ์„ โ€˜์„ธ์…˜โ€™์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ด๋•Œ ์ผ์ • ์‹œ๊ฐ„์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ธฐ์ค€์€ ๋ธŒ๋ผ์šฐ์ €๊ฐ€ ์›น ์„œ๋ฒ„์™€ ์—ฐ๊ฒฐ ๋˜๊ธฐ ์‹œ์ž‘ํ•œ ์ˆœ๊ฐ„๋ถ€ํ„ฐ ๋๋‚  ๋•Œ ๊นŒ์ง€ ์ด๋‹ค.(์›น ์„œ๋ฒ„์˜ ์ €์žฅ๋˜๋Š” ์ฟ ํ‚ค๋ผ๊ณ  ์ƒ๊ฐ)

  • ์„ธ์…˜ ํŠน์ง•
    • ์›น ์„œ๋ฒ„์— ์›น ์ปจํ…Œ์ด๋„ˆ์˜ ์ƒํƒœ๋ฅผ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅ
    • ์ €์žฅ ๋ฐ์ดํ„ฐ์˜ ์ œํ•œ์ด ์—†๋‹ค
    • ํด๋ผ์ด์–ธํŠธ ๋งˆ๋‹ค ๊ณ ์œ  session id๋ฅผ ๋ถ€์—ฌํ•œ๋‹ค.
    • ์Šค๋‹ˆํ•‘ ๋‹นํ•ด๋„ ์ •๋ณด๊ฐ€ ์„ธ์…˜ ID๋งŒ ํƒˆ์ทจ๋‹นํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณด์•ˆ์ด ์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹ ๋ณด๋‹จ ์ข‹์ง€๋งŒ ํ•ด์ปค๊ฐ€ ํƒˆ์ทจํ•œ ์„ธ์…˜ ID๋กœ ํด๋ผ์ด์–ธํŠธ์ธ ์ฒ™ ์œ„์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.
    • ์„ธ์…˜์€ ์œ ์ € ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ €์žฅํ•˜๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ถ€๊ฐ€ ๊ธฐ๋Šฅ๋“ค์„ ์œ ์ €์—๊ฒŒ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ๋‹ค.
      • ๋„ทํ”Œ๋ฆญ์Šค 5๋ช…๊นŒ์ง€ ์ธ์› ์ถ”๊ฐ€
      • ์ธ์Šคํƒ€๊ทธ๋žจ ๋กœ๊ทธ์ธ ๋œ ๊ธฐ๊ธฐ ํ™•์ธ ๋ฐ ์ˆ˜์ •
      • ๊ฐ•์ œ ๋กœ๊ทธ์•„์›ƒ ๊ฐ€๋Šฅ
    • ์„ธ์…˜DB๋Š” ์ฃผ๋กœ redis๋ฅผ ์‚ฌ์šฉ(๋น ๋ฅด๊ณ  ์ €๋ ด)
  • ์„ธ์…˜ ๋™์ž‘ ๊ณผ์ •
    1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ์ ‘๊ทผ
    2. ์„œ๋ฒ„๊ฐ€ ์ ‘๊ทผํ•œ ํด๋ผ์ด์–ธํŠธ์˜ ์ฟ ํ‚ค๋ฅผ ํ™•์ธํ•˜์—ฌ session id๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธ
    3. session id๊ฐ€ ์—†๋‹ค๋ฉด ์„œ๋ฒ„๊ฐ€ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์ „๋‹ฌ(์ƒ์„ฑ๋œ session id๋Š” session db์— ์ €์žฅ)
    4. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ›์€ session id๋ฅผ ์ฟ ํ‚ค or ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์— ์ €์žฅ
    5. ์›น ์‚ฌ์ดํŠธ์— ์žฌ์ ‘์† ์‹œ ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ฟ ํ‚ค์— ์ €์žฅ๋œ session id๋ฅผ ์ „๋‹ฌ
    6. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๋กœ๋ถ€ํ„ฐ ๋ฐ›๋Š” ์ฟ ํ‚ค ๋‚ด ์„ธ์…˜ ID์— ๋”ฐ๋ผ ์„ธ์…˜ DB๋ฅผ ํ™•์ธ ํ›„ ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ(์•„์ด๋”” or ํŒจ์Šค์›Œ๋“œ)๋ฅผ ์ฝ๋Š”๋‹ค.
  • ์„œ๋ฒ„์—์„œ ์„ธ์…˜ ์ •๋ณด ์‚ญ์ œ ๋ฐฉ๋ฒ•
    • ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์•„์›ƒ ๋ฒ„ํŠผ ํด๋ฆญ ์‹œ
    • ํด๋ผ์ด์–ธํŠธ๋กœ ๋ถ€ํ„ฐ ํŠน์ • ์‹œ๊ฐ„ ๋™์•ˆ ์š”์ฒญ์ด ์—†์„ ๊ฒฝ์šฐ ์ž๋™ ๋กœ๊ทธ์•„์›ƒ(์„ธ์…˜ ์‚ญ์ œ)
  • ์˜ˆ์‹œ
    • ํ•œ ์‚ฌ์ดํŠธ ๋‚ด์—์„œ ์—ฌ๋Ÿฌ ํŽ˜์ด์ง€๋ฅผ ์ด๋™ํ•ด๋„ ๋กœ๊ทธ์ธ ์ƒํƒœ๊ฐ€ ์œ ์ง€ ๋˜๋Š” ๊ฒƒ
๐Ÿ’ก ์ฟ ํ‚ค์™€ ์„ธ์…˜์€ ํ•จ๊ป˜ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ž‘ํ•œ๋‹ค!!!! โ‡’ ์ฟ ํ‚ค๋ฅผ ํ†ตํ•ด ์„ธ์…˜ ID๋ฅผ ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๊ฐ€ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ๋•Œ๋ฌธ์—

6. Cookie์ธ์ฆ๊ณผ Session์ธ์ฆ์˜ ์ฐจ์ด๐Ÿ˜ตโ€๐Ÿ’ซ

  1. ์‚ฌ์šฉ์ž์˜ ์ •๋ณด ์ €์žฅ ์œ„์น˜ : ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ์ธก์— ์ €์žฅ๋˜๊ณ  ์„ธ์…˜์€ ์„œ๋ฒ„์— ์ €์žฅ๋œ๋‹ค.
  2. ๋ณด์•ˆ : ์ฟ ํ‚ค๋Š” ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ์ปฌ PC์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณ€์งˆ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ฟ ํ‚ค ์ธ์ฆ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•  ๊ฒฝ์šฐ ์Šค๋‹ˆํ•‘ ๋‹นํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ์˜ ๊ฐœ์ธ ์ •๋ณด๊ฐ€ ๊ทธ๋Œ€๋กœ ๋…ธ์ถœ๋˜์ง€๋งŒ ์„ธ์…˜ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๋ฉด ์Šค๋‹ˆํ•‘ ๋‹นํ•  ๊ฒฝ์šฐ session id๋งŒ ๋…ธ์ถœ๋˜์–ด ๋น„๊ต์  ๋ณด์•ˆ์„ฑ์ด ๋†’๋‹ค.
  3. ๋ผ์ดํ”„ ์‚ฌ์ดํด(Life Cycle) : ์ฟ ํ‚ค๋Š” ๋กœ์ปฌ pc ๋‚ด์— ์ €์žฅ๋˜๊ธฐ ๋•Œ๋ฌธ์— ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์•„๋„ ์œ ์ง€๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋”ฐ๋กœ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ฐ˜๋ฉด ์„ธ์…˜ ๋˜ํ•œ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์„ ์ง€์ •ํ•  ์ˆœ ์žˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ๊ฒŒ ๋˜๋ฉด ์„ธ์…˜ ์ •๋ณด ๋˜ํ•œ ๋งŒ๋ฃŒ ๊ธฐ๊ฐ„์— ์ƒ๊ด€ ์—†์ด ์‚ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.

7. ์บ์‹œ(Cache)๋ž€?๐Ÿ‘ฝ

์ด๋ฏธ์ง€, CSS, JS, ๋ฐฐ๋„ˆ์™€ ๊ฐ™์ด ๋ณ€๊ฒฝ ์‚ฌํ•ญ์ด ํฌ์ง€ ์•Š๊ณ  ์ž์ฃผ ์‚ฌ์šฉ ๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค(์ •์  ํŒŒ์ผ)์˜ ์ž„์‹œ ์ €์žฅ์†Œ๋ฅผ โ€˜์บ์‹œโ€™๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ํŠน์ • ์›น ์‚ฌ์ดํŠธ์— ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ ์‹œ ์„œ๋ฒ„์˜ ์‘๋‹ต์„ ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ์ปฌ PC ๋‚ด ์กด์žฌํ•˜๋Š” ์บ์‹œ์— ์ €์žฅ ํ›„, ์ถ”ํ›„ ์š”์ฒญ ์‹œ ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜๋Š” ๊ฒƒ ๋Œ€์‹  ์บ์‹œ์— ์ ‘๊ทผํ•˜์—ฌ ์ˆ˜ํ–‰ ์†๋„๋ฅผ ์ฆ๊ฐ€ ์‹œํ‚จ๋‹ค.(๊ฐ€๋ฐฉ์˜ ์•ž์ฃผ๋จธ๋‹ˆ ์—ญํ• )

  • ์บ์‹œ ํŠน์ง•
    • ์ €์žฅ ๊ณต๊ฐ„์ด ์ž‘๋‹ค
    • ๋น„์‹ธ๋‹ค
    • ์„œ๋ฒ„์— ์ ‘๊ทผํ•˜์ง€ ์•Š๊ณ  ์‚ฌ์šฉ์ž์˜ ๋กœ์ปฌ pc๋ฅผ ๊ฑฐ์น˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋‹ค
    • ์บ์‹œ ๋ฐ์ดํ„ฐ์˜ ์œ ํšจ ๊ธฐ๊ฐ„์ด ์กด์žฌํ•˜์—ฌ ์„œ๋ฒ„์˜ ๋ฐ์ดํ„ฐ์™€ ์บ์‹œ ๋ฐ์ดํ„ฐ์˜ ๋ถˆ์ผ์น˜๋ฅผ ํ•ด๊ฒฐ
    • ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์บ์‹œ ๋‚ด ์กด์žฌํ•  ๊ฒฝ์šฐ hit, ์กด์žฌ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ miss๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค.
  • ์บ์‹œ ๋™์ž‘ ๊ณผ์ •
    • ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์›น ์‚ฌ์ดํŠธ์— ์ ‘๊ทผ
    • ์ฒซ ๋ฒˆ์งธ ์š”์ฒญ์ผ ๊ฒฝ์šฐ ์„œ๋ฒ„๋กœ๋ถ€ํ„ฐ ์ „๋‹ฌ ๋ฐ›์€ ์‘๋‹ต์„ ์บ์‹œ์— ์ €์žฅ
    • ๋‹ค์‹œ ์š”์ฒญ์„ ๋ณด๋‚ผ ๋•Œ ์„œ๋ฒ„๊ฐ€ ์•„๋‹Œ ์บ์‹œ๋ฅผ ๋จผ์ € ํ™•์ธํ•˜์—ฌ ์บ์‹œ ๋‚ด ์‘๋‹ต์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์žˆ๋Š”์ง€ ํ™•์ธํ•˜๊ณ  ์žˆ๋‹ค๋ฉด(cache hit) ์บ์‹œ์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€ ์‚ฌ์šฉ(์†๋„๊ฐ€ ๋น ๋ฆ„)
    • nignx ์„ค์น˜ ํ•  ๋•Œ ์บ์‹œ ์ง€์› ๋”๋‹ˆ ์ž˜ ๋Œ์•„๊ฐ”๋˜ ์ด์œ ๊ฐ€ ์บ์‹œ์—๋Š” ์˜ˆ์ „ ๊ฐ’์„ ๋ถˆ๋Ÿฌ์™€์„œ ๊ทธ๋žฌ์—ˆ๋‹ค.(์•ž์œผ๋ก  ์บ์‹œ๋ฅผ ์ง€์›Œ ๋ฐ์ดํ„ฐ ๋™๊ธฐํ™”๋ฅผ ์‹œ์ผœ์ฃผ์ž...!)

8. ์›น ์Šคํ† ๋ฆฌ์ง€(Web Storage)๋ž€?๐Ÿค”

HTML5๋ถ€ํ„ฐ ์ง€์›ํ•˜๋Š” ํด๋ผ์ด์–ธํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ž„์‹œ ์ €์žฅ์†Œ๋ฅผ โ€˜์›น ์Šคํ† ๋ฆฌ์ง€โ€™๋ผ๊ณ  ๋ถ€๋ฅด๋ฉฐ Local Storage์™€ Session Storage๋กœ ๊ตฌ๋ถ„๋œ๋‹ค.

  • ์›น ์Šคํ† ๋ฆฌ์ง€ ํŠน์ง•
    • ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„œ๋ฒ„์— ์‹ค์ œ๋กœ ์ „์†ก๋˜์ง€ ์•Š๊ณ  ๋ช…์‹œ์ ์œผ๋กœ๋งŒ ์ „์†ก๋˜์–ด ์„œ๋ฒ„์˜ ๋ถ€๋‹ด์ด ์ ๋‹ค.
    • ํ•„์š”ํ•œ ๊ฒฝ์šฐ์—๋งŒ ๊บผ๋‚ด ์“ธ ์ˆ˜ ์žˆ์–ด ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์ž๋™ ์ „์†ก์˜ ์œ„ํ—˜์„ฑ์ด ์—†๋‹ค.
    • ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์—์„œ ํŠน์ • ๋„๋ฉ”์ธ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•  ์ˆ˜ ์—†๋‹ค.(CSRF ์•ˆ์ „)
    • 4KB์˜ ์ €์žฅ๊ณต๊ฐ„์„ ๊ฐ–๋Š” ์ฟ ํ‚ค์— ๋น„ํ•ด ์›น ์Šคํ† ๋ฆฌ์ง€๋Š” 5MB์˜ ์ •๋ณด๋ฅผ ์ €์žฅ ๊ฐ€๋Šฅํ•˜๋‹ค.
  • Local Storage
    • ๋„๋ฉ”์ธ ๋ณ„๋กœ ์ƒ์„ฑ๋˜๋ฉฐ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์˜ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€์—๋Š” ์ ‘๊ทผ ๊ถŒํ•œ์ด ์—†๋‹ค.
      • Domain : ip ์ฃผ์†Œ๋Š” ์‚ฌ๋žŒ์ด ๊ธฐ์–ตํ•˜๊ธฐ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์–ตํ•˜๊ธฐ ์‰ฝ๋„๋ก ์ด๋ฆ„์„ ๋ถ€์—ฌํ•œ ๊ฒƒ
    • ๋ฐ์ดํ„ฐ๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•ด๋„ ์˜๊ตฌ์ ์œผ๋กœ ๋‚จ๋Š”๋‹ค.
      • Javascript code๋กœ ์‚ญ์ œํ•ด์•ผ ํ•œ๋‹ค.
    • ์„œ๋กœ ๋‹ค๋ฅธ ๋ธŒ๋ผ์šฐ์ € ํƒญ์ด๋ผ๋„ ๊ฐ™์€ ๋„๋ฉ”์ธ์ผ ๊ฒฝ์šฐ ๊ฐ™์€ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • โ€˜์ž๋™ ๋กœ๊ทธ์ธโ€™, โ€˜๊ฒ€์ƒ‰ ๊ธฐ๋กโ€™๊ณผ ๊ฐ™์ด ์ง€์†์ ์œผ๋กœ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ์ข‹๋‹ค.
  • Session Storage
    • ๋ธŒ๋ผ์šฐ์ € ํƒญ ๋‹จ์œ„๋กœ ์ƒ์„ฑ๋œ๋‹ค.
    • ๋ธŒ๋ผ์šฐ์ €๋ฅผ ๋‹ซ์„ ์‹œ ๋ฐ์ดํ„ฐ ๋˜ํ•œ ์‚ฌ๋ผ์ง€๊ฒŒ ๋œ๋‹ค.
    • ๋™์ผํ•œ ํƒญ์ด๋ผ๋„ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ์ด๋ผ๋ฉด ๋˜ ๋‹ค๋ฅธ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค.
    • โ€˜์ž…๋ ฅ ํผ(๊ตฌ๊ธ€ ํผ)โ€™๊ณผ ๊ฐ™์ด ์ž ์‹œ ๋™์•ˆ ํ•„์š”ํ•œ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ธฐ์— ์ข‹๋‹ค.
    • ๋น„๋กœ๊ทธ์ธ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ์‚ฌ์šฉ
profile
๋ฐฑ์—”๋“œ ๊ฐœ๋ฐœ์ž๋ฅผ ๊ฟˆ๊พธ๋Š” ํ•™์ƒ์ž…๋‹ˆ๋‹ค!

0๊ฐœ์˜ ๋Œ“๊ธ€