๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Engineering WIKI/Docs

์ฟ ํ‚ค์™€ ์„ธ์…˜ ๊ทธ๋ฆฌ๊ณ  JWT

by wonos 2022. 12. 30.

๐Ÿช ์ฟ ํ‚ค

์ฟ ํ‚ค๋Š” ์›น ์‚ฌ์ดํŠธ ์„œ๋ฒ„์—์„œ ์œ ์ €์˜ ์ปดํ“จํ„ฐ๋กœ ๋ณด๋‚ด๋Š” ์ž‘์€ ์ž„์‹œ ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์›น์— ํ•„์š”ํ•œ ์ •๋ณด๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค๊ฐ€ ํ•„์š”ํ•œ ์ด๋ฒคํŠธ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

์ฒ˜์Œ ์ฟ ํ‚ค๊ฐ€ ๋งŒ๋“ค์–ด์ง„ ๊ฑด, ์ •ํ™•ํ•œ ํ†ต๊ณ„ ๊ฐ’์„ ๊ตฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์˜€๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ๋ฐฉ๋ฌธ์ž๊ฐ€ ์ด์ „์—๋„ ์™”๋˜ ๋ฐฉ๋ฌธ์ž์ธ์ง€, ์ฒ˜์Œ ์˜จ ๋ฐฉ๋ฌธ์ž์ธ์ง€๋ฅผ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•จ์ด์—ˆ๋‹ค๊ณ  ํ•ด์š”. ์ฟ ํ‚ค๊ฐ€ ์—†๋˜ ์ด์ „์—๋Š” ํ•œ ๋ช…์˜ ์œ ์ €๊ฐ€ index ํŽ˜์ด์ง€๋ฅผ 100๋ฒˆ reload ํ•˜๋ฉด 100๋ช…์ด ๋ฐฉ๋ฌธํ–ˆ๋˜ ๊ฒƒ์œผ๋กœ ํ‘œํ˜„๋˜์—ˆ๋‹ค๊ณ  ํ•ด์š”. ๋ฐฉ๋ฌธ์ž๋ฅผ ํ™•์ธํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ†ตํ•ด ์šฐ๋ฆฌ๋Š” ์ด๋ฅผ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ ๊ฑฐ์ฃ . ๋จน๊ณ  ๋‚จ์€ ์ฟ ํ‚ค ๋ถ€์Šค๋Ÿฌ๊ธฐ ๋งˆ๋ƒฅ ์ž‘์€ ํŒŒ์ผ๋“ค์ด๋ผ ํ•˜์—ฌ cookie๋ผ๋Š” ์ด๋ฆ„์ด ๋ถ™์—ˆ๋‹ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

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

ํ•˜์ง€๋งŒ cookie ์—๋„ ๋‹จ์ ์€ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค. cookie ์˜ ํŒŒ์ผ๋“ค์€ ๋ชจ๋‘ ์œ ์ €์˜ ์›น ๋ธŒ๋ผ์šฐ์ €์— ์ €์žฅ์ด ๋ฉ๋‹ˆ๋‹ค. ์ฆ‰ ์œ ์ €๊ฐ€ ์›ํ•œ๋‹ค๋ฉด ์‚ญ์ œ๋„ ํ•˜๊ณ , ๋ณ€๊ฒฝํ•˜๋Š” ๊ฒƒ๋„ ๊ฐ€๋Šฅํ•˜๊ฒŒ ๋˜๋Š” ๊ฑฐ์ฃ . ๋‹จ์ˆœ ๋ฐ์ดํ„ฐ์•ผ ๊ทธ๋ ‡๋‹ค ์น˜๋”๋ผ๋„ ๊ฐœ์ธ์ •๋ณด ๋“ฑ์˜ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋ฅผ cookie ์— ๋‘˜ ์ˆ˜ ์—†๊ฒŒ ๋œ ๊ฑฐ์ฃ . ๊ทธ๋ ‡๊ฒŒ session ๊ณผ cookie ๋ฅผ ํ•จ๊ป˜ ๋ณ‘์šฉํ•˜์—ฌ ์“ฐ๋Š” ์„ธ์…˜ ์ฟ ํ‚ค ๋ฐฉ์‹์ด ๊ตฌํ˜„๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

ไท ์„ธ์…˜

session ์—ญ์‹œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•ด๋‘”๋‹ค๋Š” ์ ์—์„œ๋Š” cookie ์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค. cookie ๊ฐ€ client-side ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋ผ๋ฉด, session ์€ server-side ์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ์ด์ฃ .

๊ฐœ์ธ์ •๋ณด์™€ ๊ฐ™์€ ๋ฏผ๊ฐํ•œ ๋ฐ์ดํ„ฐ๋Š” session ์— ๋ชจ์•„๋‘๊ณ  ์ธ์ฆ ์ ˆ์ฐจ๊ฐ€ ์™„๋ฃŒ๋˜๋ฉด ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ์— ์ ˆ์ฐจ๊ฐ€ ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋Š” ํ™•์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ๊ธฐ๋Š” ๊ฒƒ์ด์ฃ . ๋ฌผ๋ก  cookie ์—๋Š” ๋ˆ„๊ตฌ๋„ ์•Œ์•„๋ณด์ง€ ๋ชปํ•˜๋„๋ก ํ•ด์‹œํ™” ๋œ ๊ฐ’์œผ๋กœ์š”. ์ด๋ฅผ ํ†ตํ•ด cookie ์˜ ์žฅ์ ์€ ๊ณ„์† ์ด์–ด๊ฐ€๋ฉด์„œ, ๋‹จ์ ์„ ๋ณด์™„ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

 

 

session ์€ ๋ฉ”๋ชจ๋ฆฌ๋‚˜ ํ•˜๋“œ๋””์Šคํฌ ํ˜น์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋“ฑ ๋‹ค์–‘ํ•˜๊ฒŒ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ ๋ชจ๋‘ ์žฅ๋‹จ์ ์ด ์กด์žฌํ–ˆ์–ด์š”. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ฐˆ์ˆ˜๋ก ์šฉ๋Ÿ‰ ๋ฌธ์ œ๋Š” ํ•ด๊ฒฐ๋˜์ง€๋งŒ ์š”์ฒญ-์‘๋‹ต์— ๊ฑธ๋ฆฌ๋Š” ์‹œ๊ฐ„์ด ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ๋Š” ๋ฐ˜๋Œ€๋กœ ์š”์ฒญ-์‘๋‹ต์€ ๋น ๋ฅด์ง€๋งŒ ๋งŽ์€ ์š”์ฒญ์€ ์ฒ˜๋ฆฌํ•  ์ˆ˜๊ฐ€ ์—†์ฃ .

์ด๋Ÿฌํ•œ ๋ฌธ์ œ๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋‚˜ํƒ€๋‚œ ๊ฒƒ์ด JWT ์™€ ๊ฐ™์€ token ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. token ์€ ์ธ์ฆ ๊ณผ์ •์€ ์„ธ์…˜ ์ฟ ํ‚ค์™€ ๋น„์Šทํ•˜์ง€๋งŒ, ์„œ๋ฒ„์— ํ™•์ธ ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋กœ๊ทธ์ธ์ด ์™„๋ฃŒ๋˜๋ฉด ์ดํ›„ ์ธ์ฆ ๊ณผ์ •์€ cookie ์— ๋‚จ๊ฒจ์ง„ ํ•ด์‹œ ํ† ํฐ๋งŒ์œผ๋กœ๋„ ํ™•์ธ์ด ๊ฐ€๋Šฅํ•˜๋ฏ€๋กœ ์š”์ฒญ-์‘๋‹ต ์†๋„๊ฐ€ ํ›จ์”ฌ ๋นจ๋ผ์ง‘๋‹ˆ๋‹ค.

๐Ÿค” ๊ทธ๋Ÿผ ์ด์ œ JWT๋งŒ ์“ฐ๋ฉด ๋˜๋Š”๊ฐ€.

์•„๋‹ˆ์š”. ์ผ๋‹จ JWT ๋ฅผ ํ†ตํ•ด cookie ๋งŒ์œผ๋กœ ์žฅ๊ธฐ์ ์ธ ๋กœ๊ทธ์ธ ์œ ์ง€๊ฐ€ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ด๊ฒƒ๋„ ์™„๋ฒฝํ•˜๋‹ค๊ณ  ๋ณผ ์ˆ˜๋Š” ์—†์Šต๋‹ˆ๋‹ค.

๋„ทํ”Œ๋ฆญ์Šค๋ฅผ ์ƒ๊ฐํ•ด๋ณผ๊นŒ์š”? ์Šค๋งˆํŠธํฐ์œผ๋กœ ๋ณด๋˜ ๊ฒƒ์„ ์ข€ ๋” ํฐ ํ™”๋ฉด์—์„œ ๋ณด๊ธฐ ์œ„ํ•ด ํƒœ๋ธ”๋ฆฟ์œผ๋กœ ํ”„๋กœํ•„ ์ ‘์†์„ ํ–ˆ๋‹ค๊ณ  ํ•ฉ์‹œ๋‹ค. ๋„ทํ”Œ๋ฆญ์Šค๋Š” ์œ ์ €์˜ ํ™˜๊ฒฝ์— ๋ณ€ํ™”๊ฐ€ ์žˆ์Œ์„ ์บ์น˜ํ•˜๊ณ  ํƒœ๋ธ”๋ฆฟ์˜ ์ ‘์†์ด ์™„๋ฃŒ๋จ๊ณผ ๋™์‹œ์— ๋ชจ๋ฐ”์ผ์€ ๋กœ๊ทธ์•„์›ƒ ํ™”๋ฉด์œผ๋กœ ๋ณ€ํ•˜๊ฒŒ ๋˜์ฃ . ์ด๋Ÿฌํ•œ ์•ฑ์—์„œ๋Š” server ์— ํ™˜๊ฒฝ์ด ๋ณ€ํ™”๋˜์—ˆ๋‹ค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋‚จ๊ฒจ์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— JWT ๋ณด๋‹ค๋Š” ์„ธ์…˜-์ฟ ํ‚ค ๋ฐฉ์‹์ด ํ›จ์”ฌ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ํ•ด์„œ token ๋ฐ์ดํ„ฐ๊ฐ€ ํƒˆ์ทจ๋œ๋‹ค๋ฉด server ์—์„œ ์ปจํŠธ๋กค ํ•  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ์˜ ๋งŒ๋ฃŒ๋‚ ์งœ๊ฐ€ ๋งˆ๋ƒฅ ๊ธฐ๋‹ค๋ฆด ์ˆ˜ ๋ฐ–์— ์—†๋Š” ๊ฒƒ๋„ ๋‹จ์ ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ฒฝ์šฐ๋Š” ์„ธ์…˜-์ฟ ํ‚คserver ์—์„œ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.

 

 

์ตœ๊ทผ์—๋Š” ๋ฉ”๋ชจ๋ฆฌํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋‚˜ access, refresh ํ† ํฐ ๋“ฑ์„ ํ†ตํ•ด ํ•ด๋‹น ์ธ์ฆ๊ณผ์ •์˜ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„๋“ค์„ ์ฐจ์ธฐ ๊ฐœ์„ ํ•˜๊ณ  ์žˆ๋Š” ์ƒํ™ฉ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ๋ช…ํ™•ํ•œ ๋‹จ์  ๋ฌธ์ œ๊ฐ€ ํ•ด๊ฒฐ๋œ ๊ฒƒ์€ ์•„๋‹ˆ๊ธฐ์— ๊ฐ ์ธ์ฆ ๋ฐฉ์‹์„ ์ด๋ก ์ ์œผ๋กœ ๊ณต๋ถ€ํ•˜๊ณ  ๊ตฌํ˜„ํ•˜๋Š” ์•ฑ์— ๋งž๋Š” ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€์žฅ ์ค‘์š”ํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋„ค์š”.

๐ŸŒ ์Šคํ‹ฐํ‚ค ์„ธ์…˜

  1. ์ฟ ํ‚ค ๋˜๋Š” ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„์‚ฐํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค
  2. Sticky Session์ด ๋‚˜์˜ค๊ฒŒ ๋œ ๋ฐฐ๊ฒฝ
    1. ์ผ๋ฐ˜์ ์œผ๋กœ ๋Œ€์šฉ๋Ÿ‰ ํŠธ๋ž˜ํ”ฝ์„ ์žฅ์•  ์—†์ด ์ฒ˜๋ฆฌํ•˜๊ธฐ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„์— ์ ์ ˆํžˆ ํŠธ๋ž˜ํ”ฝ์„ ๋ถ„๋ฐฐํ•˜๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. 

์ด๋ ‡๊ฒŒ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด ํ•„์š”ํ•œ ์„œ๋น„์Šค์—๋Š” ์„ธ์…˜ ๊ด€๋ฆฌ์— ๋ฌธ์ œ๊ฐ€ ์ƒ๊ธธ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

  1. ๋จผ์ € ๋กœ๊ทธ์ธ ์š”์ฒญ์„ A ์„œ๋ฒ„๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  2. A ์„œ๋ฒ„์˜ ์„ธ์…˜์—๋Š” martin์ด๋ผ๋Š” ๊ฐ’์ด ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  3. A ์„œ๋ฒ„์—์„œ๋Š” ๋กœ๊ทธ์ธ ์„ฑ๊ณต์ด๋ผ๋Š” ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  4. ๋™์ผํ•œ ํด๋ผ์ด์–ธํŠธ๋Š” ๋กœ๋“œ ๋ฐธ๋Ÿฐ์„œ์— ์ƒˆ๋กœ์šด ์š”์ฒญ์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.
  5. ๊ทธ๋Ÿฌ๋‚˜ ์ด ์š”์ฒญ์€ C ์„œ๋ฒ„๋กœ ์ „๋‹ฌ๋ฉ๋‹ˆ๋‹ค.
  6. C ์„œ๋ฒ„์˜ ์„ธ์…˜์—๋Š” ์ด ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ ํ•œ ์‚ฌ์šฉ์ž๋ผ๋Š” ์ •๋ณด๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์—, ์กฐํšŒ ์‹คํŒจ ํ›„ ๋กœ๊ทธ์ธ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ ํ•˜๋„๋ก ์‘๋‹ต์„ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

์œ„์˜ ์„ค๋ช…๊ณผ ๊ฐ™์ด, ๋ฐฉ๊ธˆ ๋กœ๊ทธ์ธ์„ ํ–ˆ๋Š”๋ฐ ๋‹ค์‹œ ๋กœ๊ทธ์ธ์„ ํ•˜๋ผ๋Š” ์‚ฌํƒœ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด๋Ÿฌํ•œ ์„ธ์…˜ ๊ด€๋ฆฌ์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด Sticky Session์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

Sticky Session์˜ ๊ฐœ๋…

Sticky Session์ด๋ž€ ํŠน์ • ์„ธ์…˜์˜ ์š”์ฒญ์„ ์ฒ˜์Œ ์ฒ˜๋ฆฌํ•œ ์„œ๋ฒ„๋กœ๋งŒ ์ „์†กํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์œ„์˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ฒซ ์š”์ฒญ ์ดํ›„์˜ ๋ชจ๋“  ์š”์ฒญ์„ ํŠน์„ฑ ์„œ๋ฒ„๋กœ ๊ณ ์ •ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ์„ธ์…˜์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ Sticky Session์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•ด Cookie๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ํด๋ผ์ด์–ธํŠธ์˜ IP trackingํ•˜๋Š” ๋ฐฉ์‹์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Sticky Session์˜ ๋‹จ์ 

  • ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ์ด ์˜๋„ํ•œ๋Œ€๋กœ ์ž˜ ๋™์ž‘ํ•˜์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŠน์ • ์„œ๋ฒ„๋งŒ ๊ณผ๋ถ€ํ•˜๊ฐ€ ์˜ฌ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํŠน์ • ์„œ๋ฒ„ Fail์‹œ ํ•ด๋‹น ์„œ๋ฒ„์— ๋ถ™์–ด์žˆ๋Š” ์„ธ์…˜๋“ค์ด ๋ชจ๋‘ ์†Œ์‹ค๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Sticky Session์˜ ๋‹จ์ ์„ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ์•ˆ

Session๋“ค์„ ํ•˜๋‚˜๋กœ ๋ฌถ์–ด ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ด€๋ฆฌ

๊ฐ WAS๋“ค์€ ์„ธ์…˜์„ ๊ฐ๊ฐ ๊ฐ€์ง€๊ณ  ์žˆ์ง€๋งŒ, ์ด๋ฅผ ํ•˜๋‚˜๋กœ ๋ฌต์–ด ํ•˜๋‚˜์˜ ํด๋Ÿฌ์Šคํ„ฐ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด ์ƒํƒœ์—์„œ ํ•˜๋‚˜์˜ WAS๊ฐ€ fail์ด ๋ฐœ์ƒํ•˜๋ฉด ํ•ด๋‹น WAS๊ฐ€ ๋“ค๊ณ  ์žˆ๋˜ ์„ธ์…˜์€ ๋‹ค๋ฅธ WAS๋กœ ์ด๋™๋˜์–ด ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ๊ฐ ์„œ๋ฒ„๋งˆ๋‹ค ์„ธ์…˜ ํด๋Ÿฌ์Šคํ„ฐ๋ง ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ณ  ์ง€์›ํ•˜๋Š” ๋ฐฉ์‹์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ํ˜„์žฌ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋Š” WAS์˜ session clusturing ๋ถ€๋ถ„์„ ๋ณด๊ณ  ํ™•์ธํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ด ๋ฐฉ์‹์€ ์ƒˆ๋กœ์šด ์„œ๋ฒ„๊ฐ€ ํ•˜๋‚˜ ์ถ”๊ฐ€๋  ๋•Œ๋งˆ๋‹ค ๊ธฐ์กด์— ์กด์žฌํ•˜๋˜ WAS์— ์ƒˆ๋กœ์šด ์„œ๋ฒ„์˜ IP/PORT๋ฅผ ์ž…๋ ฅํ•ด์„œ ํด๋Ÿฌ์Šคํ„ฐ๋ง ํ•ด์ค˜์•ผ ํ•˜๋Š” ๋‹จ์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

Session Server ๋ถ„๋ฆฌ

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

 

Reference : https://kchanguk.tistory.com/146

๐ŸŒฎ JWT

JWT๋Š” JSON Web Token์˜ ์•ฝ์ž๋กœ ์ „์ž ์„œ๋ช… ๋œ URL-safe (URL๋กœ ์ด์šฉํ•  ์ˆ˜์žˆ๋Š” ๋ฌธ์ž ๋งŒ ๊ตฌ์„ฑ๋œ)์˜ JSON์ž…๋‹ˆ๋‹ค.

์ „์ž ์„œ๋ช…์€ JSON ์˜ ๋ณ€์กฐ๋ฅผ ์ฒดํฌ ํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

JWT๋Š” ์†์„ฑ ์ •๋ณด (Claim)๋ฅผ JSON ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•œ ํ† ํฐ์œผ๋กœ RFC7519 ํ‘œ์ค€ ์ž…๋‹ˆ๋‹ค.

 

JWT๋Š” ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ๊ฐ„ ์ •๋ณด๋ฅผ ์ฃผ๊ณ  ๋ฐ›์„ ๋•Œ Http ๋ฆฌํ€˜์ŠคํŠธ ํ—ค๋”์— JSON ํ† ํฐ์„ ๋„ฃ์€ ํ›„ ์„œ๋ฒ„๋Š” ๋ณ„๋„์˜ ์ธ์ฆ ๊ณผ์ •์—†์ด ํ—ค๋”์— ํฌํ•จ๋˜์–ด ์žˆ๋Š” JWT ์ •๋ณด๋ฅผ ํ†ตํ•ด ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค.

 

์ด๋•Œ ์‚ฌ์šฉ๋˜๋Š” JSON ๋ฐ์ดํ„ฐ๋Š” URL-Safe ํ•˜๋„๋ก URL์— ํฌํ•จํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ž๋งŒ์œผ๋กœ ๋งŒ๋“ญ๋‹ˆ๋‹ค.

 

JWT๋Š” HMAC ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋น„๋ฐ€ํ‚ค ๋˜๋Š” RSA๋ฅผ ์ด์šฉํ•œ Public Key/ Private Key ์Œ์œผ๋กœ ์„œ๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

JWT๋Š” ์„ธ ํŒŒํŠธ๋กœ ๋‚˜๋ˆ„์–ด์ง€๋ฉฐ, ๊ฐ ํŒŒํŠธ๋Š” ์ ๋กœ ๊ตฌ๋ถ„ํ•˜์—ฌ xxxxx.yyyyy.zzzzz ์ด๋Ÿฐ์‹์œผ๋กœ ํ‘œํ˜„๋ฉ๋‹ˆ๋‹ค. ์ˆœ์„œ๋Œ€๋กœ ํ—ค๋” (Header), ํŽ˜์ด๋กœ๋“œ (Payload), ์„œ๋ช… (Sinature)๋กœ ๊ตฌ์„ฑํ•ฉ๋‹ˆ๋‹ค. Base64 ์ธ์ฝ”๋”ฉ์˜ ๊ฒฝ์šฐ “+”, “/”, “=”์ด ํฌํ•จ๋˜์ง€๋งŒ JWT๋Š” URI์—์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก URL-Safe ํ•œ  Base64url ์ธ์ฝ”๋”ฉ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 

Header๋Š” ํ† ํฐ์˜ ํƒ€์ž…๊ณผ ํ•ด์‹œ ์•”ํ˜ธํ™” ์•Œ๊ณ ๋ฆฌ์ฆ˜์œผ๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ์งธ๋Š” ํ† ํฐ์˜ ์œ ํ˜• (JWT)์„ ๋‚˜ํƒ€๋‚ด๊ณ , ๋‘ ๋ฒˆ์งธ๋Š” HMAC, SHA256 ๋˜๋Š” RSA์™€ ๊ฐ™์€ ํ•ด์‹œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๋‚˜ํƒ€๋‚ด๋Š” ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. Payload๋Š” ํ† ํฐ์— ๋‹ด์„ ํด๋ ˆ์ž„(claim) ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. Payload ์— ๋‹ด๋Š” ์ •๋ณด์˜ ํ•œ ‘์กฐ๊ฐ’ ์„ ํด๋ ˆ์ž„์ด๋ผ๊ณ  ๋ถ€๋ฅด๊ณ , ์ด๋Š” name / value ์˜ ํ•œ ์Œ์œผ๋กœ ์ด๋ค„์ ธ์žˆ์Šต๋‹ˆ๋‹ค. ํ† ํฐ์—๋Š” ์—ฌ๋Ÿฌ๊ฐœ์˜ ํด๋ ˆ์ž„ ๋“ค์„ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.ํด๋ ˆ์ž„์˜ ์ •๋ณด๋Š” ๋“ฑ๋ก๋œ (registered) ํด๋ ˆ์ž„, ๊ณต๊ฐœ (public) ํด๋ ˆ์ž„, ๋น„๊ณต๊ฐœ (private) ํด๋ ˆ์ž„์œผ๋กœ ์„ธ ์ข…๋ฅ˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.๋งˆ์ง€๋ง‰์œผ๋กœ Signature๋Š” secret key๋ฅผ ํฌํ•จํ•˜์—ฌ ์•”ํ˜ธํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

 

1. ์‚ฌ์šฉ์ž๊ฐ€ id์™€ password๋ฅผ ์ž…๋ ฅํ•˜์—ฌ ๋กœ๊ทธ์ธ์„ ์‹œ๋„ํ•ฉ๋‹ˆ๋‹ค.

2. ์„œ๋ฒ„๋Š” ์š”์ฒญ์„ ํ™•์ธํ•˜๊ณ  secret key๋ฅผ ํ†ตํ•ด Access token์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

3. JWT ํ† ํฐ์„ ํด๋ผ์ด์–ธํŠธ์— ์ „๋‹ฌ ํ•ฉ๋‹ˆ๋‹ค.

4. ํด๋ผ์ด์–ธํŠธ์—์„œ API ์„ ์š”์ฒญํ• ๋•Œ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ Authorization header์— Access token์„ ๋‹ด์•„์„œ ๋ณด๋ƒ…๋‹ˆ๋‹ค.

5. ์„œ๋ฒ„๋Š” JWT Signature๋ฅผ ์ฒดํฌํ•˜๊ณ  Payload๋กœ๋ถ€ํ„ฐ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ํ™•์ธํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

6. ํด๋ผ์ด์–ธํŠธ์˜ ๋กœ๊ทธ์ธ ์ •๋ณด๋ฅผ ์„œ๋ฒ„ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ํ† ํฐ๊ธฐ๋ฐ˜ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

์ธ์ฆ์ด ํ•„์š”ํ•œ ๊ฒฝ๋กœ์— ์ ‘๊ทผํ•  ๋•Œ ์„œ๋ฒ„ ์ธก์€ Authorization ํ—ค๋”์— ์œ ํšจํ•œ JWT ๋˜๋Š” ์กด์žฌํ•˜๋Š”์ง€ ํ™•์ธํ•œ๋‹ค.

JWT์—๋Š” ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋ฅผ ํ† ํฐ์— ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ณผ ๊ฐ™์€ ์„œ๋ฒ„์™€์˜ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ์˜ค๋ฒ„ ํ—ค๋“œ๋ฅผ ์ตœ์†Œํ™” ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

Cross-Origin Resource Sharing (CORS)๋Š” ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— JWT๋ฅผ ์ฑ„์šฉ ํ•œ ์ธ์ฆ ๋ฉ”์ปค๋‹ˆ์ฆ˜์€ ๋‘ ๋„๋ฉ”์ธ์—์„œ API๋ฅผ ์ œ๊ณตํ•˜๋”๋ผ๋„ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

 

์ผ๋ฐ˜์ ์œผ๋กœ JWT ํ† ํฐ ๊ธฐ๋ฐ˜์˜ ์ธ์ฆ ์‹œ์Šคํ…œ์€ ์œ„์™€ ๊ฐ™์€ ํ”„๋กœ์„ธ์Šค๋กœ ์ด๋ฃจ์–ด์ง‘๋‹ˆ๋‹ค.

 

์ฒ˜์Œ ์‚ฌ์šฉ์ž๋ฅผ ๋“ฑ๋กํ•  ๋•Œ Access token๊ณผ Refresh token์ด ๋ชจ๋‘ ๋ฐœ๊ธ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

JWT ์žฅ์ 

JWT ์˜ ์ฃผ์š”ํ•œ ์ด์ ์€ ์‚ฌ์šฉ์ž ์ธ์ฆ์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๋Š” ํ† ํฐ ์ž์ฒด์— ํฌํ•จํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„๋„์˜ ์ธ์ฆ ์ €์žฅ์†Œ๊ฐ€ ํ•„์š”์—†๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค ํ™˜๊ฒฝ์—์„œ ์ค‘์•™ ์ง‘์ค‘์‹ ์ธ์ฆ ์„œ๋ฒ„์™€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ์‰ฌ์šด ์ธ์ฆ ๋ฐ ์ธ๊ฐ€ ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ณ„ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์—๋Š” ํ† ํฐ ๊ฒ€์ฆ๊ณผ ๊ฒ€์ฆ์— ํ•„์š”ํ•œ ๋น„๋ฐ€ ํ‚ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ธฐ์œ„ํ•œ ๋ฏธ๋“ค์›จ์–ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ฆ์€ ์„œ๋ช… ๋ฐ ํด๋ ˆ์ž„๊ณผ ๊ฐ™์€ ๋ช‡ ๊ฐ€์ง€ ๋งค๊ฐœ ๋ณ€์ˆ˜๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ๊ฒƒ๊ณผ ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜๋Š” ๊ฒฝ์šฐ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.ํ† ํฐ์ด ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์„œ๋ช…๋˜์—ˆ๋Š”์ง€ ํ™•์ธํ•˜๋Š” ๊ฒƒ์€ CPU ์‚ฌ์ดํด์„ ํ•„์š”๋กœํ•˜๋ฉฐ IO ๋˜๋Š” ๋„คํŠธ์›Œํฌ ์•ก์„ธ์Šค๊ฐ€ ํ•„์š”ํ•˜์ง€ ์•Š์œผ๋ฉฐ ์ตœ์‹  ์›น ์„œ๋ฒ„ ํ•˜๋“œ์›จ์–ด์—์„œ ํ™•์žฅํ•˜๊ธฐ๊ฐ€ ์‰ฝ์Šต๋‹ˆ๋‹ค.

 

JSON ์›น ํ† ํฐ์˜ ์‚ฌ์šฉ์„ ๊ถŒ์žฅํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์ด์œ ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

• URL ํŒŒ๋ผ๋ฏธํ„ฐ์™€ ํ—ค๋”๋กœ ์‚ฌ์šฉ

• ์ˆ˜ํ‰ ์Šค์ผ€์ผ์ด ์šฉ์ด

• ๋””๋ฒ„๊น… ๋ฐ ๊ด€๋ฆฌ๊ฐ€ ์šฉ์ด

• ํŠธ๋ž˜ํ”ฝ ๋Œ€ํ•œ ๋ถ€๋‹ด์ด ๋‚ฎ์Œ

• REST ์„œ๋น„์Šค๋กœ ์ œ๊ณต ๊ฐ€๋Šฅ

• ๋‚ด์žฅ๋œ ๋งŒ๋ฃŒ

• ๋…๋ฆฝ์ ์ธ JWT

 

JWT ๋‹จ์ 

• ํ† ํฐ์€ ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ๋˜์–ด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ์กฐ์ž‘ํ•˜๋”๋ผ๋„ ํ† ํฐ์„ ์ง์ ‘ ์ ์šฉํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

๋” ๋งŽ์€ ํ•„๋“œ๊ฐ€ ์ถ”๊ฐ€๋˜๋ฉด ํ† ํฐ์ด ์ปค์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

• ๋น„์ƒํƒœ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ† ํฐ์€ ๊ฑฐ์˜ ๋ชจ๋“  ์š”์ฒญ์— ๋Œ€ํ•ด ์ „์†ก๋˜๋ฏ€๋กœ ๋ฐ์ดํ„ฐ ํŠธ๋ž˜ํ”ฝ ํฌ๊ธฐ์— ์˜ํ–ฅ์„ ๋ฏธ์น  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ƒํ™ฉ์—์„œ JWT ๊ฐ€ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

• ํšŒ์› ์ธ์ฆ:

JWT ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฐ€์žฅ ํ”ํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค ์ž…๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ์„ ํ•˜๋ฉด, ์„œ๋ฒ„๋Š” ์‚ฌ์šฉ์ž์˜ ์ •๋ณด๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœํ•œ ํ† ํฐ์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.๊ทธ ํ›„, ์‚ฌ์šฉ์ž๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ํ•  ๋•Œ ๋งˆ๋‹ค JWT๋ฅผ ํฌํ•จํ•˜์—ฌ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ์—์„œ ์š”์ฒญ์„ ๋ฐ›์„๋•Œ ๋งˆ๋‹ค, ํ•ด๋‹น ํ† ํฐ์ด ์œ ํšจํ•˜๊ณ  ์ธ์ฆ๋๋Š”์ง€ ๊ฒ€์ฆ์„ ํ•˜๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญํ•œ ์ž‘์—…์— ๊ถŒํ•œ์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•˜์—ฌ ์ž‘์—…์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„์—์„œ๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์„ธ์…˜์„ ์œ ์ง€ ํ•  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธ๋˜์–ด์žˆ๋Š”์ง€ ์•ˆ๋˜์–ด์žˆ๋Š”์ง€ ์‹ ๊ฒฝ ์“ธ ํ•„์š”๊ฐ€ ์—†๊ณ , ์‚ฌ์šฉ์ž๊ฐ€ ์š”์ฒญ์„ ํ–ˆ์„๋•Œ ํ† ํฐ๋งŒ ํ™•์ธํ•˜๋ฉด ๋˜๋ฏ€๋กœ ์„ธ์…˜ ๊ด€๋ฆฌ๊ฐ€ ํ•„์š” ์—†์–ด์„œ ์„œ๋ฒ„ ์ž์›๊ณผ ๋น„์šฉ์„ ์ ˆ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

• ์ •๋ณด ๊ต๋ฅ˜:

JWT๋Š” ๋‘ ๊ฐœ์ฒด ์‚ฌ์ด์—์„œ ์•ˆ์ •์„ฑ ์žˆ๊ฒŒ ์ •๋ณด๋ฅผ ๊ตํ™˜ํ•˜๊ธฐ์— ์ข‹์€ ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค. ๊ทธ ์ด์œ ๋Š”, ์ •๋ณด๊ฐ€ ์„œ๋ช…์ด ๋˜์–ด์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ •๋ณด๋ฅผ ๋ณด๋‚ธ์ด๊ฐ€ ๋ฐ”๋€Œ์ง„ ์•Š์•˜๋Š”์ง€, ๋˜ ์ •๋ณด๊ฐ€ ๋„์ค‘์— ์กฐ์ž‘๋˜์ง€๋Š” ์•Š์•˜๋Š”์ง€ ๊ฒ€์ฆํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.