[HTTP Network] Session

2022. 1. 18. 15:29ใ†์ด๋ก  ์ •๋ฆฌ/์ •๋ณด๋ณด์•ˆ

728x90
๋ฐ˜์‘ํ˜•

๐Ÿš€ Session ๋ฐฉ์‹

 

session ๋ฐฉ์‹

์œ„ ์ž‘์—…์€ ์ตœ์ดˆ ์š”์ฒญ ์‹œ ์ด๋ค„์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. ๊ทธ ๋‹ค์Œ ์š”์ฒญ ๋ถ€ํ„ฐ๋Š” Session ID๋ฅผ ๊ฐ€์ง€๊ณ , ์šฉ์ฒญ์„ ํ•˜๊ณ , ์‘๋‹ต(๋ฐ˜ํ™˜) ์‹œ ๋™์ผ ๊ฐ’์„ ์ „๋‹ฌํ•˜์—ฌ ํ•ด๋‹น Session ID๊ฐ€ ์—†์œผ๋ฉด ์ฒ˜์Œ ๋ฐฉ๋ฌธํ•œ ๊ฒƒ์œผ๋กœ Web Server๋Š” ํŒ๋‹จํ•˜๋Š” ๊ฒƒ์ด์—์š”.

์•…์˜์ ์ธ ์ด์šฉ์ž๊ฐ€ ํƒˆ์ทจํ•  ์œ„ํ—˜์„ ๋ง‰๊ธฐ ์œ„ํ•ด Session ID์™€ ๋ณ„๊ฐœ๋กœ ๋ชฉ๋ก์— ์–ด๋–ค ๊ฐ’์„ ๋„ฃ๊ณ , ์ตœ์ดˆ ์š”์ฒญ์‹œ Header์— Session ID์™€ ๋ชฉ๋ก์— ์ €์žฅํ•œ ๊ฐ’์„ Client์—๊ฒŒ ์ „๋‹ฌ ํ•ด ์ฃผ๊ณ , Client๋Š” ๋ธŒ๋ผ์šฐ์ € ๋‚ด๋ถ€์— ์ด๊ฒƒ๋“ค์„ ์ €์žฅ์„ ํ•œ ๋’ค ๊ทธ ๋‹ค์Œ ์š”์ฒญ ์‹œ Session ID์™€ ๋ชฉ๋ก์— ์ €์žฅ๋œ ๊ฐ’์„ ๊ฐ™์ด ์ „๋‹ฌํ•˜๊ณ , Server๋Š” ํ•ด๋‹น ๊ฐ’์„ ๋น„๊ตํ•˜์—ฌ ๋™์ผํ•œ ๊ฐ’์ด ์žˆ์œผ๋ฉด ์ธ์ฆ์„ ํ—ˆ์šฉํ•˜๊ณ , ์—†์œผ๋ฉด ์ƒˆ๋กœ์šด ๊ฐ’์„ ๋งŒ๋“ค์–ด ๊ทธ ๊ฐ’์„ Server ๋‚ด๋ถ€์— ์ €์žฅํ•˜๊ณ , Client์— ์ „๋‹ฌํ•˜๋Š” ๋ฐฉ์‹์ธ ๊ฒƒ์ด์—์š”.

 

    ๐Ÿ”ฝ  Session ID๊ฐ€ ์‚ฌ๋ผ์ง€๋Š” ๊ฒฝ์šฐ

1. Server ์ชฝ์—์„œ Session ๊ฐ’์„ ๋‚ ๋ ค ๋ฒ„๋ฆฌ๋Š” ๊ฒฝ์šฐ
2. Client๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•˜๋Š” ๊ฒฝ์šฐ ๋ธŒ๋ผ์šฐ์ € ๋‚ด ์ €์žฅ์†Œ๊ฐ€ ์ดˆ๊ธฐํ™” ๋˜๋ฉฐ, Server์—์„œ๋Š” ๋ณดํ†ต 30๋ถ„์ด ์ง€๋‚˜๋ฉด ํ•ด๋‹น ์ •๋ณด๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.
3. ํŠน์ • ์‹œ๊ฐ„( ๋ณดํ†ต 30๋ถ„ )์ด ์ง€๋‚˜๋ฉด Server์—์„œ Session Value๊ฐ€ ์‚ฌ๋ผ์ง„๋‹ค.

 

 

    ๐Ÿ”ฝ  Session ์‚ฌ์šฉ ์˜ˆ์‹œ

์„ธ์…˜์€ ์ธ์ฆ์„ ์œ„ํ•ด ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ์ด์—์š”.

Session ๊ตฌ๋™ ๋ฐฉ์‹

Session์„ ์ด์šฉํ•˜์—ฌ ์ธ์ฆ ์ฒ˜๋ฆฌํ•˜๊ณ , Client๊ฐ€ ๋‹ค์Œ ์š”์ฒญ ์‹œ์— ๋ฏผ๊ฐ ์ •๋ณด๋ฅผ ์š”์ฒญํ•˜๋ฉด Session ID๋ฅผ ํ™•์ธํ•˜๋Š” ์ž‘์—…์„ ํ†ตํ•ด Server๋Š” ์‘๋‹ต ์ž‘์—…์„ ํ•˜๋Š” ๊ฒƒ์ด์—์š”.

 

    ๐Ÿ”ฝ  Session ๋‹จ์ 

๊ฐ๊ฐ ๋‹ค๋ฅธ ์ด์šฉ์ž ์ฆ‰, ๋™์‹œ ์ ‘์†์ž ์ˆ˜๊ฐ€ ์–ด๋งˆ๋ฌด์‹œํ•˜๊ฒŒ ๋งŽ์„ ๋•Œ, Session ๋ฐฉ์‹์€ ์ฒ˜๋ฆฌ ์†๋„๊ฐ€ ๋Š๋ฆฐ ๊ฒƒ์ด ๋‹จ์ ์ธ ๊ฒƒ์ด์—์š”.
์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Web Server๋ฅผ ์—ฌ๋Ÿฌ ๋Œ€ ์ถ”๊ฐ€๋ฅผ ํ•˜๊ณ , Load Balancing์„ ํ†ตํ•ด ๋ถ€ํ•˜๋ฅผ ๋ถ„์‚ฐํ•˜์—ฌ Web Server์— ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ง‰๋Š” ์ž‘์—…์„ ํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์—ฌ๋Ÿฌ ๋Œ€์˜ Web Server ์ค‘ Client๊ฐ€ 'A' Server์— Login์„ ํ•œ ๋’ค ๋‘๋ฒˆ์งธ ์š”์ฒญ ์‹œ์— 'B' Server์— ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด 'B' Server ์ž…์žฅ์—์„œ๋Š” ๋‹น์—ฐํžˆ "์ฒ˜์Œ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค! ๊ณ ๊ฐ๋‹˜!"์„ ํ•  ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ฒƒ์ด์—์š”.

์ด๋Ÿฐ ์ƒํ™ฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์ถ”๊ฐ€ ์ž‘์—…์„ ํ•ด์ฃผ์–ด์•ผ ํ•˜๋Š”๋ฐ, ๊ฐ Web Server๊ฐ€ ์ด์šฉ์ž ์ •๋ณด๊ฐ€ ๋‹ด๊ธด DB Server ํ•œ ๊ฐœ๋ฅผ ๋™์‹œ์— ๋ฐ”๋ผ๋ณด๊ณ  ์žˆ๋‹ค๋ฉด ๊ทธ๋ฆฌ๊ณ , ๊ทธ ๊ณณ์— Session ID์™€ ๊ฐ™์€ ๊ฐ’์„ ์ €์žฅํ•œ๋‹ค๋ฉด "์ฒ˜์Œ ๋ต™๊ฒ ์Šต๋‹ˆ๋‹ค! ๊ณ ๊ฐ๋‹˜"์€ ํ•˜์ง€ ์•Š์„ ๊ฒƒ์ด์—์š”. ํ•˜์ง€๋งŒ ๋ฌธ์ œ๋Š” DB๋Š” HDD๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ Data๋ฅผ ์ €์žฅํ•˜๊ณ  ์žˆ๊ณ , Web Server๊ฐ€ ์š”์ฒญ์„ ํ•˜๊ฒŒ ๋˜๋ฉด I/O (Input / Output)์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๋Š” ์—„์ฒญ๋‚œ ์†๋„ ์ €ํ•˜๋ฅผ ์ดˆ๋ž˜ํ•˜๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”.

์ด๋Ÿฌํ•œ ์ƒํ™ฉ์„ ๋ง‰๊ธฐ ์œ„ํ•ด ์š”์ฆ˜ Back End ์ชฝ์—์„œ ์œ ๋ช…ํ•œ Redis์™€ ๊ฐ™์€ Memory DB๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์†๋„๊ฐ€ ๋–จ์–ด์ง€์ง€ ์•Š๊ฒŒ ๊ตฌ์ถ•์„ ํ•˜๋Š”๋ฐ, ์ด ๋ชจ๋“  ๊ฒƒ์€ ๋น„์šฉ์ด ๋ฐœ์ƒํ•œ๋‹ค! ๋ผ๋Š” ๋‹จ์ ์ด ์žˆ๋Š” ๊ฒƒ์ด์—์š”.

๋ฐ˜์‘ํ˜•

 

 

๊ทธ๋ž˜์„œ ์ด๋Ÿฌํ•œ ๋‹จ์ ์„ ๊ฐ€์ง„ Session์„ ๋ณด์™„ํ•˜๊ธฐ ์œ„ํ•ด ์šฐ๋ฆฌ๋Š” JWT๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•˜๊ฒŒ ๋˜๋Š”๋ฐ, ์ด๊ฒƒ์— ๋Œ€ํ•ด์„œ๋„ ๊ณต๋ถ€๋ฅผ ํ•˜์—ฌ ์ž‘์„ฑํ•ด ๋ณด๋„๋ก ํ•  ๊ฒƒ์ด์—์š”!

728x90
๋ฐ˜์‘ํ˜•