๐Ÿ’ Spring/Spring Security

1. JWT๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์ „์— Session์ด๋ž€ ๋ฌด์—‡์ธ๊ฐ€

iseunghan 2021. 10. 24. 23:17
๋ฐ˜์‘ํ˜•

์ด ํฌ์ŠคํŠธ๋Š” ๋ฐ์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ๋‹˜์˜ ์œ ํŠœ๋ธŒ ๊ฐ•์˜๋ฅผ ๋“ฃ๊ณ  ๋‚˜์„œ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ตœ์ดˆ ์ ‘๊ทผํ•œ ๊ฒฝ์šฐ

 

์š”์ฒญ ํ—ค๋”์— ์„ธ์…˜ ID๋ฅผ ๋“ค๊ณ  ์ ‘๊ทผํ•œ ๊ฒฝ์šฐ

 

๊ทธ๋Ÿผ ์ด ์„ธ์…˜๋งŒ ์žˆ์œผ๋ฉด ๊ณ„์† ์ ‘๊ทผ์ด ๊ฐ€๋Šฅํ•œ๊ฐ€?

์•„๋‹ˆ๋‹ค. ์„ธ์…˜์ด ๋‚ ๋ผ๊ฐ€๋Š” ์‹œ์ ์ด ์žˆ๋‹ค.

1. ์„œ๋ฒ„์—์„œ ๊ฐ•์ œ๋กœ Session์„ ๋‚ ๋ฆฐ๋‹ค.

2. ์‚ฌ์šฉ์ž๊ฐ€ ๋ธŒ๋ผ์šฐ์ €๋ฅผ ์ข…๋ฃŒํ•  ๋•Œ

3. Session ๋งŒ๋ฃŒ ์‹œ๊ฐ„์ด ๋์„ ๋•Œ (๋ณดํ†ต 30๋ถ„์œผ๋กœ ๋‘”๋‹ค)

 

์„ธ์…˜ ๋กœ๊ทธ์ธ ์š”์ฒญ / ์ธ์ฆ ๋กœ์ง

  1. ์ฒ˜์Œ ๋กœ๊ทธ์ธ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.
  2. ์‚ฌ์šฉ์ž ID, PW๋ฅผ ํ™•์ธํ•˜์—ฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋งž๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  3. ์„ธ์…˜ID๋ฅผ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค.
  4. ์‚ฌ์šฉ์ž์—๊ฒŒ ์‘๋‹ต ํ—ค๋”์— ์„ธ์…˜ID๋ฅผ ๋‹ด์•„์„œ ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค.
  5. ์„ธ์…˜ID๋ฅผ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  6. ์ด์ œ ์„ธ์…˜ID๋ฅผ ํ—ค๋”์— ๋‹ด์•„์„œ ์š”์ฒญ์„ ํ•ฉ๋‹ˆ๋‹ค.
  7. ์„œ๋ฒ„์—์„œ๋Š” ์„ธ์…˜ID๊ฐ€ ์žˆ์œผ๋‹ˆ, ์„ธ์…˜ ์ €์žฅ์†Œ์—์„œ ์„ธ์…˜ID๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.
  8. ๊ฒ€์ฆ์ด ๋๋‹ค๋ฉด ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ต๋‹ˆ๋‹ค.
  9. ์‘๋‹ต

์ด ๋กœ์ง์ด ๋ฐ˜๋ณต์ ์œผ๋กœ ์ด๋ค„์ง„๋‹ค.

 

์„ธ์…˜์˜ ๋ฌธ์ œ์ 

๋งŒ์•ฝ ์šฐ๋ฆฌ์˜ ์„œ๋ฒ„๊ฐ€ ๋™์ ‘์ž ์ˆ˜ ์ตœ๋Œ€ 100๋ช…๊นŒ์ง€ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ด…์‹œ๋‹ค.

๊ทผ๋ฐ ํ‰๊ท  ๋™์ ‘์ž ์ˆ˜๊ฐ€ 300๋ช…์ด๋ผ๋ฉด?

 

์„œ๋ฒ„๋ฅผ ๋Š˜๋ฆฐ๋‹ค.

์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”๋ฐ 2 ๋ฒˆ์งธ ์„œ๋ฒ„๋Š” ์ง€๊ธˆ 100๋ช…์ด ๋™์ ‘์ค‘์ด๋ผ ๋ฐ”์˜๋‹ค. ๊ทธ๋ ‡๋‹ค๋ฉด ๋‹ค๋ฅธ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๋Š”๋ฐ ์ด๊ฒƒ์„ ๋ฐ”๋กœ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด๋ผ๊ณ  ํ•œ๋‹ค.

 

ํ•˜์ง€๋งŒ, ๋˜ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค.

๋งŒ์ผ, ์ฒ˜์Œ ์‚ฌ์šฉ์ž๊ฐ€ 2 ๋ฒˆ์งธ ์„œ๋ฒ„๋กœ ์ ‘๊ทผ์„ ํ•ด์„œ ์„ธ์…˜ID๋ฅผ ๋ฐœ๊ธ‰ ๋ฐ›์•˜๋‹ค๊ณ  ๊ฐ€์ •์„ ํ•ด๋ณด์ž. ๊ทธ๋Ÿฐ๋ฐ ๋‹ค์‹œ ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ๋ณด๋ƒˆ๋Š”๋ฐ ์ด๋ฒˆ์—” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ ๋•Œ๋ฌธ์— 1 ๋ฒˆ์งธ ์„œ๋ฒ„๋กœ ์š”์ฒญ์„ ๋ณด๋‚ด๊ฒŒ ๋œ๋‹ค๋ฉด, ํ•ด๋‹น ์„œ๋ฒ„์—๋Š” ํ•ด๋‹น ์‚ฌ์šฉ์ž์˜ ์„ธ์…˜ID๊ฐ€ ์—†์–ด์„œ ์ฒ˜์Œ ์˜จ ์‚ฌ์šฉ์ž๋กœ ์ธ์‹ ๋  ๊ฒƒ์ด๋‹ค.

 

ํ•ด๊ฒฐ์ฑ…์œผ๋กœ๋Š”,

  1. Sticky Session์„ ์ด์šฉํ•ด ๊ทธ ์‚ฌ์šฉ์ž๊ฐ€ ๊ฐ”๋˜ ์„œ๋ฒ„๋กœ๋งŒ ๋ณด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.
  2. ๋ชจ๋“  ์„œ๋ฒ„์— ์„ธ์…˜์ด ์ƒ์„ฑ ๋  ๋•Œ๋งˆ๋‹ค ์„ธ์…˜์„ ๋ณต์ œ ์‹œํ‚จ๋‹ค.
  3. DB๋ฅผ ์„ธ์…˜ ์ €์žฅ์†Œ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. (DB์—๋Š” IO๊ฐ€ ์ผ์–ด๋‚˜๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ์—„์ฒญ๋‚˜๊ฒŒ ์ €ํ•˜๋œ๋‹ค. ์„ธ์…˜์€ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ์‹œํ‚ค๊ณ  ๊ฐ€์ ธ์˜ค๊ธฐ ๋•Œ๋ฌธ์— ํ›จ์”ฌ ๋น ๋ฅด๋‹ค.) -> ๋ฉ”๋ชจ๋ฆฌ ์„œ๋ฒ„๋ฅผ ์ด์šฉํ•œ๋‹ค! (์ฃผ๋กœ Redis๋ฅผ ์ด์šฉํ•œ๋‹ค.)
  4. JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด ๋ฌธ์ œ๋“ค์„ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•