๐Ÿ“‚ WEB

์„ธ์…˜(Session)

Amenable 2023. 3. 28. 22:41

  Cookie์— ์ด์–ด์„œ Session์— ๋Œ€ํ•ด์„œ ์‚ดํŽด๋ณด์ž.

 

1. ๊ฐœ๋… ๐Ÿถ

  ์„ธ์…˜(Session)์€ ์ฟ ํ‚ค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•˜๊ณ  ์žˆ์ง€๋งŒ, ์‚ฌ์šฉ์ž ์ •๋ณด ํŒŒ์ผ์„ ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•˜๋Š” ์ฟ ํ‚ค์™€ ๋‹ฌ๋ฆฌ ์„ธ์…˜์€ ์„œ๋ฒ„ ์ธก์—์„œ ๊ด€๋ฆฌํ•œ๋‹ค. ์›น ์„œ๋ฒ„์— ์ €์žฅ๋˜๋Š” ์ฟ ํ‚ค๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ด๋ฅผ ์ด์šฉํ•˜์—ฌ ๋กœ๊ทธ์ธ ๊ฐ™์ด ๋ณด์•ˆ์ƒ ์ค‘์š”ํ•œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.

 

2. ํŠน์ง• ๐Ÿฑ

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

 

3. ๋™์ž‘์ˆœ์„œ ๐Ÿฎ

  1. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์† ์‹œ ์„ธ์…˜ ID๋ฅผ ๋ฐœ๊ธ‰๋ฐ›์Œ
  2. ํด๋ผ์ด์–ธํŠธ๋Š” ์„ธ์…˜ ID์— ๋Œ€ํ•ด ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์ €์žฅํ•˜๊ณ  ๊ฐ€์ง€๊ณ  ์žˆ์Œ
  3. ํด๋ผ์ด์–ธํŠธ๋Š” ์„œ๋ฒ„์— ์š”์ฒญํ•  ๋•Œ, ์ด ์ฟ ํ‚ค์˜ ์„ธ์…˜ ID๋ฅผ ๊ฐ™์ด ์„œ๋ฒ„์— ์ „๋‹ฌํ•ด์„œ ์š”์ฒญ
  4. ์„œ๋ฒ„๋Š” ์„ธ์…˜ ID๋ฅผ ์ „๋‹ฌ๋ฐ›์•„์„œ ๋ณ„๋‹ค๋ฅธ ์ž‘์—… ์—†์ด ์„ธ์…˜ ID๋กœ ์„ธ์…˜์— ์žˆ๋Š” ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ ธ์™€์„œ ์‚ฌ์šฉ
  5. ํด๋ผ์ด์–ธํŠธ ์ •๋ณด๋ฅผ ๊ฐ€์ง€๊ณ  ์„œ๋ฒ„ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต

 

4. ์„ค์ • ๋ฐฉ๋ฒ• ๐Ÿท

// ์ƒ์„ฑ
HttpSession session = request.getSession();
// ๊ฐ’ ์ €์žฅ
session.setAttribute(String name, Object value);
// ๊ฐ’ ์–ป๊ธฐ
Object obj = session.getAttribute(String name);

  ๊ฐ’์„ ์–ป์–ด์˜ฌ ๋•Œ ํ•ญ์ƒ Object ํ˜•์‹์œผ๋กœ ์–ป์–ด์˜จ๋‹ค๋Š” ์ ์„ ์ฃผ์˜ํ•˜์ž.

 

5. ๋ฌธ์ œ์  ๋ฐ ์ฃผ์˜์  ๐Ÿญ

  ๋™์‹œ์ ‘์†์ž๊ฐ€ ๋งŽ์€ ์›น ์‚ฌ์ดํŠธ์˜ ๊ฒฝ์šฐ ์„œ๋ฒ„์— ๊ณผ๋ถ€ํ•˜๋ฅผ ์ฃผ๊ฒŒ ๋˜๋ฏ€๋กœ ์„ฑ๋Šฅ ์ €ํ•˜์˜ ์š”์ธ์ด ๋œ๋‹ค.

 

6. Cookie์™€ Session ๋น„๊ต ๐Ÿผ

  ์ฟ ํ‚ค(Cookie) ์„ธ์…˜(Session)
์ €์žฅ์œ„์น˜ Client Server
์ €์žฅํ˜•์‹ Text Object
๋งŒ๋ฃŒ์‹œ์  ์ฟ ํ‚ค ์ €์žฅ์‹œ ์„ค์ •
(์„ค์ • ์—†์œผ๋ฉด ๋ธŒ๋ผ์šฐ์ € ์ข…๋ฃŒ ์‹œ)
์•Œ ์ˆ˜ ์—†์Œ
(Client๊ฐ€ ๋กœ๊ทธ์•„์›ƒ ํ•˜๊ฑฐ๋‚˜, ์ผ์ • ์‹œ๊ฐ„๋™์•ˆ session์— ์ ‘๊ทผํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ)
์šฉ๋Ÿ‰์ œํ•œ ํ•œ ๋„๋ฉ”์ธ ๋‹น 20๊ฐœ
ํ•œ ์ฟ ํ‚ค๋‹น 4KB
์ œํ•œ์—†์Œ

 

ํ•ด๋‹น ๊ธ€์€
RyanGomdoriPooh ๋‹˜์˜ '์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ฐœ๋…',
Gyoogle ๋‹˜์˜ 'Cookie & Session'
์„ ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค.