Learn-json-web-tokens: README์˜ ์œ„ํ—˜ํ•˜๊ณ  ์ž˜๋ชป๋œ ์ •๋ณด

์— ๋งŒ๋“  2016๋…„ 06์›” 06์ผ  ยท  18์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: dwyl/learn-json-web-tokens

๋ฌธ์ œ๋ฅผ ํ•˜๋‚˜์”ฉ ํ•ด๊ฒฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

์ฟ ํ‚ค ์—†์ด ์›น์‚ฌ์ดํŠธ/์•ฑ ๋ณดํ˜ธ

์ด๊ฒƒ์€ ๋ณธ์งˆ์ ์œผ๋กœ ๋ฐ”๋žŒ์งํ•˜์ง€ _์•Š์Šต๋‹ˆ๋‹ค_. ์ฟ ํ‚ค๋Š” ๋งค์šฐ ํŠน์ •ํ•œ ๋ชฉ์ ์„ ์œ„ํ•ด ์กด์žฌํ•˜๋ฉฐ ๊ทธ ๋ชฉ์ ์„ ์œ„ํ•ด ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค.

์ฟ ํ‚ค๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์€ ์›น์‚ฌ์ดํŠธ์— ์„ฑ๊ฐ€์‹  ์ฟ ํ‚ค ๋ฉ”์‹œ์ง€๊ฐ€ ์—†๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค(์ฐธ์กฐ: e-Privacy Directive)

์ด๊ฒƒ์€ ์ „์ž ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ์ง€์นจ์ด ์ž‘๋™ํ•˜๋Š” ๋ฐฉ์‹์ด ์•„๋‹™๋‹ˆ๋‹ค . ๊ธฐ์ˆ ์ ์œผ๋กœ ํ•„์š”ํ•œ ์„ธ์…˜(์ฆ‰, ๋ถ„์„/์ถ”์ /๋“ฑ์„ ์œ„ํ•œ ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ณ„์ • ๋˜๋Š” ์œ ์‚ฌํ•œ ์ž‘์—…์„ ์ถ”์ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ)์€ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋™์˜ ์ฒด๊ณ„์— ํ•ด๋‹นํ•˜์ง€ _์•Š์Šต๋‹ˆ๋‹ค_.

๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฟ ํ‚ค๋Š” ์ง€์นจ ์–ด๋””์—๋„ ๋ช…์‹œ์ ์œผ๋กœ ์–ธ๊ธ‰๋˜์ง€ _์•Š์œผ๋ฉฐ_ ์ฐธ์กฐํ•  ์˜๋„๋„ ์—†์Šต๋‹ˆ๋‹ค. ๋น„ํ•„์ˆ˜์ ์ธ ๋ชฉ์ ์œผ๋กœ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์ด ์‚ฌ์šฉ์ž ์‹œ์Šคํ…œ์— ์ €์žฅํ•˜๋Š” _๋ชจ๋“ _ ์ข…๋ฅ˜์˜ ์˜๊ตฌ ์‹๋ณ„์ž๋Š” ์ง€์นจ์— ํ•ด๋‹นํ•˜๋ฉฐ ์—ฌ๊ธฐ์—๋Š” ์ €์žฅ๋œ JWT๊ฐ€ ํฌํ•จ๋ฉ๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ๋ฉ”์ปค๋‹ˆ์ฆ˜์— ์˜ํ•ด.

์ƒํƒœ ๋น„์ €์žฅ ์ธ์ฆ(์ˆ˜ํ‰ ํ™•์žฅ ๊ฐ„์†Œํ™”)

์ด๊ฒƒ์€ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. '์ƒํƒœ ๋น„์ €์žฅ ์„ธ์…˜'์€ ๋ณด์•ˆ๊ณผ ๊ด€๋ จํ•˜์—ฌ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋งŽ์€ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ๋„์ž…ํ•ฉ๋‹ˆ๋‹ค.

  • ํ† ํฐ์„ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค(๋งŒ๋ฃŒ๋˜์ง€ ์•Š์Œ!). ๊ณ„์ •์ด ์†์ƒ๋œ ๊ฒƒ์œผ๋กœ ํ™•์ธ๋œ ํ›„ ์ƒํƒœ ์ €์žฅ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‹ค์‹œ ๋„์ž…ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ์„ธ์…˜ ๋ฐ์ดํ„ฐ ๋ถ€์‹ค; ์ƒํƒœ ์ €์žฅ ์•„ํ‚คํ…์ฒ˜๋ฅผ ๋‹ค์‹œ ๋„์ž…ํ•˜์ง€ ์•Š๊ณ ๋Š” ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ตœ์‹  ์ƒํƒœ๋กœ ์œ ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

... ๊ฑฐ์˜ ์•„๋ฌด๋„ ์‹ค์ œ๋กœ ๊ฐ–๊ณ  ์žˆ์ง€ ์•Š์€ ๋ฌธ์ œ๋ฅผ 'ํ•ด๊ฒฐ'ํ•˜๋Š” ๋™์•ˆ - 99.99%์˜ ๊ฒฝ์šฐ ์„ธ์…˜์„ stateless๋กœ ํ™•์žฅํ•  ํ•„์š”๊ฐ€ _ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค_.

์ „์šฉ ์ˆ˜์ง ํ™•์žฅ ์„ธ์…˜ ์Šคํ† ๋ฆฌ์ง€ ์„œ๋ฒ„ ์‹คํ–‰(์˜ˆ: Redis ์‚ฌ์šฉ), '๊ณ ์ • ์„ธ์…˜', ์ง€๋ฆฌ์ ์œผ๋กœ ํด๋Ÿฌ์Šคํ„ฐ๋œ ์„ธ์…˜ ์„œ๋ฒ„ ๋“ฑ๊ณผ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๊ธฐ์ˆ ์ด ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค. Reddit, _๊ฑฐ์˜ ํ™•์‹คํžˆ_ ์ƒํƒœ ๋น„์ €์žฅ ์„ธ์…˜์ด ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

CSRF(๊ต์ฐจ ์‚ฌ์ดํŠธ ์š”์ฒญ ์œ„์กฐ) ๊ณต๊ฒฉ์„ ๋ฐฉ์ง€(์™„ํ™”)ํ•ฉ๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋ฏฟ์„ ์ˆ˜ ์—†์„ ์ •๋„๋กœ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๊ณ  ํ•ด๋กœ์šด ์ง„์ˆ ์ž…๋‹ˆ๋‹ค. JWT๋Š” CSRF ์™„ํ™”๊ฐ€ _์•„๋‹™๋‹ˆ๋‹ค. JWT ์ž‘์—…์—๋Š” ๋Œ€๋žต ๋‘ ๊ฐ€์ง€ ์„ ํƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ฟ ํ‚ค์— ์ €์žฅ: ์ด์ œ CSRF์— ๋‹ค์‹œ ์ทจ์•ฝํ•ด์ง‘๋‹ˆ๋‹ค. CSRF๊ฐ€ ์ž‘๋™ํ•˜๋Š” ๋ชจ๋“  ์ด์œ ๋Š” ํ˜ธ์ŠคํŠธ ์ด๋ฆ„์— ๋Œ€ํ•œ ๋ชจ๋“  ์š”์ฒญ๊ณผ ํ•จ๊ป˜ ์ž๋™์œผ๋กœ ์ „์†ก๋˜๋Š” ์ž๊ฒฉ ์ฆ๋ช…์— ์˜์กดํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ์ž๊ฒฉ ์ฆ๋ช…์˜ _ํ˜•์‹_์€ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋‹ค๋ฅธ ๊ณณ์— ๋ณด๊ด€ํ•˜์‹ญ์‹œ์˜ค. ์™„์ „ํžˆ ์ƒˆ๋กœ์šด ์œ ํ˜•์˜ ์ทจ์•ฝ์ ์ด ๋„์ž…๋˜์—ˆ์œผ๋ฉฐ _๊ทธ๋ฆฌ๊ณ _ ์ด์ œ ์‚ฌ์ดํŠธ๊ฐ€ ์ž‘๋™ํ•˜๊ธฐ ์œ„ํ•ด ๋ถˆํ•„์š”ํ•˜๊ฒŒ JavaScript๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

๊ธฐ๋ณธ์ ์œผ๋กœ JWT๋Š” ์„ธ์…˜์šฉ์ด _์•„๋‹Œ_์ž…๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค JWT๋Š” ์ฃผ๋กœ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ์ œ3์ž๋ฅผ ํ†ตํ•ด ์ฒญ๊ตฌ๋ฅผ ์ „์†กํ•˜๋Š” ๋™์‹œ์— ๋ณ€์กฐ๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ตœ์†Œํ•œ ์ „์ฒด "์™œ?" ์„น์…˜์€ ์ œ๊ฑฐํ•ด์•ผ ํ•˜์ง€๋งŒ(๋‹จ์ˆœํžˆ ์ž˜๋ชป๋˜๊ณ  ์œ ํ•ดํ•œ ์กฐ์–ธ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์—) ์†”์งํžˆ ์ „์ฒด ์ €์žฅ์†Œ์˜ ์ „์ œ์ด๋ฏ€๋กœ ์ „์ฒด ์ €์žฅ์†Œ์˜ ์กด์žฌ๋ฅผ ์žฌ๊ณ ํ•ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋“ค์—๊ฒŒ ์ด๋ ‡๊ฒŒ ํ•ด๋กœ์šด ์กฐ์–ธ์„ ํ•˜๋Š” ๊ฒƒ์€ _์‹ฌ๊ฐํ•˜๊ฒŒ_ ๋ฌด์ฑ…์ž„ํ•ฉ๋‹ˆ๋‹ค.

enhancement help wanted

๋ชจ๋“  18 ๋Œ“๊ธ€

์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋ณด๊ธฐ ์‹œ์ž‘ํ•œ์ง€ โ€‹โ€‹์–ผ๋งˆ ๋˜์ง€ ์•Š์€ ์‚ฌ๋žŒ์œผ๋กœ์„œ ์ƒ๊ฐํ•  ๊ฑฐ๋ฆฌ๋ฅผ ํ™•์‹คํžˆ ์ œ๊ณตํ•˜๊ณ  ์žˆ๋Š” ์šฐ๋ ค ์‚ฌํ•ญ์„ ์ž˜ ์ƒ๊ฐํ•˜๊ณ  ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค. Node.js๋กœ JWT ์ธ์ฆ ์ž‘์—… ์˜ˆ์ œ๋ฅผ ๋งŒ๋“œ๋Š” ๋น ๋ฅธ ์˜ˆ์ œ๋ฅผ ์ฐพ๊ณ  ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. JWT์— ๋Œ€ํ•œ ์ €์˜ ๊ด€์‹ฌ์€ CORS ๋ฌธ์ œ๋ฅผ ํ”ผํ•˜๋ฉด์„œ REST API ๋ฐ js ํด๋ผ์ด์–ธํŠธ ๋ชจ๋‘์— ๋Œ€ํ•œ ์„ธ์…˜ ๊ด€๋ฆฌ์— ๋Œ€ํ•œ ์ตœ์‹  ๋ชจ๋ฒ” ์‚ฌ๋ก€ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋ณด์•ˆ์— ์•ฝ๊ฐ„ ๊ด€์‹ฌ์ด ์žˆ์ง€๋งŒ ์ด๊ฒƒ์€ OAUTH์™€ ๊ฐ™์€ ๋ณด๋‹ค ํฌ๊ด„์ ์ธ ๋ณด์•ˆ ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ํ† ํฐ์ด ํ•  ์ˆ˜ ์žˆ๋Š” ์—ญํ• ์— ๊ฐ์‚ฌํ•˜์ง€๋งŒ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋™๊ธฐ๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฒ˜์Œ ์ฝ์—ˆ์„ ๋•Œ JWT ์‚ฌ์šฉ ๋“ฑ์— ๋Œ€ํ•œ ์ง€์‹์„ ์Œ“์œผ๋ฉด์„œ ์ €์ž๊ฐ€ ์ˆ˜์ง‘ํ•œ ๋งŽ์€ ๋ฉ”๋ชจ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์˜€์Šต๋‹ˆ๋‹ค. ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ํˆฌ์ž๋Š” ๊ฑฐ์˜ ์—†์ง€๋งŒ ์ผ๋ถ€ ์ง€์› ๋„๊ตฌ, ์ฐธ์กฐ์™€ ํ•จ๊ป˜ ํ”Œ๋žซํผ๋ณ„, ๋กœ๊ทธ์ธ/๋กœ๊ทธ์•„์›ƒ์˜ ์ตœ์†Œํ•œ์˜ ์ž‘์—… ์˜ˆ์ œ๋ฅผ ์œ„ํ•œ ์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ์˜จ๋ณด๋”ฉ ๊ธฐ์ˆ ์˜ ๊ธฐ์ดˆ๋กœ์„œ ๊ทธ๋ฆฌ๊ณ  ์ดˆ๋ณด์ž๋กœ์„œ ์ €๋Š” ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชฉํ‘œ๊ฐ€ ์ข‹๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์•„๋งˆ๋„ README๋Š” ์ด๋Ÿฌํ•œ ์œ ํ˜•์˜ JWT ์‚ฌ์šฉ ๋ชฉ์ ์— ๋Œ€ํ•ด ์ง„์ง€ํ•˜๊ฒŒ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ณ  ๋‹ค์‹œ ์ง‘์ค‘ํ•ด์•ผ ํ•  ํ•„์š”๊ฐ€ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ญ”๊ฐ€ ์ œ์•ˆํ•˜๋ ค๊ณ  ํ•˜๋ฉด ๊ธฐ์ฉ๋‹ˆ๋‹ค .. joepie91 - ๋‹น์‹ ์€ ๋ถ„๋ช…ํžˆ ๋ฌธ์ œ๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค .. ์ด๋Ÿฐ ์ข…๋ฅ˜์˜ JWT ์‚ฌ์šฉ์˜ ์ง„์ •ํ•œ ์ด์ ์ด ์‹ค์ œ๋กœ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

์•ˆ๋…•ํ•˜์„ธ์š” @joepie91๋‹˜ , ์šฐ๋ฆฌ๋Š” JWT์— ๋Œ€ํ•œ ์šฐ๋ฆฌ์˜ ๋…ธํŠธ๋ฅผ _์ฝ๊ณ _ ๋ฐœ๊ฒฌํ•œ _stoked_์ž…๋‹ˆ๋‹ค!
์‹œ๊ฐ„์„ ๋‚ด์–ด ์ด ๋ฌธ์ œ๋ฅผ ์—ด์–ด ์šฐ๋ ค ์‚ฌํ•ญ์„ ์ œ๊ธฐํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค. โค๏ธ
๊ท€ํ•˜์˜ ์šฐ๋ ค ์‚ฌํ•ญ์„ _๋ณ„๋„์˜_ ๋ฌธ์ œ๋กœ ๋‚˜๋ˆ„๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ๋ฒˆํ˜ธ๋ฅผ ๋งค๊ฒจ ๋…ผ์˜ํ•˜๊ธฐ ์‰ฝ๋„๋ก ํ•ด์ฃผ์‹œ๋ฉด _๊ธฐ์ฉ๋‹ˆ๋‹ค_.

์šฐ๋ฆฌ๋Š” ์ด ๋ฉ”๋ชจ์˜ ๋‚ด์šฉ์ด "_Dangerous_"๋ผ๋Š” ๊ฒƒ์— _์ •์ค‘ํžˆ_ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค .

_ ์ฟ ํ‚ค _ > EU ePrivacy ์ง€์นจ Recital 25 , cookies _ ๋ช…์‹œ์ ์œผ๋กœ _ 5๋ฒˆ
eu-privacy-directive-cookies
๋ณด๋‹ค:
https://en.wikipedia.org/wiki/Directive_on_Privacy_and_Electronic_Communications#Cookies
๋˜๋Š”:
http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX :32002L0058:EN:HTML

๋ฌผ๋ก  _๋งŽ์€_ ์›น์‚ฌ์ดํŠธ/์•ฑ(_ํƒ€์‚ฌ ์ถ”์  ์ฟ ํ‚ค ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ_)์€ โ€˜strictly necessary for the delivery of a service requested by the userโ€™ ...์— ์†ํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ์ฟ ํ‚ค ๋ฅผ https://github.com/dwyl/hapi-auth-jwt2#want -to-sendstore-your-jwt-in-a-cookie

์šฐ๋ฆฌ๊ฐ€ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” /์— ํ† ํฐ ๊ฒƒ์„ _agree_ ๋™์•ˆ _> _localStorage์— JWT๋ฅผ ์ €์žฅ localStorage ์ž๋ฐ” ์Šคํฌ๋ฆฝํŠธ๋ฅผ _required ์žˆ์Œ์„ ์˜๋ฏธ _we ์šฐ๋ฆฌ๋Š” ์ ์ง„์  ๊ฐœ์„ ์„ ์„ ํ˜ธ ํ•˜๋‚˜ ๊ฐ™์ดํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค (_, ์ด๊ฒƒ์€ ๋‹ค๋ฅธ ์˜ต์…˜์„์ฃผ์˜ํ•˜๋Š” ์˜๋ฏธ๋˜์—ˆ๋‹ค ..._). localStorage ๋Š” BaaS๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— "_Backend-as-a-Service_"๋กœ ๊ตฌ์ถ•๋œ _ ๋ชจ๋“  _ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค... Google Firebase๋ฅผ ์‚ฌ์šฉํ•˜๋Š” 50๋งŒ ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ทธ๊ฒƒ์„ "_์ž˜๋ชป_"ํ•˜๊ณ ...? (_์ด๊ฒƒ์€ ํ›Œ๋ฅญํ•œ - ๋ณ„๋„์˜ ํ† ๋ก ์ด ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค...!_)

์ƒํƒœ ๋น„์ €์žฅ ์„ธ์…˜ ์€ ๊ธฐ๋ณธ ์ œ๊ณต exp (_๋งŒ๋ฃŒ ์‹œ๊ฐ„ _) ์˜ต์…˜์ด ์žˆ๊ธฐ ์„ธ์…˜ ID ( jti ) _inside_ Redis ์Šคํ† ์–ด์—์„œ ์กฐํšŒ๋˜๋Š” JWT ๋Š” JWT๊ฐ€ ๊ฒ€์ฆ๋œ _ํ›„_์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์•„์›ƒํ•˜๊ฑฐ๋‚˜ ์žฅ์น˜๋ฅผ ๋„๋‚œ๋‹นํ•˜์—ฌ ํ™œ์„ฑ ์„ธ์…˜์„ ์ทจ์†Œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ์…˜์„ _ ๋ฌดํšจํ™” _ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ˆ, JWT์˜ _primary_ ๋ชฉ์ ์€ pass claims between parties in web application environment ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฐ”๋กœ ์ด๊ฒƒ์ด ์šฐ๋ฆฌ๊ฐ€ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” _์ •ํ™•ํžˆ_์ž…๋‹ˆ๋‹ค.

์„ธ์…˜ ID ๋˜๋Š” ํ† ํฐ์€ ๋‹จ์ˆœํžˆ ์„œ๋ฒ„ ์ธก์—์„œ ๊ฒ€์‚ฌ๋˜๋Š” ์ž„์˜์˜ ๋ฌธ์ž์—ด์ผ ์ˆ˜ _์ˆ˜ ์žˆ์ง€๋งŒ_ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ _ํ˜•์‹_ ๋ฐ _์„œ๋ช…_ํ•˜๊ธฐ๋กœ _๊ฒฐ์ •_ํ–ˆ์Šต๋‹ˆ๋‹ค.

๊ฒฐ๋ก : readme๋ฅผ _clarify_๋กœ ์—…๋ฐ์ดํŠธํ•ฉ์‹œ๋‹ค. ๐Ÿ‘

@nelsonic ์ด ์ œ์•ˆํ•œ ๋Œ€๋กœ ์ œ๊ธฐ๋œ ๋ฌธ์ œ๋ฅผ ์ผ๋ จ์˜ ๋ฌธ์ œ๋กœ ๋ถ„ํ• ํ•˜๊ธฐ๋ณด๋‹ค๋Š” ๊ตฌํ˜„์˜ ์˜๋„์™€ ๋ชฉ์ ์ด README์˜ ๋ฒ”์œ„์—์„œ ๋ช…ํ™•ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” @joepie91 ์˜ ๋ฌธ์ œ๋ฅผ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋งฅ๋ฝ์—์„œ JWT ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋น„ํŒ์ด๋‚˜ ์ฟ ํ‚ค ์ง€์›์ด ์šฐ์›”ํ•˜๋‹ค๊ณ  ์ฝ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค JWT์— ๋Œ€ํ•œ ์„ค๋ช…์ด JWT๋ฅผ ์„ ํƒํ•œ ์ด์œ ๋ฅผ ๊ณผ์žฅํ•˜๊ฑฐ๋‚˜ ์ž˜๋ชป ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์ œ์‹œ๋œ๋‹ค๋Š” ๋น„ํŒ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
#55(JWT๊ฐ€ ์•”ํ˜ธํ™”๊ฐ€ ์•„๋‹˜์„ ๋ช…ํ™•ํžˆ ํ•˜์„ธ์š”...)์—๋„ ๊ฐ™์€ ์šฐ๋ ค๊ฐ€ ๋‚˜ํƒ€๋‚ฉ๋‹ˆ๋‹ค.

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

README๊ฐ€ ์œ„ํ—˜ํ•˜๋‹ค๊ณ  ํ•„์—ฐ์ ์œผ๋กœ ๋งํ•  ์ˆ˜ ์žˆ์„์ง€ ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค. ์•ฝ๊ฐ„ ๊ฐ•ํ•œ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ฟ ํ‚ค > EU ePrivacy ์ง€์นจ Recital 25์—์„œ ์ฟ ํ‚ค๊ฐ€ ๋ช…์‹œ์ ์œผ๋กœ 5๋ฒˆ ์–ธ๊ธ‰๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

localStorage๋Š” BaaS๊ฐ€ ์ผ๋ฐ˜์ ์œผ๋กœ ์ฟ ํ‚ค๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— "Backend-as-a-Service"๋กœ ๊ตฌ์ถ•๋œ ๋ชจ๋“  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋งŒ๋“ค์–ด์ง€๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค...

์ด๊ฒƒ์€ ๊ด€๋ จ์ด ์—†์œผ๋ฉฐ ํ•ด๋‹น ์„œ๋น„์Šค์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹น์‹ ์˜ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์„ธ์…˜์— JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ์ •๋‹นํ™”ํ•˜์ง€ _์•Š์Šต๋‹ˆ๋‹ค_.

Google Firebase๋ฅผ ์‚ฌ์šฉํ•˜๋Š” 50๋งŒ ๋ช…์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ "์ž˜๋ชป"ํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ์ œ์•ˆํ•˜๋Š” ๊ฑด๊ฐ€์š”...?

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

Stateless ์„ธ์…˜์€ ๋‚ด์žฅ๋œ exp(๋งŒ๋ฃŒ ์‹œ๊ฐ„) ์˜ต์…˜์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JWT์—์„œ ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์šฐ๋ฆฌ๋Š” ์„ธ์…˜์„ ์ƒํƒœ ๋น„์ €์žฅ์œผ๋กœ ๋งŒ๋“ค์ง€ ์•Š๊ณ  ๋Œ€์‹  JWT ๋‚ด๋ถ€์—์„œ ์กฐํšŒ๋˜๋Š” ์„ธ์…˜ ID(jti)๋ฅผ ์ €์žฅํ•˜๋„๋ก ์„ ํƒ/์„ ํ˜ธํ•ฉ๋‹ˆ๋‹ค. JWT๊ฐ€ ํ™•์ธ๋œ ํ›„ Redis ์ €์žฅ์†Œ์ž…๋‹ˆ๋‹ค. ์ฆ‰, ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์•„์›ƒํ•˜๊ฑฐ๋‚˜ ์žฅ์น˜๋ฅผ ๋„๋‚œ๋‹นํ•˜์—ฌ ํ™œ์„ฑ ์„ธ์…˜์„ ์ทจ์†Œํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ์…˜์„ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์ด ์‹œ์ ์—์„œ ๋” ์ด์ƒ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹ค์งˆ์ ์ธ ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค. express-session ๋˜๋Š” ์Šคํƒ์— ๋งž๋Š” ๋‹ค๋ฅธ ์ „ํˆฌ ํ…Œ์ŠคํŠธ ๋ฐ ๋™๋ฃŒ ๊ฒ€ํ†  ์„ธ์…˜ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? JWT์— ๋Œ€ํ•œ ๊ถŒ์žฅ ์‚ฌํ•ญ์€ ์—ฌ๊ธฐ์—์„œ ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์™œ๋ƒํ•˜๋ฉด ์‚ฌ๋žŒ๋“ค์€ _์ฒ˜์Œ๋ถ€ํ„ฐ ์ž์‹ ์˜ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ์‹คํ–‰ํ•ด์„œ๋Š” ์•ˆ ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.

์„ธ์…˜ ๋งŒ๋ฃŒ๋Š” _์„œ๋ฒ„ ์ธก_ ์ฒ˜๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ JWT์˜ exp ๋Š” ๋ณธ์งˆ์ ์œผ๋กœ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

์˜ˆ, JWT์˜ ์ฃผ์š” ๋ชฉ์ ์€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ์—์„œ ๋‹น์‚ฌ์ž ๊ฐ„์— ํด๋ ˆ์ž„์„ ์ „๋‹ฌํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

JWT๋Š” "์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ํ™˜๊ฒฝ"๊ณผ ์กฐ๊ธˆ๋„ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

์„ธ์…˜ ID ๋˜๋Š” ํ† ํฐ์€ ๋‹จ์ˆœํžˆ ์„œ๋ฒ„ ์ธก์—์„œ ํ™•์ธ๋˜๋Š” ์ž„์˜์˜ ๋ฌธ์ž์—ด์ผ ์ˆ˜ ์žˆ์ง€๋งŒ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ˜•์‹ํ™”ํ•˜๊ณ  ์„œ๋ช…ํ•˜๊ธฐ๋กœ ๊ฒฐ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ ์Šคํƒ์— ๋Œ€ํ•ด ์ „ํˆฌ ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ์„ธ์…˜ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. ์—ฌ๊ธฐ์„œ JWT๋Š” ์ž˜๋ชป๋œ ๊ถŒ์žฅ ์‚ฌํ•ญ ์ž…๋‹ˆ๋‹ค.

์šฐ๋ฆฌ๋Š” ์ด ๋ฉ”๋ชจ์˜ ๋‚ด์šฉ์ด "์œ„ํ—˜ํ•˜๋‹ค"๋Š” ์ ์— ์ •์ค‘ํ•˜๊ฒŒ ๋™์˜ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹น์‹ ์€ ๋™์˜ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์ง€๋งŒ ๊ทธ๊ฒƒ์ด ๋ฐ”๋กœ ๊ทธ๊ฒƒ์ž…๋‹ˆ๋‹ค. JWT๋ฅผ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋„ˆ๋ฌด ๋งŽ์Šต๋‹ˆ๋‹ค. ์ด ์ค‘ ๋ช‡ ๊ฐ€์ง€๋Š” ์ด ์ €์žฅ์†Œ์˜ README์— ์˜ํ•ด ์–ธ๊ธ‰๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ๋„ค, ํ•ด๋กญ์Šต๋‹ˆ๋‹ค.

@pscott-au: joepie91 - ๋‹น์‹ ์€ ๋ถ„๋ช…ํžˆ ๋ฌธ์ œ๋ฅผ ์ž˜ ์ดํ•ดํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค .. JWT์˜ ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์‚ฌ์šฉ์˜ ์ง„์ •ํ•œ ์ด์ ์ด ์‹ค์ œ๋กœ ๋ฌด์—‡์ธ์ง€์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ์ƒ๊ฐ์„ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

Reddit ๊ทœ๋ชจ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๋Š” ํ•œ ํ‘œ์ค€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค. JWT๊ฐ€ ์œ ์šฉํ•œ ๊ฒฝ์šฐ์˜ ๋ช‡ ๊ฐ€์ง€ ์ผ๋ฐ˜์ ์ธ ์˜ˆ:

  • Single Sign-On ๋ฉ”์ปค๋‹ˆ์ฆ˜(JWT๊ฐ€ ๋Œ€์ƒ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์„ธ์…˜์— ๋Œ€ํ•ด ์‚ฌ์šฉ์ž๊ฐ€ ๊ตํ™˜ํ•˜๋Š” ์ผํšŒ์„ฑ ์ธ์ฆ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ),
  • URL์„ ๊ณต์œ ํ•  ์ˆ˜ ์žˆ๋Š” ๋น„๊ณต๊ฐœ ์ด๋ฏธ์ง€์— ๋Œ€ํ•œ ์ž„์‹œ ์•ก์„ธ์Šค ํ† ํฐ,
  • ๊ธฐ๋ณธ์ ์œผ๋กœ ์„œ๋กœ๋ฅผ ์‹ ๋ขฐํ•˜๋Š” ๋‘ ์‹œ์Šคํ…œ์ด ์„œ๋กœ ์ง์ ‘ ์ ‘์ด‰ํ•˜๊ฑฐ๋‚˜ ๋ฐฑ์—”๋“œ๋ฅผ ๊ณต์œ ํ•˜์ง€ ์•Š๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋‹น์‚ฌ์ž๋ฅผ ํ†ตํ•ด ์•ฝ๊ฐ„์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตํ™˜ํ•ด์•ผ ํ•˜๋Š” ๋ชจ๋“  ์‹œ๋‚˜๋ฆฌ์˜ค์ž…๋‹ˆ๋‹ค.

ํ‘œ์ค€ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„ธ์…˜์˜ ๊ฒฝ์šฐ ์‚ฌ์šฉ ์ค‘์ธ ์Šคํƒ์— ๋Œ€ํ•ด ์ž˜ ํ…Œ์ŠคํŠธ๋œ ์„ธ์…˜ ๊ตฌํ˜„์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: Express๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ express-session ).

๋‚ด ๊ฒฝํ—˜์˜ ์ผ๋ถ€์— ์‹ค์ œ๋กœ ๋„์ „ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ด ํ† ๋ก ์„ ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์•„๋งˆ๋„ JWT ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๊ฐœ์ธ์ ์ธ ๊ด€์‹ฌ์— ๋Œ€ํ•œ ๋ช‡ ๊ฐ€์ง€ ๋งฅ๋ฝ์ผ ๊ฒƒ์ž…๋‹ˆ๋‹ค(๋‚ด๊ฐ€ ์กฐ์‚ฌํ•  ์—ด์•…ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง ๋ฌธ์ œ๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” Firebase๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ œ์™ธํ•˜๊ณ ). ๋ชจ๋ฐ”์ผ ์•ฑ/SPA๋ฅผ ๋งŒ๋“ค ๋•Œ, ํŠนํžˆ ์—ฌ๋Ÿฌ ์„œ๋ฒ„/๋„๋ฉ”์ธ์—์„œ ์ œ๊ณต๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ JWT๊ฐ€ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ๋‹จ์ผ ์‚ฌ์ธ์˜จ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ดํ•ด๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ JS ๊ณต๊ฐ„์—์„œ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋˜๊ณ  CORS์˜ ๋„์ž…์ด ์ด์— ๋Œ€ํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ง„ํ™”ํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์„ธ์…˜ ์ฟ ํ‚ค์˜ ์‚ฌ์šฉ์ด ์ง„ํ™”ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .
์ˆ˜๋…„ ๋™์•ˆ ์ฟ ํ‚ค ์„ธ์…˜ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์›๋ž˜ ๊ธฐ๋ณธ ๋ฐ ๋‹ค์ด์ œ์ŠคํŠธ http ์ธ์ฆ๋ณด๋‹ค ํ›จ์”ฌ ๋” ๋‚˜์€ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ œ๊ณตํ–ˆ์œผ๋ฉฐ ์›น ๊ธฐ๋ฐ˜ ์•ฑ์— ์ฟ ํ‚ค ์„ธ์…˜ ๊ด€๋ฆฌ ์†”๋ฃจ์…˜์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ .. ์ง€๊ธˆ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์€ ๋ชจ๋ฐ”์ผ ๋˜๋Š” SPA์ด๋ฉฐ REST API๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค ์ฒ˜๋ฆฌ ํ•ญ๋ชฉ์„ ๋ฌถ๊ฑฐ๋‚˜ ์„ธ์…˜์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๊ฐ„๋‹จํ•œ ์ปฌ ์š”์ฒญ์œผ๋กœ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ JWT๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•˜๋Š” API๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ง๊ฐ์œผ๋กœ๋Š” JWT๋ฅผ ์ฟ ํ‚ค๋ณด๋‹ค ์˜ค๋ž˜ ์‹คํ–‰ํ•˜๋Š” ์„ธ์…˜์— ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋” ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ์ข‹์€ ์ง๊ด€๋ณด๋‹ค ๊ฒŒ์œผ๋ฆ„์ผ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ด์— ๋Œ€ํ•ด ๋ฐ˜์ถ”ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ•„์š”ํ•œ ๊ฒฝ์šฐ OAUTH ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ณด์•ˆ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋” ์ฒ ์ €ํ•˜๊ฒŒ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์„ธ์…˜์ด ์ด ์ˆ˜์ค€์˜ ๋ณด์•ˆ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‚˜์—๊ฒŒ ์ค‘์š”ํ•œ ๊ฒƒ์€ JWT ๊ธฐ๋ฐ˜ ์ธ์ฆ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํ–ฅํ›„ ์•„ํ‚คํ…์ฒ˜ ๋ณ€๊ฒฝ๊ณผ ๊ด€๋ จํ•˜์—ฌ ์ œ๊ณตํ•˜๋Š” ์œ ์—ฐ์„ฑ์ž…๋‹ˆ๋‹ค. JWT ์ธ์ฆ์„ ์˜ต์…˜์œผ๋กœ ์ œ๊ณตํ•˜๊ธฐ ์œ„ํ•ด ์ด์ „ ์ฝ”๋“œ๊ฐ€ ๋ฆฌํŒฉํ„ฐ๋ง๋˜์—ˆ์œผ๋ฉฐ ์ด๋กœ ์ธํ•ด ์œ ์ง€ ๊ด€๋ฆฌ ๋ณต์žก์„ฑ์ด ๋†€๋ผ์šธ ์ •๋„๋กœ ๊ฑฐ์˜ ์—†์—ˆ์ง€๋งŒ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ ํ–ฅํ›„ ๊ฐœ๋ฐœ์ด ๊ฐ„์†Œํ™”๋˜์—ˆ์œผ๋ฉฐ ์ฟ ํ‚ค ์„ธ์…˜๋ณด๋‹ค ๋ณธ์งˆ์ ์œผ๋กœ ์—ด๋“ฑํ•œ ๋ถ€๋ถ„์ด ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
์‚ฌ์‹ค ํŠนํžˆ ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ JWT ์‹œ๊ฐ„ ์ œํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ ์ด ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฅ์น˜๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ ์ด ์‹œ๊ฐ„ ์ œํ•œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ฑ์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ๋กœ๊ทธ์•„์›ƒ์‹œํ‚ค๊ฑฐ๋‚˜ ๋กœ๊ทธ์ธ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ €์—๊ฒŒ๋Š” ์„ธ์…˜ ์ฟ ํ‚ค์— ๋น„ํ•ด JWT์˜ ํ™•์žฅ์„ฑ ์ด์ ์— ๋Œ€ํ•œ ์„ค๋“๋ ฅ ์žˆ๋Š” ์ฃผ์žฅ์ด ๋ณ„๋กœ ์—†์Šต๋‹ˆ๋‹ค.
์ฟ ํ‚ค์—๋Š” ์ž์ฒด ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ธฐ๊ฐ„(์™„์ „ํžˆ ๊ด€๋ฆฌ๋˜๋Š” ์„œ๋ฒ„ ์ธก์ด ์•„๋‹˜)์ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JWT๋ฅผ ์„ธ์…˜ ์ฟ ํ‚ค๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ณ  ์ด ์ฟ ํ‚ค๋ฅผ ๊ฒฐํ•ฉํ•˜๋ฉด ํ˜ผ๋ž€์Šค๋Ÿฌ์šธ ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ œ์•ˆํ•˜๋Š” ์‚ฌ๋žŒ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค.
๋งŽ์€ ์ตœ์‹  JS ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์ฟ ํ‚ค๋ณด๋‹ค JWT์— ๋Œ€ํ•œ ์ง€์›์„ ๋” ๋งŽ์ด ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์Šคํƒ์— ๋Œ€ํ•ด ํ…Œ์ŠคํŠธ๋ฅผ ๊ฑฐ์นœ ๋™๋ฃŒ ๊ฒ€ํ†  ์†”๋ฃจ์…˜์ด ์‹ค์ œ๋กœ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ JWT๋ฅผ ์ง€ํ–ฅํ•  ์ˆ˜ ์žˆ์Œ์„ ์‹œ์‚ฌํ•ฉ๋‹ˆ๋‹ค. ์›น ์„œ๋น„์Šค์— ๋Œ€ํ•œ JWT์˜ ์ธ๊ธฐ๋Š” ๊ธฐ์ˆ ์ ์ธ ๋…ผ์Ÿ์ด ์•„๋‹ˆ์ง€๋งŒ, ๋ชจ๋“  ๊ฒƒ์ด ๋˜‘๊ฐ™์ด ์ž˜๋ชป๋œ ๊ฒƒ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ด€๋ จ์ด ์—†๋‹ค๊ณ  ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. Express๋Š” ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ dwyl ๊ทธ๋ฃน์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ์˜ ํ•ต์‹ฌ ์š”์†Œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ด์— ๋งž์ถœ ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.
๋‚˜๋Š” ์—ฌ์ „ํžˆ ์šฐ๋ คํ•˜๊ณ  ์žˆ์ง€๋งŒ ๋‹น์‹ ์˜ ์ฃผ์žฅ์— ์™„์ „ํžˆ ํ™•์‹ ํ•˜์ง€ ๋ชปํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‹น์‹ ์ด ๋™์˜ํ•  ์ˆ˜ ์žˆ๋Š” ๋‚ด ์˜๋„์˜ ์ผ๋ถ€๊ฐ€ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๋‚˜๋Š” README์— ์‹ฌ๊ฐํ•œ ์ ๊ฒ€์ด ํ•„์š”ํ•˜๊ณ  ์ฃผ์š” README๊ฐ€ ์•„๋‹Œ ๋ฐฐ๊ฒฝ ํ† ๋ก  ํ…์ŠคํŠธ๋กœ ๋” ์ž˜ ์ œ๊ฑฐ๋˜๊ฑฐ๋‚˜ ๋’ค๋กœ ๋ฐ€๋ ค๋‚˜๋Š” ๋ผ์ธ์ด ์žˆ๋‹ค๋Š” ๋ฐ ๋™์˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

(๋‚ด๊ฐ€ ์กฐ์‚ฌํ•  ์—ด์•…ํ•œ ์—”์ง€๋‹ˆ์–ด๋ง ๋ฌธ์ œ๋ฅผ ๋ฐฐ์šฐ๋Š” ๋ฐ ๊ด€์‹ฌ์ด ์žˆ๋Š” Firebase๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ œ์™ธํ•˜๊ณ )

๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๋Š” JS ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๋น„๊ณต๊ฐœ ์†Œ์Šค์ด๊ณ  ๋‹ค์†Œ ๋„์›€์ด ๋˜์ง€ ์•Š๋Š” ์˜ค๋ฅ˜ ์ถœ๋ ฅ์œผ๋กœ ๋‚œ๋…ํ™”๋˜์–ด ์žˆ์œผ๋ฉฐ "๋ฐฐ์—ด"๊ณผ ๊ฐ™์€ ๊ฒƒ์ด ์—†์œผ๋ฉฐ ํด๋ผ์ด์–ธํŠธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์‘๋‹ต์„ ๋ฐ›์ง€ ๋ชปํ•  ์ˆ˜ ์žˆ๋Š” ์ด์ƒํ•œ ๋ฒ„๊ทธ๊ฐ€ ๋งŽ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ถˆ๋ช…ํ™•ํ•œ ์ด์œ , ACL ์‹œ์Šคํ…œ์€ ์ž์ฒด ํŽธ์ง‘๊ธฐ์—์„œ๋„ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ๋น„ํ‘œ์ค€ JSON ๋ณ€ํ˜•์„ ์‚ฌ์šฉํ•˜๊ณ  JS API๋Š” ์ผ๋ฐ˜ ์ฝœ๋ฐฑ API๊ฐ€ ์•„๋‹Œ ์˜์‚ฌ ์ด๋ฒคํŠธ API๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค(๊ทธ๋Ÿฌ๋‚˜ ์ผ๊ด€๋˜๊ฒŒ ์ž‘๋™ํ•˜์ง€ ์•Š์Œ). ๊ณง.

๋ชจ๋ฐ”์ผ ์•ฑ/SPA๋ฅผ ๋งŒ๋“ค ๋•Œ, ํŠนํžˆ ์—ฌ๋Ÿฌ ์„œ๋ฒ„/๋„๋ฉ”์ธ์—์„œ ์ œ๊ณต๋˜๋Š” ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ JWT๊ฐ€ ์ž˜ ์–ด์šธ๋ฆฌ๋Š” ๋‹จ์ผ ์‚ฌ์ธ์˜จ ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค. ๋‚ด ์ดํ•ด๋Š” ๋ธŒ๋ผ์šฐ์ €์™€ JS ๊ณต๊ฐ„์—์„œ ๋ณด์•ˆ์ด ๊ฐ•ํ™”๋˜๊ณ  CORS์˜ ๋„์ž…์ด ์ด์— ๋Œ€ํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋„๋ก ์ง„ํ™”ํ•œ ๊ธฐ๊ฐ„ ๋™์•ˆ ์„ธ์…˜ ์ฟ ํ‚ค์˜ ์‚ฌ์šฉ์ด ์ง„ํ™”ํ–ˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. .

์ •ํ™•ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ํƒ€์‚ฌ API๋Š” ์ธ์ฆ ์š”๊ตฌ ์‚ฌํ•ญ์ด ๋‹ค๋ฅด๋ฉฐ ์„œ๋กœ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ์€ ํƒ€์‚ฌ API์™€ ํ†ต์‹ ํ•  ๋•Œ ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์˜๋ฏธ๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ์ง€๋งŒ SPA์ธ ๊ฒฝ์šฐ์—๋„ ์ž์ฒด ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ์—๋Š” ์˜๋ฏธ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋™์ผํ•œ ๋กœ๊ทธ์ธ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์—ฌ๋Ÿฌ ์ตœ์ข… ์‚ฌ์šฉ์ž ์„œ๋น„์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋Š” "์‹ฑ๊ธ€ ์‚ฌ์ธ์˜จ"๊ณผ๋„ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

CORS๋Š” ๋ณ„๋„์˜ ๋ฌธ์ œ์ด๋ฉฐ ์‹ค์ œ๋กœ ์ด์™€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ•˜์ง€๋งŒ .. ์ง€๊ธˆ ๋งŒ๋“ค๊ณ  ์žˆ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์•ฑ์€ ๋ชจ๋ฐ”์ผ ๋˜๋Š” SPA์ด๋ฉฐ REST API๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค ์ฒ˜๋ฆฌ ํ•ญ๋ชฉ์„ ๋ฌถ๊ฑฐ๋‚˜ ์„ธ์…˜์„ ์„ค์ •ํ•˜๊ธฐ ์œ„ํ•œ ์—ฌ๋Ÿฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜์ง€ ์•Š๊ณ  ๊ฐ„๋‹จํ•œ ์ปฌ ์š”์ฒญ์œผ๋กœ ์‰ฝ๊ฒŒ ํ…Œ์ŠคํŠธํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ JWT๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ๋งŒ ์ž‘๋™ํ•˜๋Š” API๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ตฌํ˜„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ ์™ธ์—๋„ cURL์€ ์ฟ ํ‚ค๋ฅผ ์ž˜ ์ง€์›ํ•˜๋ฉฐ httpie ๋˜๋Š” http-prompt ์™€ ๊ฐ™์€ ๋” ๋‚˜์€ API ํ…Œ์ŠคํŠธ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋งŽ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒฝ์šฐ OAUTH ๋ผ์ธ์„ ๋”ฐ๋ผ ๋ณด์•ˆ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋” ์ฒ ์ €ํ•˜๊ฒŒ ๋ณด์•ˆ์„ ์œ ์ง€ํ•˜๊ณ  ์‹ถ์ง€๋งŒ ์„ธ์…˜์ด ์ด ์ˆ˜์ค€์˜ ๋ณด์•ˆ์ด ํ•„์š”ํ•˜๋‹ค๊ณ  ํŒ๋‹จ๋˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์Šต๋‹ˆ๋‹ค.

์„ธ์…˜์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์ธก๋ฉด ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์ถฉ๋ถ„ํžˆ ์•ˆ์ „ํ•˜์ง€ ์•Š์œผ๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ๋ณธ์งˆ์ ์œผ๋กœ ์†์ƒ๋˜๊ณ  ์™„์ „ํžˆ ์ทจ์•ฝํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ์˜ˆ๋ฅผ ๋“ค๋ฉด. LocalStorage์— JWT๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์€ ๋”์ฐํ•œ ์ƒ๊ฐ์ž…๋‹ˆ๋‹ค.

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

์—ฌ๊ธฐ์—๋Š” 99.99%์˜ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ•„์š”๋กœ ํ•˜๋Š” ์œ ์—ฐ์„ฑ์ด ๋„์ž…๋˜์ง€ ์•Š์•˜์œผ๋ฉฐ, ์ด๋ฏธ ๋ถ€์‹ค ๋ฐ์ดํ„ฐ ๋ฐ ํ† ํฐ ๋ฌดํšจํ™” ๋ถˆ๊ฐ€๋Šฅ๊ณผ ๊ฐ™์ด ๋„์ž…๋˜๋Š” ๋ฌธ์ œ ์ค‘ ์ผ๋ถ€๋ฅผ ๊ฐ•์กฐํ–ˆ์Šต๋‹ˆ๋‹ค.

์‚ฌ์‹ค ํŠนํžˆ ๋ชจ๋ฐ”์ผ ์žฅ์น˜์—์„œ JWT ์‹œ๊ฐ„ ์ œํ•œ ๊ธฐ๋Šฅ์„ ์‚ฌ์šฉํ•˜๋ฉด ์ด์ ์ด ์žˆ์œผ๋ฉฐ ์ผ๋ถ€ ์ง€์› ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์—์„œ๋Š” ์ด๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ์žฅ์น˜๊ฐ€ ๋„คํŠธ์›Œํฌ์— ์—ฐ๊ฒฐ๋˜์–ด ์žˆ์ง€ ์•Š์„ ๋•Œ ์ด ์‹œ๊ฐ„ ์ œํ•œ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์•ฑ์—์„œ ์‚ฌ์šฉ์ž๋ฅผ ๋กœ๊ทธ์•„์›ƒ์‹œํ‚ค๊ฑฐ๋‚˜ ๋กœ๊ทธ์ธ ์ƒํƒœ๋กœ ๋‘˜ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

์ €์—๊ฒŒ๋Š” ์„ธ์…˜ ์ฟ ํ‚ค์— ๋น„ํ•ด JWT์˜ ํ™•์žฅ์„ฑ ์ด์ ์— ๋Œ€ํ•œ ์„ค๋“๋ ฅ ์žˆ๋Š” ์ฃผ์žฅ์ด ๋ณ„๋กœ ์—†์Šต๋‹ˆ๋‹ค.

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

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

์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ํ”„๋ ˆ์ž„์›Œํฌ๋Š” ์•„์ง ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

Express๋Š” ๋‚ด๊ฐ€ ์•„๋Š” ํ•œ dwyl ๊ทธ๋ฃน์—์„œ ์‚ฌ์šฉํ•˜๋Š” ์Šคํƒ์˜ ํ•ต์‹ฌ ์š”์†Œ๊ฐ€ ์•„๋‹ˆ๋ฏ€๋กœ ์ด์— ๋งž์ถœ ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์ด ๊ทธ๋“ค์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. Express๋Š” ํ•˜๋‚˜์˜ ์˜ˆ์ผ ๋ฟ์ด๋ฉฐ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๋ชจ๋“  ํ”„๋ ˆ์ž„์›Œํฌ์— ๋Œ€ํ•ด ์ž˜ ํ…Œ์ŠคํŠธ๋œ ์„ธ์…˜ ๊ตฌํ˜„์ด ์กด์žฌํ•ฉ๋‹ˆ๋‹ค.

๊ฒฐ๋ก ์€ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ฝ๊ณ  ์žˆ๋Š” ๋ชจ๋“  ๊ฐœ๋ฐœ์ž์—๊ฒŒ JWT์˜ ์‹ค์ œ ์ด์ ์€ ์ •ํ™•ํžˆ 0์ด๊ณ  ๋ช‡ ๊ฐ€์ง€ ๋‹จ์ ์ด๋‚˜ ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๊ฒƒ์€ ๋‹จ์ง€ ๊ฑด์ „ํ•œ ๊ธฐ์ˆ ์ ์ธ ์„ ํƒ์ด๋‚˜ ๊ถŒ์žฅ ์‚ฌํ•ญ์ด ์•„๋‹ˆ๋ฉฐ, ๊ทธ๊ฒƒ์œผ๋กœ ์ •๋ง ๋์ž…๋‹ˆ๋‹ค.

@joepie91 ๋‚˜๋Š” ๋‹น์‹ ์ด ์šฐ๋ฆฌ์˜ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ/๋…ธํŠธ๋ฅผ ์ฐพ์•˜๊ณ  ๊ทธ๊ฒƒ์„ ์ฝ๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ๊ธฐ ์œ„ํ•ด ์‹œ๊ฐ„์„ ํˆฌ์žํ–ˆ๋‹ค๋Š” ๊ฒƒ์— ์–ผ๋งˆ๋‚˜ _๊ธฐ๋ป_ํ–ˆ๋Š”์ง€ ๋งํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! ์ง„์‹ฌ์œผ๋กœ, ๋‚ด๊ฐ€ ๋‹น์‹ ์„ ์ง์ ‘ ๋งŒ๋‚˜๋ฉด ๋‹น์‹ ์ด ์ข‹์•„ํ•˜๋Š” ์Œ๋ฃŒ์˜ _ํŒ”๋ ˆํŠธ_๋ฅผ ์ค„ ๊ฒƒ์ž…๋‹ˆ๋‹ค! ๐Ÿบ

๋‚ด๊ฐ€ ๋‹น์‹ ์„ ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๊ธฐ๊ณ ์ž๋กœ ๋งŒ๋“ค๋ฉด _๊ฐœ์„ _์„ ์œ„ํ•œ ๋‚ด ๋Œ์–ด์˜ค๊ธฐ ์š”์ฒญ์„ ๊ฒ€ํ† ํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ? ๐Ÿ“

๋˜ํ•œ @AshleyPinner , @alfiepates , @sunny-g _์—ฌ๋Ÿฌ๋ถ„_ ์—ฌ๋Ÿฌ๋ถ„์€ ์ด _ํŠน์ •_ ํ† ๋ก ์„ ์–ด๋–ป๊ฒŒ ์šฐ์—ฐํžˆ ๋ฐœ๊ฒฌํ–ˆ์Šต๋‹ˆ๊นŒ? Redit/Hackernews์—์„œ ๋ฌธ์ œ๊ฐ€ ๊ณต์œ ๋˜์—ˆ์Šต๋‹ˆ๊นŒ? (_์‚ฌ๋žŒ๋“ค์ด ์šฐ๋ฆฌ ๊ฒŒ์‹œ๋ฌผ์„ ์–ด๋–ป๊ฒŒ ์ฐพ๋Š”์ง€ ๊ถ๊ธˆํ•ฉ๋‹ˆ๋‹ค..._)

๋‚˜๋Š” ๋ฉฐ์น  ๋™์•ˆ ์ด๊ฒƒ์„ ์”น์–ด ๋ณด์•˜๊ณ  ํ˜„๋Œ€ SPA ๋ฐ ๋ชจ๋ฐ”์ผ ์•ฑ์˜ ๊ธฐ์กด ์„ธ์…˜ ์ฟ ํ‚ค๋ณด๋‹ค JWT๋ฅผ ๊ธฐ๋ณธ ์„ ํƒ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋ฐ˜๋Œ€ํ•˜๋Š” ๋งŽ์€ ๋…ผ์Ÿ์— ์ฐธ์—ฌํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
ํŠน์ • ์š”๊ตฌ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ฟ ํ‚ค/JWT ์ธ์ฆ ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์žฅ๋‹จ์ ์„ ํ‰๊ฐ€ํ•˜๊ธฐ ์œ„ํ•ด ๊ฒฐ์ • ๋งคํŠธ๋ฆญ์Šค๋ฅผ ๊ตฌ์„ฑํ•˜๊ฑฐ๋‚˜ README๋ฅผ ๋‹ค์‹œ ์ž‘์„ฑํ•˜๊ธฐ ์ „์— ์ผ๋ จ์˜ ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๊ฑธ์ณ ์žฅ๋‹จ์ ์„ ์ž์„ธํžˆ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋ณต์žกํ•œ ์•ฑ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์‚ฌ๋žŒ๋“ค์ด ์ง๋ฉดํ•˜๋Š” ๋งŽ์€ ์‹ค์ œ ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ ๋œ ์šฐ์•„ํ•˜๊ฒŒ ํ•ด๊ฒฐ๋˜๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ์ฟ ํ‚ค ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ํฌ์Šคํ„ฐ๊ฐ€ ๋งŒ๋“œ๋Š” ์ธ์‹์€ JWT๊ฐ€ ์ตœ์‹  ์•ฑ์— ์ ํ•ฉํ•˜์ง€ ์•Š์€ ์ผ๋ถ€ ํ•ดํ‚น๋œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ฏธ์„ฑ์ˆ™ ๊ธฐ์ˆ ์ด๋ฉฐ ์ด ์ฃผ์žฅ์€ ์•„๋งˆ๋„ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๊ธฐ ์œ„ํ•ด ์™„์ „ํžˆ ์ž‘๋™ํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ„ํ—˜ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
์ด OATH ๊ธฐ์‚ฌ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค . ๋‚˜๋Š” ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ๋ฐ˜์‘์„ ์ด‰๋ฐœํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋ฌธ์ œ ๋ณด๊ณ ์ž๋Š” JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฟ ํ‚ค ์„ธ์…˜์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋…ผ์˜๋กœ, ์ฃผ๋กœ JWT์˜ ํ•ต์‹ฌ ์ด์ ์„ ์†์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋ฌด๊ตญ์ ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜๊ตฌ ์ €์žฅ์†Œ๋ฅผ ํ†ตํ•ฉํ•˜์—ฌ ์ƒํƒœ๋ฅผ ๋„์ž…ํ•˜์‹ญ์‹œ์˜ค. JWT์˜ ์ฃผ์š” ์‚ฌ์šฉ ์‚ฌ๋ก€ ์ค‘ ํ•˜๋‚˜๋ฅผ ์ œ๊ฑฐํ•˜๊ณ  ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„ฑ์ˆ™ํ•œ ๊ฒƒ์„ ๋‹ค์‹œ ๊ตฌํ˜„ํ•ฉ๋‹ˆ๋‹ค.
์ฆ‰, ๋ณต์žกํ•œ ์•ฑ์€ ๋‹จ์ผ HTTP ์š”์ฒญ์˜ ์ˆ˜๋ช…์„ ๋„˜์–ด์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ์ž‘์—…์— ๋Œ€ํ•œ ํŠธ๋žœ์žญ์…˜ ์š”์ฒญ์˜ ๊ฒฝ์šฐ์—๋„ ์ผ๋ถ€ ์ƒํƒœ ์ฐพ๊ธฐ๋ฅผ ์š”๊ตฌํ•˜๋Š” ๊ฒฝํ–ฅ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ JWT์˜ ์‚ฌ์šฉ์„ ๋ฐฐ์ œํ•ด์„œ๋Š” ์•ˆ ๋˜์ง€๋งŒ JWT๊ฐ€ ํŠธ๋žœ์žญ์…˜์—์„œ ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๊ณ ๋ คํ•  ์ˆ˜ ์žˆ๋„๋ก ์ž ์‹œ ๋ฉˆ์ถฐ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” JWT์™€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ์ƒํƒœ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋งŒ๋ฃŒ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ JWT๊ฐ€ ์•„๋‹ˆ๋ผ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

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

์ƒ์œ„ ๊ณ„์ธต์˜ ์ธ์‹ ๋งค๋งค ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜์ง€ ์•Š๋Š” ํ•œ ์ƒํƒœ ๋น„์ €์žฅ ํ† ํฐ์˜ ์ด์ ์„ ๋ฌด์˜๋ฏธํ•œ ๊ฒƒ์œผ๋กœ ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ƒํƒœ ๊ณ„์ธต์„ ๋„์ž…ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๋”๋ผ๋„ ์„œ๋ฒ„์—์„œ ์„ธ์…˜์„ ๋ถ„๋ฆฌํ•˜๋ฉด ๋งŽ์€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

@nelsonic 4744cd1bb8991bc4057c749f86007fcecac19d1d๋ฅผ ๋ณด๋ฉด ํ›จ์”ฌ ๋” ๋ช…ํ™•ํ•œ ํ‘œํ˜„์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ํ—ค๋” ๋Š” ๋ณ€๊ฒฝ ์‚ฌํ•ญ์„ ๋ฐ˜์˜ํ•˜์ง€ ์•Š๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

@pscott-au: ์ตœ์‹  SPA ๋ฐ ๋ชจ๋ฐ”์ผ ์•ฑ์—์„œ.

์ด๊ฒƒ์€ ์„ธ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์˜ ์„ ํƒ๊ณผ _์™„์ „ํžˆ_ ์ง๊ตํ•ฉ๋‹ˆ๋‹ค. ์˜ค๋Š˜๋‚  SPA์ธ ๋Œ€๋ถ€๋ถ„์˜ ๊ฒƒ๋“ค์ด ๊ทธ๋ ‡์ง€ ์•Š์•„์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ๋งํ•  ๊ฒƒ๋„ ์—†์Šต๋‹ˆ๋‹ค. ์›น ์‚ฌ์ดํŠธ์— SPA๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด(์›น ์•ฑ๊ณผ ๋ฐ˜๋Œ€) ์›น์ด ์ค‘๋‹จ๋ฉ๋‹ˆ๋‹ค.

๋ณต์žกํ•œ ์•ฑ์„ ๊ตฌ์ถ•ํ•  ๋•Œ ์‚ฌ๋žŒ๋“ค์ด ์ง๋ฉดํ•˜๋Š” ๋งŽ์€ ์‹ค์ œ ๋ฌธ์ œ๋Š” ๋Œ€๋ถ€๋ถ„ ๋œ ์šฐ์•„ํ•˜๊ฒŒ ํ•ด๊ฒฐ๋˜๊ฑฐ๋‚˜ ์ตœ์†Œํ•œ ์ฟ ํ‚ค ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฌธ์ œ๊ฐ€ ์žˆ๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์™€ ๊ฐ™์€?

๋ฌธ์ œ ํฌ์Šคํ„ฐ๊ฐ€ ๋งŒ๋“œ๋Š” ์ธ์‹์€ JWT๊ฐ€ ์ตœ์‹  ์•ฑ์— ์ ํ•ฉํ•˜์ง€ ์•Š์€ ์ผ๋ถ€ ํ•ดํ‚น๋œ ์‹ ๋ขฐํ•  ์ˆ˜ ์—†๋Š” ๋ฏธ์„ฑ์ˆ™ ๊ธฐ์ˆ ์ด๋ผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”, ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ธฐ์ˆ ๋กœ์„œ์˜ JWT๋Š” ๋”์ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์‚ฌ์–‘์— ์˜์‹ฌ์Šค๋Ÿฌ์šด ๊ฒฐ์ •์ด _are_ ์žˆ๋”๋ผ๋„). ์„ธ์…˜์€ ์˜๋„๋œ ๋ชฉ์ ์ด ์•„๋‹ˆ๋ฉฐ ํ•ด๋‹น ์‚ฌ์šฉ ์‚ฌ๋ก€์— ์ ํ•ฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋„๊ตฌ๊ฐ€ ๋‚˜์˜๋‹ค๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ž˜๋ชป ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ด ์ฃผ์žฅ์€ ์•„๋งˆ๋„ ๋‹ค์Œ๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ„ํ—˜ํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์— ๋Œ€ํ•œ ๋‹น์‹ ์˜ ๊ทผ๊ฑฐ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

์ด OATH ๊ธฐ์‚ฌ๊ฐ€ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

์š”์ ๋ณ„๋กœ ํ•ด๊ฒฐ:

  • Stateless, Scalable and Decoupled: ๋‚˜๋Š” ์ด๊ฒƒ์ด ์ด๋ก ์  ์ด์ ์ด์ง€๋งŒ ์‹ค์ œ๋กœ๋Š” ๊ฑฐ์˜ ์•„๋ฌด๋„ ์‹ค์ œ๋กœ ํ•„์š”๋กœ ํ•˜์ง€ ์•Š๋Š” ์ด์ ์ด๋ผ๋Š” ๊ฒƒ์„ ์ด๋ฏธ ์ธ์ •ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ Auth0์— ๊ธฐ๋“๊ถŒ์ด ์žˆ๋‹ค๋Š” ์ ์„ ๊ณ ๋ คํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด ์ด์ต์€ ๊ฐœ๋ฐœ์ž์—๊ฒŒ _not_ ๋„์›€์ด ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. _"Auth0๊ณผ ๊ฐ™์€ ํƒ€์‚ฌ ์„œ๋น„์Šค๋Š” ํ† ํฐ ๋ฐœํ–‰์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์„œ๋ฒ„๋Š” ํ† ํฐ์˜ ์œ ํšจ์„ฑ๋งŒ ํ™•์ธํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. "_ ์ธ์ฆ์„ ์•„์›ƒ์†Œ์‹ฑํ•˜๋Š” ๊ฒƒ์€ _๋”์ฐํ•œ_ ์•„์ด๋””์–ด์ž…๋‹ˆ๋‹ค.
  • ๊ต์ฐจ ๋„๋ฉ”์ธ ๋ฐ CORS: ์™„์ „ํ•˜๊ณ  ๋ง๋„ ์•ˆ๋˜๋Š” ์†Œ๋ฆฌ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ํ† ํฐ์ด ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ _ํฌํ•จํ•˜๋Š”์ง€ ์—ฌ๋ถ€์™€ ์™„์ „ํžˆ ๋ณ„๊ฐœ์ธ _์ €์žฅ ๋ฐฉ๋ฒ•_์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜ ID๋ฅผ ์ˆ˜๋™์œผ๋กœ ๋ณด๋‚ด๊ฑฐ๋‚˜ JWT๋ฅผ ์ฟ ํ‚ค์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. JWT ๋Œ€ ์„ธ์…˜๊ณผ๋Š” ์•„๋ฌด ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. "์ฟ ํ‚ค ๋Œ€ ํ† ํฐ"์„ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ _์ฒ˜์Œ๋ถ€ํ„ฐ ์˜๋ฏธ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ธฐ์‚ฌ ์ž‘์„ฑ์ž์˜ ํŽธ๊ฒฌ/๋ฌด์ง€๋ฅผ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ๋˜ํ•œ ์ด ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์™„์ „ํžˆ ๋ฌด์‹œ
  • JWT์— ๋ฐ์ดํ„ฐ ์ €์žฅ: ๊ธฐ๋Šฅ์ด ์•„๋‹™๋‹ˆ๋‹ค. ์„ธ์…˜์—๋„ ๋™์ผํ•˜๊ฒŒ ์ ์šฉ๋ฉ๋‹ˆ๋‹ค. ๊ทธ๊ฑด ๊ทธ๋ ‡๊ณ , ์ฟ ํ‚ค.
  • ์„ฑ๋Šฅ: ์ด๊ฒƒ์€ "์ƒํƒœ ๋น„์ €์žฅ" ์ง€์ ์˜ ๋ฐ˜๋ณต์ผ ๋ฟ์ž…๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„ - ์•”ํ˜ธํ™” ๊ฒ€์ฆ์ด ์„ธ์…˜ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ ์„ฑ๋Šฅ์—์„œ Redis์™€ ๊ฐ™์€ ๊ฒƒ์„ ๋Šฅ๊ฐ€ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์—ฌ๋ถ€๊ฐ€ _์ „ํ˜€_ ๋ถ„๋ช…ํ•˜์ง€ ์•Š๋‹ค๋Š” ์‚ฌ์‹ค์„ ์ œ์™ธํ•˜๊ณ (RDBMS์™€์˜ ๋น„๊ต๋Š” ๋น„ํ˜„์‹ค์ ์ž…๋‹ˆ๋‹ค) , ๋˜ํ•œ ๊ฑฐ์˜ ๋ชจ๋“  ์›น ์•ฑ์— ๋Œ€ํ•ด ์™„์ „ํžˆ ๋ฏธ๋ฏธํ•œ ์„ฑ๋Šฅ ์ตœ์ ํ™”์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์„ "์กฐ๊ธฐ ์ตœ์ ํ™”"๋ผ๊ณ  ํ•˜๋ฉฐ ๋งค์šฐ ํƒ€๋‹นํ•œ ์ด์œ ๋กœ ๋„๋ฆฌ ๊ถŒ์žฅ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
  • ๋ชจ๋ฐ”์ผ ์ง€์›: ๋ง๋„ ์•ˆ๋˜๋Š” ์†Œ๋ฆฌ. HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•˜์ง€ ์•Š์œผ๋ฉด _๋” ๋‚˜์€ HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ฐพ์œผ์„ธ์š”_. ์ฟ ํ‚ค๋Š” ์ž˜ ์ง€์›๋˜๋ฉฐ HTTP ํ—ค๋”์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

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

๋‚˜๋Š” ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์— ๋Œ€ํ•œ ๊ฐ•๋ ฅํ•œ ๋ฐ˜์‘์„ ์ด‰๋ฐœํ•œ ๊ฒƒ ์ค‘ ํ•˜๋‚˜๋ผ๊ณ  ์ƒ๊ฐํ•˜์ง€๋งŒ ๋ฌธ์ œ ๋ณด๊ณ ์ž๋Š” JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ฟ ํ‚ค ์„ธ์…˜์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์˜ˆ์ƒ๋˜๋Š” ๊ธฐ๋Šฅ์— ๋Œ€ํ•œ ๋…ผ์˜๋กœ, ์ฃผ๋กœ JWT์˜ ํ•ต์‹ฌ ์ด์ ์„ ์†์ƒ์‹œํ‚ต๋‹ˆ๋‹ค. ๋ฌด๊ตญ์ ์ž๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฆฌ์†Œ์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๋Š” JWT์™€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ๊ฑฐ๋ถ€ํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ฆฌ์†Œ์Šค ์ƒํƒœ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์ด ๊ดœ์ฐฎ๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. ์ด ๊ฒฝ์šฐ ๋งŒ๋ฃŒ๋˜์–ด์•ผ ํ•˜๋Š” ๊ฒƒ์€ JWT๊ฐ€ ์•„๋‹ˆ๋ผ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๋Š” ์‚ฌ์šฉ์ž์˜ ์ƒํƒœ์ž…๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ์ผ์ข…์˜ ์ผ๋ฐ˜ ์„ธ์…˜ ID์— ๋น„ํ•ด ์ด์ ์ด ์—†์Šต๋‹ˆ๋‹ค.

[...] ์•ž์„œ CORS์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ–ˆ์„ ๋•Œ ์ฟ ํ‚ค์™€ ํ•จ๊ป˜ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์˜ ์–ด๋ ค์›€์„ ๋ช…์‹œ์ ์œผ๋กœ ์ง€์ ํ•˜๋Š” ๊ฒƒ์ด ๋” ๋‚˜์•˜์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฌผ๋ก  ์™€์ผ๋“œ์นด๋“œ ๋„๋ฉ”์ธ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ถฉ๋ถ„ํžˆ ๋‹ค๋ฅธ ๊ฒฝ์šฐ ๊ธฐ์กด ์„ธ์…˜ ์ฟ ํ‚ค๊ฐ€ ๋น ๋ฅด๊ฒŒ ๋‹ค๋ฃจ๊ธฐ ์–ด๋ ค์›Œ์ง‘๋‹ˆ๋‹ค.

์ด๊ฒƒ์€ ๋˜ํ•œ ์š”์ ๊ณผ ์™„์ „ํžˆ ์ง๊ตํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ˆœ์ „ํžˆ ์‹๋ณ„์ž๊ฐ€ ์„ธ์…˜ ๋ฐ์ดํ„ฐ๋ฅผ _ํฌํ•จ_ํ–ˆ๋Š”์ง€ ์—ฌ๋ถ€๊ฐ€ ์•„๋‹ˆ๋ผ ์‹๋ณ„์ž๋ฅผ _์ €์žฅ_ํ•˜๋Š” ์œ„์น˜์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ, ๋ณด์•ˆ ์œ„ํ—˜ .

๊ทธ๋Ÿฌ๋‚˜ JWT์˜ ์‚ฌ์šฉ์€ ์ธ์ฆ๋œ ์„ธ์…˜์˜ ์‹œ์ž‘์ ์œผ๋กœ์„œ ๋”์šฑ ๋‘๋“œ๋Ÿฌ์งˆ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

๊ทธ๋ฆฌ๊ณ  ๊ทธ ๋‘๋“œ๋Ÿฌ์ง„ ์‚ฌ์šฉ์€ ๋ฌด์ง€์™€ ๊ณผ๋Œ€ ๊ด‘๊ณ ์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์œผ๋ฉฐ ๋งŽ์€ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ˆ˜๋ฐ˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ๊ฒƒ์ด ์ €๋ฅผ ํฌ๊ฒŒ ์šฐ๋ คํ•ฉ๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ค‘์š”ํ•œ ํ›„ํ‡ด์ž…๋‹ˆ๋‹ค.

๊ทธ๋ž˜์„œ ์šฐ๋ฆฌ๋Š” ์˜ค๋žซ๋™์•ˆ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ด๊ฒƒ์„ ๋ฌด์‹œํ•ฉ๋‹ˆ๋‹ค.

๋‚˜๋Š” ๊ทธ๋Ÿฐ ์ข…๋ฅ˜์˜ ๋ง์„ ํ•œ ์ ์ด ์—†์Šต๋‹ˆ๋‹ค. ์„ธ์…˜ ๊ด€๋ฆฌ์—์„œ JWT๊ฐ€ _๊ฐ๊ด€์ ์œผ๋กœ ์—ด๋“ฑํ•œ ์ด์œ ์— ๋Œ€ํ•ด ๋ช‡ ๊ฐ€์ง€ _๋งค์šฐ__๋ช…ํ™•ํ•œ ์ด์œ ๋ฅผ ์ œ๊ณตํ–ˆ์Šต๋‹ˆ๋‹ค.

๋„๋ฉ”์ธ ๊ฐ„์— ์ฟ ํ‚ค๋ฅผ ๊ณต์œ ํ•  ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ์—๋งŒ JWT์— ๋Œ€ํ•ด ๋ฐฐ์šฐ๊ณ  ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

์ด ๊ฒฝ์šฐ ๋ณด์•ˆ ๋ฌธ์ œ . ์ฟ ํ‚ค๋Š” _์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค_.

๋˜๋Š” ํƒ€์‚ฌ API์— ์•ก์„ธ์Šคํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

์„ธ์…˜๊ณผ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

๋˜๋Š” ์„œ๋ฒ„๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋ฃŒ๋ฅผ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์„œ๋ฒ„๊ฐ€ ์„ธ์…˜์„ ๋ช…์‹œ์ ์œผ๋กœ ๋ฌดํšจํ™”ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์œ ์ง€ํ•ด์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋ถˆ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ณ€๊ฒฝํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์„ธ์…˜์„ ๊ฐ•์ œ๋กœ ๋‹ซ์„ ๋•Œ.

๋˜๋Š” ๋ชจ๋ฐ”์ผ ์žฅ์น˜ ๋“ฑ์— ์‚ฌ์šฉ์ž ๋กœ๊ทธ์ธ ์ž๊ฒฉ ์ฆ๋ช…์˜ ์ €์žฅ์— ๋Œ€ํ•ด ์งˆ๋ฌธํ•˜์‹ญ์‹œ์˜ค.

์ฟ ํ‚ค. ์™„๋ฃŒ.

์ƒ์œ„ ๊ณ„์ธต์˜ ์ธ์‹ ๋งค๋งค ์‚ฌ์ดํŠธ๋ฅผ ์šด์˜ํ•˜์ง€ ์•Š๋Š” ํ•œ ์ƒํƒœ ๋น„์ €์žฅ ํ† ํฐ์˜ ์ด์ ์„ ๋ฌด์˜๋ฏธํ•œ ๊ฒƒ์œผ๋กœ ๊ณผ์†Œํ‰๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ์˜ณ์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ƒˆ๋กœ์šด ์ƒํƒœ ๊ณ„์ธต์„ ๋„์ž…ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ๋ณต์žกํ•˜๊ฒŒ ๋งŒ๋“ค๋”๋ผ๋„ ์„œ๋ฒ„์—์„œ ์„ธ์…˜์„ ๋ถ„๋ฆฌํ•˜๋ฉด ๋งŽ์€ ์ด์ ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ทธ๊ฒƒ์ด "๊ณผ๋Œ€ ๊ด‘๊ณ "๋ผ๊ณ  ๋ถˆ๋ฆฌ๋Š” ๊ฒƒ์ด๋ฉฐ ๋งค์šฐ ํ•ด๋กญ์Šต๋‹ˆ๋‹ค.

Stateless: ์•ฑ์ด ์˜คํ”„๋ผ์ธ์œผ๋กœ ์ž‘๋™ํ•˜๊ณ  ์–ด๋–ค ์ข…๋ฅ˜์˜ ์˜๋ฏธ๋ฅผ ์œ ์ง€ํ•ด์•ผ ํ•  ๋•Œ ์ค‘์š”ํ•ฉ๋‹ˆ๋‹ค.

์˜คํ”„๋ผ์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์ธ์ฆ์ด _์ „ํ˜€_ ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ •์˜์ƒ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ๊ณผ์˜ ์ƒํ˜ธ ์ž‘์šฉ์€ ์—†์Šต๋‹ˆ๋‹ค.

๊ต์ฐจ ๋„๋ฉ”์ธ ์ž๊ฒฉ ์ฆ๋ช… ์ธ์ฆ: ์—ฌ๋Ÿฌ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งˆ์ดํฌ๋กœ์„œ๋น„์Šค๋กœ ๋ถ„ํ• ํ•˜๋Š” ๊ฒฝ์šฐ ์ค‘์š”

์˜ณ์€. ๊ทธ๋Ÿฌ๋‚˜ ์ด ๊ฒฝ์šฐ JWT๋ฅผ _์„ธ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ_ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  ์„ธ์…˜์— ๋Œ€ํ•ด _๊ตํ™˜_ํ•  ์ˆ˜ ์žˆ๋Š” ์ผํšŒ์šฉ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์ด ๋‘˜ ์‚ฌ์ด์—๋Š” ๋งค์šฐ ํฐ ์ฐจ์ด๊ฐ€ ์žˆ์œผ๋ฉฐ ๊ทธ๊ฒƒ์ด ์ œ์‹œํ•˜๋Š” ์ ˆ์ถฉ์•ˆ์ด ์žˆ์Šต๋‹ˆ๋‹ค.

( ํŽธ์ง‘ : ๋ฌผ๋ก  ์ด๊ฒƒ์€ _stateful_ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค๋ฅผ ๊ฐ€์ •ํ•˜๊ณ  'stateful'์„ ์‚ฌ์šฉํ•˜๋ฉด ์„ธ์…˜์ด ์•„๋‹ˆ๋ผ ์„œ๋น„์Šค ์ž์ฒด๋ฅผ ์ฐธ์กฐํ•˜๋Š” _์ž…๋‹ˆ๋‹ค. ์ƒํƒœ ๋น„์ €์žฅ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์˜ ๊ฒฝ์šฐ ์„ธ์…˜์„ ์ „ํ˜€ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ณ  _์ผํšŒ์šฉ ํ† ํฐ์œผ๋กœ ์ถฉ๋ถ„ํ•ฉ๋‹ˆ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์—์„œ ์ผํšŒ์šฉ ํ† ํฐ์„ ๋ฐœํ–‰ํ•˜๋Š” ๊ฒฝ์šฐ ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์™€ ํ†ต์‹ ํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ๊ฒฝ์šฐ JWT๋„ ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์— "์„ธ์…˜"์ด๋ผ๋Š” ๊ฐœ๋…์ด ์—†์œผ๋ฉฐ ์„œ๋ช… ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ํ† ํฐ ํ•ด์ง€๋ฅผ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.)

JWT์˜ ์œ ์šฉ์„ฑ์„ ๊ณ„์† ๊ฑฐ๋ถ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‚˜๋Š” ๊ทธ๋Ÿฐ ์ผ์„ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์ „์ ์œผ๋กœ ๋‹น์‹ ์˜ ๋ง์”€์ž…๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋” ์ž์„ธํ•œ ์ •๋ณด๋ฅผ ์ œ๊ณตํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋‹น์‹ ์€ ๋‚ด ์‚ฌ๊ฑด์„ ๋ถ€์ ์ ˆํ•˜๊ฑฐ๋‚˜ ๋‚˜์œ ๊ด€ํ–‰์œผ๋กœ ์น˜๋ถ€ํ•ฉ๋‹ˆ๋‹ค. ์ œ ์ƒ๊ฐ์—๋Š” ๊ทธ๋ ‡๊ฒŒ ์ž˜๋ชป๋˜์—ˆ์Šต๋‹ˆ๋‹ค.

๊ทธ๋Ÿฐ ๋‹ค์Œ "๊ทธ๊ฒŒ ํ‹€๋ฆฌ๋‹ค!"๋ผ๊ณ  ๋งํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ _์™œ_ ์ž˜๋ชป๋œ ๊ฒƒ์ธ์ง€ ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‚ด๊ฐ€ ๊ทธ๊ฒƒ์„ ์•ก๋ฉด ๊ทธ๋Œ€๋กœ ๋ฐ›์•„๋“ค์ด๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•˜์‹ญ์‹œ์˜ค. ๋‚˜๋Š” ๋‹น์‹ ์ด ์ •ํ™•ํ•˜๊ฒŒ ์ด ์ด์œ ์— ๋Œ€ํ•ด ์ œ๊ณตํ•˜๋Š” ๋ชจ๋“  ์š”์ ์„ ๊ตฌ์ฒด์ ์œผ๋กœ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

iOS ๋กœ๊ทธ์ธ ์„ธ์…˜์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์ฟ ํ‚ค์— ์˜์กดํ•˜๋Š” ๊ฒƒ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ์ตœ์ƒ์˜ ์†”๋ฃจ์…˜์ด ์•„๋‹™๋‹ˆ๋‹ค.

์™œ์š”?

์ฟ ํ‚ค๊ฐ€ ์˜ค์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋นˆ๋ง์ž…๋‹ˆ๋‹ค. ์˜ค์šฉ _์–ด๋–ป๊ฒŒ_? ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ์–ด๋–ป๊ฒŒ Local Storage์— ์ €์žฅ๋œ ๊ฐ’์— ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? "์ฟ ํ‚ค"๊ฐ€ ์„ธ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์•„๋‹ˆ๋ผ ์ €์žฅ ๋ฐฉ๋ฒ•์ด๋ผ๋Š” ์ ์„ ๊ฐ์•ˆํ•  ๋•Œ ์ด๊ฒƒ์ด JWT์™€ _์ „ํ˜€_ ๊ด€๋ จ์ด ์žˆ์Šต๋‹ˆ๊นŒ? "JWT ๋Œ€ ์ฟ ํ‚ค"๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์€ ์‚ฌ๊ณผ์™€ ์˜ค๋ Œ์ง€๋ฅผ ๋น„๊ตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ์‹ฌ์ง€์–ด ๊ฐ™์€ ๋ถ€๋ฅ˜๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค!

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

๋‚œ ์•„๋‹ˆ์—์š”. JWT๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ์†”๋ฃจ์…˜์ธ ๊ฒฝ์šฐ _๋งค์šฐ ๋ช…ํ™•ํ•˜๊ฒŒ_ ํ‘œ์‹œ๋œ ์˜ˆ์™ธ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ JWT๊ฐ€ ๋ฒ”์šฉ ์„ธ์…˜ ๋ฉ”์ปค๋‹ˆ์ฆ˜

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

๋‹ค๋ฅธ ๋ชฉ์ ์œผ๋กœ JWT์™€ ์„ธ์…˜์„ _๋ชจ๋‘_ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋Š” ์ด์œ ๊ฐ€ ์—†๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ์œ„ํ•ด ๋ชจ๋“  ๊ฒƒ์„ ๋‹จ์ผ ๋ฉ”์ปค๋‹ˆ์ฆ˜์œผ๋กœ ๊ตฌ๋ถ€๋ฆฌ๋ ค๋Š” ๊ฒƒ์€ _์™„์ „ํžˆ_ ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜์‹ญ์‹œ์˜ค. "์ƒˆ ์ฟ ํ‚ค๋ฅผ ์ƒ์„ฑํ•  ํ•„์š”๊ฐ€ ์—†์Œ"์€ ์™„์ „ํžˆ ์ž„์˜์ ์ธ ์ธก์ • ๊ธฐ์ค€์ด๋ฉฐ ์‹ค์ œ๋กœ๋Š” ๊ท€ํ•˜๊ฐ€ ์˜๋ฏธํ•˜๋Š” ์ด์ ์ด ์•„๋‹™๋‹ˆ๋‹ค.

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

๋‹ค์‹œ. ์•„๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋งํ–ˆ๋‹ค. ๋‚ด ์ž…์— ๋ง ์ข€ ๊ทธ๋งŒ ๋„ฃ์–ด.

์•”ํ˜ธ ๋ณ€๊ฒฝ ์‹œ ์ข…๋ฃŒ์™€ ๊ฐ™์€ ํŠน์ • ๊ทœ์น™์„ ์ ์šฉํ•˜๊ฑฐ๋‚˜ ์„œ๋น„์Šค ์ œํ•œ์„ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•œ ์„ธ์…˜์˜ ์—ญํ• ์— ๋Œ€ํ•ด ์–ธ๊ธ‰ํ•œ ์˜ˆ๋Š” ์„ธ์…˜ ์ฟ ํ‚ค์˜ ๋‚ด์žฅ ๊ธฐ๋Šฅ์ด ์•„๋‹ˆ๋ผ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์—์„œ ์ผ๋ฐ˜์ ์œผ๋กœ ์‚ฌ์šฉ๋˜๋Š” ๊ธฐ๋Šฅ์ผ ๋ฟ์ž…๋‹ˆ๋‹ค.

์ด๋Š” ๊ตฌ์กฐ์ ์œผ๋กœ ์ผ์ข…์˜ ์ƒํƒœ ์ €์žฅ ์„ธ์…˜์„ _ํ•„์š”๋กœ ํ•˜๋Š”_ ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. ๋‚˜๋Š” ์ด๊ฒƒ์ด ์„ธ์…˜ ์ฟ ํ‚ค์— ์˜ํ•ด ์ œ๊ณต๋œ๋‹ค๊ณ  ์ฃผ์žฅํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๋‚˜๋Š” ๊ทธ๊ฒƒ์ด ๋ฌด์ƒํƒœ ํ† ํฐ์œผ๋กœ _๋ถˆ๊ฐ€๋Šฅ_ํ•˜๋‹ค๊ณ  ์ฃผ์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์†”๋ฃจ์…˜์ด ์„ธ์…˜์˜ ์ˆ˜๋ช… ๋™์•ˆ ๋ฆฌ์†Œ์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์œ„ํ•ด db๋ฅผ ํ™•์ธํ•˜์ง€ ์•Š๊ณ  ์ธ์ฆ๋œ ์•ก์„ธ์Šค๋ฅผ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํŽธ์•ˆํ•˜๋‹ค๋ฉด ์ด๊ฒƒ์ด ์ด ์ ‘๊ทผ ๋ฐฉ์‹์˜ ์‹คํŒจ๋ผ๊ณ  ์ฃผ์žฅํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‚ด๊ฐ€ ๋งํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

ํŠน์ • ์ปจํŠธ๋กค(์ข…๋ฃŒ ๊ฐ€๋Šฅํ•œ ์„ธ์…˜์ด ํ•„์š”ํ•œ ๊ฒฝ์šฐ)์ด ํ•„์š”์— ๋”ฐ๋ผ ๋„์ž…๋  ์ˆ˜ ์žˆ๋‹ค๊ณ  ์ œ์•ˆํ•  ๋•Œ ์ฟ ํ‚ค์—๋Š” ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‹œ๋„ํ•ด์„œ๋Š” ์•ˆ ๋˜๋Š” ๋‚ด์žฅ๋œ ๊ธฐ๋Šฅ์ด ์žˆ๋‹ค๊ณ  ์‘๋‹ตํ•ฉ๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ œ์–ด๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์€ ์ฟ ํ‚ค์— ๋Œ€ํ•œ JWT ์ธ์ฆ ์„ธ์…˜์„ ๋ฐฐ์ œํ•˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™์€ ์‹ฌ๊ฐํ•œ ์˜ค๋ฒ„ํ—ค๋“œ๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.

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

์ฟ ํ‚ค์— ๋Œ€ํ•œ ์š”์ฒญ ์ˆ˜๋ฅผ ๋ฌด์‹œํ•˜๊ณ  ์œ ์ผํ•œ ์„ฑ๋Šฅ ๊ณ ๋ ค ์‚ฌํ•ญ์€ ์กฐํšŒ๋ผ๊ณ  ์ œ์•ˆํ•ฉ๋‹ˆ๋‹ค. ์ƒˆ๋กœ ๊ณ ์นจ ๋“ฑ์„ ์กฐ์ •ํ•˜๊ณ  ..์— ์˜์กดํ•ด์•ผ ํ•˜๋Š” ํ•„์š”์„ฑ์€ ์‹ ๊ฒฝ์“ฐ์ง€ ๋งˆ์„ธ์š”... (์—ฌ๊ธฐ์„œ ํฌ๊ธฐ)

๋ฌด์Šจ ์–˜๊ธฐ๋ฅผ ํ•˜๋Š” ๊ฒ๋‹ˆ๊นŒ? ์ฟ ํ‚ค "์ƒˆ๋กœ ๊ณ ์นจ"์€ ์ƒˆ ์ฟ ํ‚ค๋ฅผ ์ „์†กํ•˜์—ฌ HTTP ์‘๋‹ต์—์„œ ์ธ๋ผ์ธ์œผ๋กœ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. Redis ์˜ˆ์ œ์—์„œ ์ด๋ฏธ ๋‹ค๋ฃฌ ์„ธ์…˜ ์ €์žฅ์†Œ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ ์™ธ์— ์ถ”๊ฐ€๋กœ ๊ด€๋ จ๋œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค๋ฅธ ์„ฑ๋Šฅ ๊ณ ๋ ค ์‚ฌํ•ญ์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด _ ๋‚˜์—ดํ•˜์‹ญ์‹œ์˜ค_.

์ฟ ํ‚ค๊ฐ€ ๋„๋ฉ”์ธ์œผ๋กœ ์ œํ•œ๋˜์–ด ์žˆ๊ณ  ๋„๋ฉ”์ธ ๊ฐ„ ์‚ฌ์šฉ์„ ํ—ˆ์šฉํ•˜๋ฉด ์ฟ ํ‚ค ์‚ฌ์šฉ์„ ๋ฐฉํ•ดํ•˜๋Š” ๋ณด์•ˆ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ์ €๋Š” ๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ๋‚ด๊ฐ€ ๋งํ•œ ๊ฒƒ์ด ์•„๋‹™๋‹ˆ๋‹ค.

JWT๋Š” ๋‹ค์Œ์œผ๋กœ ๋ชจ๋“  ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ๋‹น์‹ ์ด ์ง€์ ํ•œ ๊ฒƒ์ฒ˜๋Ÿผ (์„ธ์…˜์„ ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋˜๋Š” ๊ฒฝ์šฐ) ์‹ฌ๊ฐํ•œ ํ˜์˜ค์Šค๋Ÿฌ์šด ๊ฒƒ๋„ ์•„๋‹™๋‹ˆ๋‹ค.

์˜ˆ, ๊ทธ๋ ‡์Šต๋‹ˆ๋‹ค. ์„ธ์…˜์— JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋Š” ์œ ์ผํ•œ ์ด์œ ๋Š” ๋Œ€์•ˆ์ด ๋” ๋‚˜์˜๊ฑฐ๋‚˜ ๋ถˆ๊ฐ€๋Šฅํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋ฉฐ ์ด๋Š” _๋งค์šฐ_ ๋“œ๋ฌธ ๊ฒฝ์šฐ์ž…๋‹ˆ๋‹ค.

ํ•„์š”ํ•œ ๊ฒฝ์šฐ ์ด ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•œ ๋‹ค์–‘ํ•œ ๊ฐœ์„  ์‚ฌํ•ญ๊ณผ ๊ธฐ์กด ์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋น„๊ตํ•˜์—ฌ ์ง„ํ™”์˜ ๋ณต์žก์„ฑ์— ๋Œ€ํ•œ ์–ธ๊ธ‰ ์—†์ด ๋ณด์•ˆ์„ ์ ˆ๋Œ€์ ์ธ ๊ฒƒ์œผ๋กœ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.

์ €๋Š” ๋ณด์•ˆ์ด ์ ˆ๋Œ€์ ์ผ ๋•Œ๋งŒ ์ ˆ๋Œ€์  ๋ณด์•ˆ์„ _is_ ์ทจ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค. ๋‚˜๋Š” ๋˜ํ•œ ๊ทธ๊ฒƒ์„ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ€๋Šฅํ•œ ๋ฐฉ๋ฒ•์„ ๋‹ค๋ฃจ์—ˆ๊ณ  _๊ทธ๋ฆฌ๊ณ _ ์ตœ์ข… ๊ฒฐ๊ณผ๊ฐ€ ์—ฌ์ „ํžˆ ๋” ๋‚˜๋นด๊ธฐ ๋•Œ๋ฌธ์— ์„ธ์…˜๊ณผ ๋น„๊ตํ•˜์—ฌ ์ข‹์€ ์†”๋ฃจ์…˜์ด ์•„๋‹ˆ๋ผ๋Š” ๊ฒƒ์„ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๊ฐ€ ๋ˆ„๋ฝ๋œ ์‚ฌ๋ก€๋‚˜ ์†”๋ฃจ์…˜์ด ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ์–ธ๊ธ‰ํ•˜์‹ญ์‹œ์˜ค. ์‹ค์ œ๋กœ ๋ฌด์—‡์ธ์ง€ ์„ค๋ช…ํ•˜์ง€ ์•Š๊ณ  "๋‹ค๋ฅธ ์˜ต์…˜"์„ ๋ง‰์—ฐํ•˜๊ฒŒ ์•”์‹œํ•˜์ง€ ๋งˆ์‹ญ์‹œ์˜ค. ์ง€๊ธˆ ๋‚ด๊ฐ€ ๋งํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ, ๋‹น์‹ ์€ ํ—ˆ์„ธ๋ฅผ ๋ถ€๋ฆฌ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

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

์ฟ ํ‚ค๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์„ธ๋ฐ€ํ•˜๊ฒŒ ์„ธ์…˜์„ ์ œ์–ดํ•  ์ˆ˜ ์žˆ๋Š” ์œ ์—ฐ์„ฑ์ด ์žˆ๋Š” ์šฐ๋ฆฌ ์ค‘ ์ผ๋ถ€์—๊ฒŒ๋Š” ๋” ํฐ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ๋ณด์ด์ง€ ์•Š์œผ๋ฉด ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค. ๋‹น์‹ ์ด ์ œ์‹œํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์š”์ ์— ๋Œ€ํ•œ ๋ฐ˜๋ก ์„ ๋‚˜๋ณด๋‹ค ๋” ์ž˜ ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

"๋” ํฐ ์œ ์—ฐ์„ฑ"์€ _is_ ์—†์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, ์žˆ๋‹ค๊ณ  ์ƒ๊ฐ๋˜๋ฉด ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค.

์–ด์จŒ๋“  - ๋‹น์‹ ์€ ๋‚˜๋ณด๋‹ค ํ›จ์”ฌ ๋” ์œ ์ฐฝํ•˜๊ณ  ๋‹น์‹ ์˜ ์ž…์žฅ์—์„œ ๋ถ„๋ช…ํžˆ ํ”๋“ค๋ฆฌ์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”. ๋ˆ„๊ตฐ๊ฐ€๊ฐ€ ๋‚ด ๊ฒฌํ•ด๋ฅผ ๋ฐ”๊พธ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ฒฌ๊ณ ํ•˜๊ณ  ์ž˜ ๋…ผ์˜๋˜๊ณ  ๊ธฐ์ˆ ์ ์œผ๋กœ ์˜ฌ๋ฐ”๋ฅธ ์ฃผ์žฅ์„ ํ•ด์ฃผ๊ธฐ๋ฅผ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค. ๋‹น์‹ ์€ ๊ทธ๋ ‡๊ฒŒํ•˜์ง€ ์•Š์•˜์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ๋งˆ์ง€๋ง‰์œผ๋กœ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๊ทธํ† ๋ก ๋ˆ์งˆ๊ธด ์• ์ฐฉ์„ ๊ฐ–๊ณ  ์žˆ์—ˆ๋˜ ๊ฒƒ์€ ๋ˆ„๊ตฐ๊ฐ€ ๋‹ค์ด์ œ์ŠคํŠธ ์ธ์ฆ์ด ์„ธ์…˜ ์ฟ ํ‚ค๋กœ ๋Œ€์ฒด๋˜์–ด์„œ๋Š” ์•ˆ ๋œ๋‹ค๊ณ  ์ฃผ์žฅํ–ˆ์„ ๋•Œ์˜€์Šต๋‹ˆ๋‹ค.

... ๊ทธ๋ฆฌ๊ณ  ๊ทธ๊ฒƒ์€ ๊ทธ๋Ÿฌํ•œ ์˜ค๋ฅ˜์˜ ์™„๋ฒฝํ•œ ์˜ˆ๊ฐ€ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.


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

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

JWT๊ฐ€ ๊ทธ ๊ฐœ๋…์„ ๋’ท๋ฐ›์นจํ•˜๋Š” ๊ธฐ์ˆ ์  ๋…ผ๊ฑฐ๊ฐ€ ์—†์Œ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๊ณ„์†ํ•ด์„œ ์„ฑ๋ฐฐ๋ผ๊ณ  ๋ฏฟ๊ณ  ์‹ถ๋‹ค๋ฉด ๊ทธ๊ฒƒ์ด ์„ ํƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ _์‹ค์ œ ๊ธฐ์ˆ ์  ๋…ผ๊ฑฐ๋ฅผ ์ œ์‹œํ•˜๊ณ  ๋™์ผํ•œ ์ฃผ์žฅ์„ ๊ณ„์† ๋ฐ˜๋ณตํ•˜์ง€ ์•Š๋Š” ํ•œ _๋‚˜๋ฅผ ์„ค๋“ํ•˜์ง€ ๋ชปํ•  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ๋Š” ๋ˆ„๊ตฌ์—๊ฒŒ๋„ ๋„์›€์ด ๋˜์ง€ ์•Š์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค.


์ „์ฒด ํ† ๋ก ์„ ํ›‘์–ด๋ณด๋Š” ์‚ฌ๋žŒ๋“ค์„ ์œ„ํ•ด ์ œ ์š”์ ์„ ์š”์•ฝํ•˜์ž๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

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

(๊ทธ๋Ÿฐ๋ฐ Reddit์€ ์ƒํƒœ ์ €์žฅ ์„ธ์…˜์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.)

์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ์˜ ๋ชฉ์ ์€ ๋ชจ๋ฐ”์ผ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ SPA ๊ตฌํ˜„์„ ์œ„ํ•œ ๊ธธ์„ ๋‹ฆ๋Š” ๊ฒƒ์ด๋ฉฐ ์ฟ ํ‚ค ์„ธ์…˜์„ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ผ๋ฐ˜์ ์ด๊ณ  ๊ฑฐ์˜ ํ‘œ์ค€์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ด์— ๋Œ€ํ•œ ๋™์ธ ์ค‘ ํ•˜๋‚˜๋Š” SPA๊ฐ€ ์‹ค์ œ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ํ”Œ๋žซํผ์˜ ์—ฌ๋Ÿฌ ๋„๋ฉ”์ธ์— ์žˆ๋Š” ๋งˆ์ดํฌ๋กœ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ์•ก์„ธ์Šค๋ฅผ ์š”๊ตฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์ฟ ํ‚ค๊ฐ€ ๋„๋ฉ”์ธ์— ๋ฐ”์ธ๋”ฉ๋˜๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. JWT๋Š” ์ด๋Ÿฌํ•œ ๋งฅ๋ฝ์—์„œ ์ฟ ํ‚ค์˜ ํ•œ๊ณ„์— ๋Œ€ํ•œ ๊น”๋”ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. OAUTH ๋˜๋Š” OAUTH2 ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ณด์•ˆ ๊ด€์ ์—์„œ ๋” ๊ฐ•๋ ฅํ•˜์ง€๋งŒ ๋งŽ์€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ํ•„์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋ณต์žก์„ฑ์ด ๋„์ž…๋ฉ๋‹ˆ๋‹ค. AUTH ํ† ํฐ ํ˜‘์ƒ์— ์˜์กดํ•˜์ง€ ์•Š๋Š” JWT ์ „๋‹ฌ์ž ์„ธ์…˜์€ JWT์˜ ์˜ค์šฉ์ด ์•„๋‹ˆ๋ผ ๋‹จ์ˆœ์„ฑ์„ ์–ป๊ธฐ ์œ„ํ•ด ๊ทธ๋ฆฌ๊ณ  ๋” ๋งŽ์€ ๋ณด์•ˆ์ด ์ œ๊ณตํ•˜๋Š” ์ถ”๊ฐ€ ๋ณด์•ˆ๋ณด๋‹ค ๋น ๋ฅธ ๊ตฌํ˜„์—์„œ ๋” ๋งŽ์€ ๊ฒƒ์„ ์–ป์„ ์ˆ˜ ์žˆ๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์œ„ํ•ด ๋œ ์•ˆ์ „ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๊ฐ•๋ ฅํ•œ ์ ‘๊ทผ ๋ฐฉ์‹. ์‹ ์†ํ•œ ๊ตฌํ˜„์„ ๊ฐ„์†Œํ™”ํ•จ๊ณผ ๋™์‹œ์— ๋‹ค๋ฅธ ์ ‘๊ทผ ๋ฐฉ์‹๋ณด๋‹ค ์ผํšŒ์šฉ ํ† ํฐ์œผ๋กœ ๋” ๋ช…ํ™•ํ•œ ๋งˆ์ด๊ทธ๋ ˆ์ด์…˜ ๊ฒฝ๋กœ๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ๋Œ€์ฒดํ•˜๊ธฐ ์œ„ํ•ด JWT Bearer ํ† ํฐ ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ผ๋ถ€ ๋ฐ˜๋ฐœ๊ณผ ๋น„ํŒ์€ ์‹ค์ œ๋กœ ์ผ๋ถ€ ์‚ฌ๋žŒ๋“ค์ด ์ฟ ํ‚ค๋ฅผ ๋ณด๋‹ค ๊ด‘๋ฒ”์œ„ํ•˜๊ฒŒ๋Š” ์ฟ ํ‚ค์— ๋Œ€ํ•œ ์ง„ํ™” ๋˜๋Š” ๊ฐœ์„ ์œผ๋กœ ์ œ์‹œํ•˜๋Š” ๊ฒƒ์— ๊ธฐ๋ฐ˜์„ ๋‘๊ณ  ์žˆ์ง€๋งŒ ์‚ฌ์‹ค์ด ์•„๋‹ˆ๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.
์ธ์ฆ ์„ธ์…˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์ฃผ์˜ํ•ด์„œ ์ˆ˜ํ–‰ํ•ด์•ผ ํ•˜๊ณ  ๊ฒฐํ•จ์„ ๋ช…์‹œํ•ด์•ผ ํ•˜์ง€๋งŒ ์ปจํ…์ŠคํŠธ์—์„œ ํ•ญ์ƒ ์‚ฌ์šฉ๋˜๋Š” ์“ธ๋ชจ์—†๋Š” ๊ณผ๋Œ€ ๊ด‘๊ณ ๋กœ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ์˜คํ•ด์˜ ์†Œ์ง€๊ฐ€ ์žˆ๊ณ  ์ž˜๋ชป๋œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.
JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์ ‘์†ํ•  ๋•Œ๋งˆ๋‹ค ์ฟ ํ‚ค๋ฅผ ์ƒˆ๋กœ ๊ณ ์น  ํ•„์š”๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ์ด ๊ฒ€์‚ฌ๋ฅผ ํ™•์žฅํ•˜๋Š” ๊ฒƒ์ด ์‰ฝ์ง€๋งŒ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๊ณ ๋„ ํ•ฉ๋ฆฌ์ ์ธ ํ™•์‹ ์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
JWT๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ฟ ํ‚ค๊ฐ€ ์ฐจ๋‹จ๋œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆจ๊ฒจ์ง„ ๊ฒŒ์‹œ๋ฌผ ๋ณ€์ˆ˜ ๋“ฑ์„ ๋ฐฑํ•„๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œ๋กœ ๋Œ€์ฒด๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์—ฌ๋Ÿฌ ์„œ๋น„์Šค์—์„œ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์ง€๋งŒ JWT๋กœ ๋ž˜ํ•‘๋˜์–ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” uid์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ํ•„๋“œ์˜ ์œ ํšจ์„ฑ์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ‘œ์‹œ๋ฅผ ์›ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.
JWT ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ณด๋‹ค ์ •๊ตํ•œ OAUTH ์ ‘๊ทผ ๋ฐฉ์‹์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
JWT REST ์š”์ฒญ์€ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ REST/SPA ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์ „์— ์ฟ ํ‚ค ์š”์ฒญ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์ „๋‹ฌ์ž ํ—ค๋” ๋˜๋Š” ์ฟ ํ‚ค ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ณด์•ˆ๊ณผ ๊ด€๋ จํ•˜์—ฌ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณด์•ˆ์ด ๋” ๋‚˜์˜๋‹ค)
๋ชจ๋ฐ”์ผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜๊ณผ ๊ฐ™์ด ์žฅ๊ธฐ๊ฐ„์˜ ๋ถ€์žฌ๊ฐ€ ์ผ๋ฐ˜์ ์ด๊ฑฐ๋‚˜ ์˜ˆ์ƒ๋˜๋Š” ๊ฒฝ์šฐ ์ฟ ํ‚ค๋Š” JWT ์ ‘๊ทผ ๋ฐฉ์‹๋ณด๋‹ค ๋œ ๋ฐ”๋žŒ์งํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ž๊ฒฉ ์ฆ๋ช… ์ž์ฒด ๊ฒ€์‚ฌ์— ๋Œ€ํ•œ ๋” ๋ช…ํ™•ํ•œ ๊ฒฝ๋กœ๊ฐ€ ์žˆ์œผ๋ฉด ์„œ๋ฒ„์— ์ฒดํฌ์ธํ•˜์ง€ ์•Š๊ณ ๋„ ๋™์ž‘์„ ์šฉ์ดํ•˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์˜คํ”„๋ผ์ธ ๊ธฐ๊ฐ„์ด ๊ธธ์–ด์งˆ ์ˆ˜ ์žˆ๋Š” ์„ธ์…˜์— ๋Œ€ํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๊ฐ€ ์žˆ์Œ์„ ์ธ์ •ํ•˜๋ฉด ์„ธ์…˜์ด ๋ฐ˜๋“œ์‹œ ์ƒํƒœ ์ €์žฅ์ด ๋˜์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.
ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„์˜ ๊ด€์ ์—์„œ ์„ธ์…˜์ด ์—ฌ๋Ÿฌ ์ƒํƒœ๋กœ ์„ฑ๊ณต์ ์œผ๋กœ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ๋ฐ›์•„๋“ค์ผ ์ˆ˜ ์žˆ๋‹ค๋ฉด ์•„๋งˆ๋„ ์„œ๋ฒ„์™€ ์žฅ๊ธฐ๊ฐ„ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š๋Š” ๊ธฐ๊ฐ„์„ ํฌํ•จํ•˜๋Š” ์‚ฌ์šฉ ์‚ฌ๋ก€์— ๋” ๊ฐ€๊นŒ์ด ๋‹ค๊ฐ€๊ฐˆ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์˜ˆ: ์ผ๊ด„ ์—…๋ฐ์ดํŠธ๋ฅผ ์œ„ํ•ด ์‚ฌ์šฉ์ž ๋ฐ์ดํ„ฐ ์ˆ˜์ง‘ ์žฌ์—ฐ๊ฒฐ ์‹œ). ์„ธ์…˜์ด ๋งŒ๋ฃŒ๋˜์—ˆ๊ณ  ์ƒˆ๋กœ ๊ณ ์นจ์ด ํ•„์š”ํ•˜๋‹ค๋Š” ์‚ฌ์‹ค์„ ์•Œ๊ณ  ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋” ํšจ๊ณผ์ ์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ณ„์ธต์„ ๊ด€๋ฆฌํ•˜์ง€ ์•Š์•„๋„ ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ ๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ๋ณ€๊ฒฝ๋œ ํ›„์—๋„ JWT๋ฅผ ์„ธ์…˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์€ ๋ฐ์ดํ„ฐ๊ฐ€ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๊ณ„์ธต์— ์ „๋‹ฌ๋˜๊ณ  ์š”์ฒญ์„ ์ˆ˜๋ฝํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ฒฐ์ •ํ•˜๋„๋ก ํ•˜๋Š” ๋ฐ ์œ ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ท€ํ•˜๋Š” ์ฟ ํ‚ค๊ฐ€ ๋ธŒ๋ผ์šฐ์ € ๋“ฑ์˜ ๊ตฌํ˜„์„ ์•”์‹œํ•˜๋Š” ๊ฒƒ์œผ๋กœ ๊ฐ€์ •ํ•˜๋Š” ์•ˆ์ „ํ•˜๋‹ค๊ณ  ๊ณ„์† ๋ง์”€ํ•˜์…จ์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ์™ธ๋ถ€์—์„œ๋Š” ์ฟ ํ‚ค๊ฐ€ ๋ณธ์งˆ์ ์œผ๋กœ ๋” ์•ˆ์ „ํ•œ ์ด์œ ๋ฅผ ์•Œ์ง€ ๋ชปํ•ฉ๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์„ค๋ช…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?
SPA/ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์—์„œ ์ฟ ํ‚ค์— ๋Œ€ํ•œ ์˜์กด์ด ๋ฐ˜๋“œ์‹œ ์œ ์ผํ•œ ์‹œ์ž‘ ์œ„์น˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฟ ํ‚ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์— ์˜์กดํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋„ค์ดํ‹ฐ๋ธŒ์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ UIWebView ๋˜๋Š” ๋ฌด์—‡์ด๋“  ์˜์กดํ•˜๊ฒŒ ๋˜๋ฉฐ ์ €๋Š” ํ•ญ์ƒ ๊ทธ๋Ÿด ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ์˜ˆ์ƒ๋Œ€๋กœ ํ–‰๋™ํ•˜์‹ญ์‹œ์˜ค.
ํ† ํฐ์€ ๋ฐ˜๋“œ์‹œ ์œ ์ง€๋˜์ง€ ์•Š๊ณ  ์•ฑ์˜ ์‹คํ–‰ ์ˆ˜๋ช… ๋™์•ˆ ๋ฉ”๋ชจ๋ฆฌ์— ์œ ์ง€๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์‹ค์ œ๋กœ ์ฟ ํ‚ค์˜ ๋ฌด๊ฒฐ์„ฑ์— ์˜์กดํ•˜๋Š” ๊ฒƒ๊ณผ๋Š” ๋‹ค๋ฆ…๋‹ˆ๋‹ค. iOS์—๋Š” ์ตœ์†Œํ•œ ๋ธŒ๋ผ์šฐ์ € ๋„ˆ๋จธ์— ์กด์žฌํ•˜๋Š” ์ €์žฅ ๊ถŒํ•œ์— ๋Œ€ํ•ด ๋” ์„ธ๋ถ„ํ™”๋œ ์ œ์–ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ๋ธŒ๋ผ์šฐ์ € ์Šคํ† ๋ฆฌ์ง€ ์ ‘๊ทผ ๋ฐฉ์‹์— ๊ตฌ์†๋˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์ ์ ˆํ•˜๋‹ค๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.
์ฟ ํ‚ค๋Š” ์‹ค์ œ๋กœ ์„ ํƒ ์‚ฌํ•ญ์ž…๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋งŒ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค๋Š” ๋ฒ•์€ ์—†์Šต๋‹ˆ๋‹ค.
์„œ๋ฒ„์—์„œ ์„ธ์…˜์„ ๋ถ„๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์–ด๋–ค ๊ฒฝ์šฐ์—๋Š” ๋‚˜์œ ๊ฒƒ์ผ ์ˆ˜ ์žˆ์ง€๋งŒ ํ•ญ์ƒ ๊ทธ๋Ÿฐ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. JWT ์‚ฌ์šฉ์„ ํฌํ•จํ•œ ํ˜„๋Œ€์ ์ธ ์ ‘๊ทผ ๋ฐฉ์‹์€ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๋ฅผ ์•ผ๊ธฐํ•˜์ง€๋งŒ ์ƒˆ๋กœ์šด ์œ ์—ฐ์„ฑ๋„ ๊ฐ€์ ธ์˜ค๊ณ  ์ด๋Ÿฌํ•œ ์œ ์—ฐ์„ฑ์—๋Š” ๊ฐ€์žฅ ๋‚˜์œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ํฌํ•จ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

์ œ ์‚ฌ์šฉ ์‚ฌ๋ก€์™€ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๊ณ ๋ คํ•˜์‹œ๊ธฐ ๋ฐ”๋ž๋‹ˆ๋‹ค.

ํ™•์‹ ํ•˜๋Š”.

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

์ด๋Š” ์„ธ์…˜ ์ฟ ํ‚ค, JWT ํฌํ•จ ์ฟ ํ‚ค, _๋ฐ_ JWT ํ† ํฐ ์ž์ฒด์— ๋Œ€ํ•ด์„œ๋„ ๋™์ผํ•ฉ๋‹ˆ๋‹ค. ๋งŒ๋ฃŒ ์˜ˆ์ •์ธ ๊ฒฝ์šฐ์—๋งŒ ๋ช…์‹œ์ ์œผ๋กœ '์ƒˆ๋กœ๊ณ ์นจ'ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์—๋Š” ์ฐจ์ด๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.

JWT๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค๋Š” ๊ฒƒ์€ ์ฟ ํ‚ค๊ฐ€ ์ฐจ๋‹จ๋œ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์ˆจ๊ฒจ์ง„ ๊ฒŒ์‹œ๋ฌผ ๋ณ€์ˆ˜ ๋“ฑ์„ ๋ฐฑํ•„๋กœ ์‚ฌ์šฉํ•˜๋„๋ก ๊ฐ•์ œ๋กœ ๋Œ€์ฒด๋˜์ง€ ์•Š๋Š”๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.

์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ์‚ฌ์šฉ์ž๋Š” ๊ฑฐ์˜ ํ™•์‹คํ•˜๊ฒŒ ๋กœ์ปฌ ์ €์žฅ์†Œ ๋ฐ ๊ธฐํƒ€ ์ง€์†์„ฑ ์ธก์ •๋„ ์ฐจ๋‹จํ•ฉ๋‹ˆ๋‹ค(์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ๊ฐ™์€ ์ด์œ ๋กœ). ๊ฐœ์ธ ์ •๋ณด ๋ณดํ˜ธ ํ™•์žฅ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€์ž…๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•˜์ง€๋งŒ, "JWT ๋Œ€ ์ฟ ํ‚ค"๋Š” _์œ ํšจํ•œ ๋น„๊ต๊ฐ€ ์•„๋‹ˆ๋ฉฐ_ ์‚ฌ์šฉ์ž๊ฐ€ ์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•˜๋ฉด ํ† ํฐ์„ _์–ด์จŒ๋“ _ ์œ ์ง€ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. JWT ์—ฌ๋ถ€๋Š” ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

(์‚ฌ์šฉ์ž๊ฐ€ ์ฟ ํ‚ค๋ฅผ ๋„๋งค๋กœ ์ฐจ๋‹จํ•˜๋ฉด ์ด๋ฏธ ๋ฐ์ดํ„ฐ ์ง€์†์„ฑ์„ ์œ ์ง€ํ•˜์ง€ ์•Š๊ธฐ๋กœ ์„ ํƒํ•˜๋ฏ€๋กœ ์ฟ ํ‚ค๋ฅผ ์ฐจ๋‹จํ•˜๋Š” ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ์ธ์ฆ์„ ์ง€์›ํ•˜๋ ค๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„์˜ ์†์‹ค ์›์ธ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ํ•จ๊ป˜ ์ œ๊ณต๋˜๋Š” ์ ˆ์ถฉ์ ์ด๋ฉฐ ์™„์ „ํžˆ ๊ธฐ์ˆ ์ ์œผ๋กœ ํ•ฉ๋ฆฌ์ ์ž…๋‹ˆ๋‹ค. ๊ฑฐ๋ž˜.)

์—ฌ๋Ÿฌ ์„œ๋น„์Šค์—์„œ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ธ์ฆ์ด ํ•„์š”ํ•˜์ง€ ์•Š์ง€๋งŒ JWT๋กœ ๋ž˜ํ•‘๋˜์–ด ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋Š” uid์™€ ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ๋ฐ์ดํ„ฐ ํ•„๋“œ์˜ ์œ ํšจ์„ฑ์— ๋Œ€ํ•œ ์ผ๋ถ€ ํ‘œ์‹œ๋ฅผ ์›ํ•˜๋Š” ์„œ๋น„์Šค๊ฐ€ ํ—ˆ์šฉ๋ฉ๋‹ˆ๋‹ค.

๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ผํšŒ์šฉ ํ† ํฐ์„ ๋‹ค๋ฃจ๋Š” ๋‚ด ์ด์ „ ๊ฒŒ์‹œ๋ฌผ(์„ธ ๋ฒˆ์งธ ๋‹จ๋ฝ)์˜ ํŽธ์ง‘์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค. ์ด๊ฒƒ๋“ค์€ ์„ธ์…˜์ด ์•„๋‹ˆ๋ฉฐ ์ง€์†๋˜์–ด์„œ๋„ ์•ˆ ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ œ๊ฐ€ ์„ค๋ช…ํ•œ ๋ฌธ์ œ๋Š” ๊ฑฐ๊ธฐ์— ์ ์šฉ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

JWT ์ ‘๊ทผ ๋ฐฉ์‹์€ ๋ณด๋‹ค ์ •๊ตํ•œ OAUTH ์ ‘๊ทผ ๋ฐฉ์‹์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

OAuth๋Š” ์ผํšŒ์šฉ ํ† ํฐ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์„ ๋Œ€์ฒดํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค. ๋‹ค์‹œ, ๋‚ด ์ด์ „ ๊ฒŒ์‹œ๋ฌผ์˜ ํŽธ์ง‘์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

JWT REST ์š”์ฒญ์€ ์ž๊ฒฉ ์ฆ๋ช…์„ ๊ฒŒ์‹œํ•˜๊ฑฐ๋‚˜ REST/SPA ๊ตฌํ˜„์„ ๋‹จ์ˆœํ™”ํ•  ์ˆ˜ ์žˆ๋Š” ์„œ๋น„์Šค์— ์•ก์„ธ์Šคํ•˜๊ธฐ ์ „์— ์ฟ ํ‚ค ์š”์ฒญ์„ ์š”๊ตฌํ•˜์ง€ ์•Š๊ณ  ๋งŒ๋“ค ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

๋ฒ ์–ด๋Ÿฌ ํ—ค๋” ๋˜๋Š” ์ฟ ํ‚ค ํ—ค๋”๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ๋ณด์•ˆ๊ณผ ๊ด€๋ จํ•˜์—ฌ ํฌ๊ฒŒ ๋‹ค๋ฅด์ง€ ์•Š์Šต๋‹ˆ๋‹ค(์œ ํšจํ•˜๊ฒŒ ๋ฐ”๋žŒ์งํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ๋Š” ๋„๋ฉ”์ธ ์ œํ•œ ์ œ์™ธ).

์—ฌ๊ธฐ์—์„œ ๋…ผ์Ÿ์„ ๋ณผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

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

์ด๊ฒƒ์€ ์ด์ต์ด ์•„๋‹™๋‹ˆ๋‹ค. ์–ด์จŒ๋“  ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•  ์˜๋„๊ฐ€ ์žˆ์„ ๋•Œ๊นŒ์ง€๋Š” ํ† ํฐ์ด _ํ•„์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค_. ๋”ฐ๋ผ์„œ ์š”์ฒญ์„ ์‹œ๋„ํ•˜๊ณ  403์ด ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋ณธ์งˆ์ ์œผ๋กœ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋Š” ๊ฒƒ(์ฆ‰, ์ธ์ฆ๋œ ์š”์ฒญ ๋งŒ๋“ค๊ธฐ)๊ณผ ๊ด€๋ จ๋œ ๊ฒƒ์„ ์„œ๋ฒ„์— ์š”์ฒญํ•˜์ง€ ์•Š์œผ๋ ค๋Š” ์‹œ๋„๋Š” ์ด์น˜์— ๋งž์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

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

SPA/ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ์•ฑ์—์„œ ์ฟ ํ‚ค์— ๋Œ€ํ•œ ์˜์กด์ด ๋ฐ˜๋“œ์‹œ ์œ ์ผํ•œ ์‹œ์ž‘ ์œ„์น˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์—์„œ ์ฟ ํ‚ค๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ์— ์˜์กดํ•œ๋‹ค๊ณ  ํ•ด์„œ ๋„ค์ดํ‹ฐ๋ธŒ์— ๊ฐ€๊นŒ์›Œ์ง€๋Š” ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ UIWebView ๋˜๋Š” ๋ฌด์—‡์ด๋“  ์˜์กดํ•˜๊ฒŒ ๋˜๋ฉฐ ์ €๋Š” ํ•ญ์ƒ ๊ทธ๋Ÿด ๊ฒƒ์ด๋ผ๊ณ  ํ™•์‹ ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋‚ด ์˜ˆ์ƒ๋Œ€๋กœ ํ–‰๋™ํ•˜์‹ญ์‹œ์˜ค.

๊ทธ๋ ‡์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ €์ด๋“  ์•„๋‹ˆ๋“  ํ•ฉ๋ฆฌ์ ์ธ HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋Š” _์ ˆ๋Œ€_ ๋ธŒ๋ผ์šฐ์ € ์ „์šฉ์ด๋ฉฐ ๋‹ค๋ฅธ ๊ฒƒ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ HTTP ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค.

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

์•„์ง๊นŒ์ง€ ๊ทธ๋Ÿฌํ•œ '์œ ์—ฐ์„ฑ'์˜ ๊ตฌ์ฒด์ ์ธ ์˜ˆ๋ฅผ ๋ณด์ง€ ๋ชปํ–ˆ์Šต๋‹ˆ๋‹ค.

์„ธ์…˜ ์†”๋ฃจ์…˜์˜ ์ผ๋ถ€๋กœ JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ์„ธ์…˜ ์ฟ ํ‚ค๊ฐ€ ํ•ญ์ƒ ์ค‘์š”ํ•œ ๊ฒƒ์€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ทธ๊ฒƒ์€ ๋งค์šฐ ๋ชจํ˜ธํ•œ ์ง„์ˆ ์ž…๋‹ˆ๋‹ค. JWT๋ฅผ ์†”๋ฃจ์…˜์˜ _์ผ๋ถ€_๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ๊ณผ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ _์ „์ฒด_ ์†”๋ฃจ์…˜์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์„ ๋น„๊ตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋ฐ˜๋Œ€๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด SSO ์‹œ์Šคํ…œ ๋˜๋Š” ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜์˜ ๊ฒฝ์šฐ ๋งŽ์€ ๋ณต์žกํ•œ ์•„ํ‚คํ…์ฒ˜์—๋Š” ์„ธ์…˜ ์ฟ ํ‚ค์™€ ์ผํšŒ์šฉ JWT ํ† ํฐ์˜ ์กฐํ•ฉ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

JWT๋Š” ์ด์ ์„ ์•Œ๊ณ  ์žˆ๊ณ  ๋‹จ์ˆœํ•œ ๋ฌดํšจํ™”๋ฅผ ์š”๊ตฌํ•˜์ง€ ์•Š๋Š” ์ด์œ ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์„ธ์…˜์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

์•„๋‹ˆ์š”. JWT ํ† ํฐ์€ ์„ธ์…˜ ์ฟ ํ‚ค๋กœ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ถฉ์กฑํ•  ์ˆ˜ ์—†์„ ๋•Œ _์ตœํ›„์˜ ์ˆ˜๋‹จ_์ž…๋‹ˆ๋‹ค.

์ฟ ํ‚ค๊ฐ€ ์œ ์ผํ•œ ํ•ด๊ฒฐ์ฑ…์€ ์•„๋‹™๋‹ˆ๋‹ค.

๊ธฐ์ˆ ์ ์œผ๋กœ ์ •ํ™•ํ•ฉ๋‹ˆ๋‹ค.

๋Œ€๊ทœ๋ชจ๊ฐ€ ์ƒํƒœ ๋น„์ €์žฅ ์„ธ์…˜์˜ ์œ ์ผํ•œ ์‚ฌ์šฉ ์‚ฌ๋ก€๋Š” ์•„๋‹™๋‹ˆ๋‹ค.

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

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

3๊ฐ€์ง€ ๋‹ค๋ฅธ ์„œ๋น„์Šค(์•„๋งˆ๋„ ๋‹ค๋ฅธ ์ปจํ…Œ์ด๋„ˆ ์ธํ”„๋ผ ๋“ฑ)๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋ฐฐํฌํ•˜๊ณ  ์„ธ์…˜ ์ฟ ํ‚ค์— ์˜์กดํ•˜๋Š” ์•ฑ์— ํ†ตํ•ฉํ•˜๋ ค๋ฉด ์–ด๋–ป๊ฒŒ ํ•ด์•ผ ํ•˜๋‚˜์š”?

3 ์„œ๋น„์Šค๊ฐ€ ์ˆ˜ํ–‰ํ•˜๋Š” ์ž‘์—…์— ๋”ฐ๋ผ ๋‹ค๋ฆ…๋‹ˆ๋‹ค. ์ž์„ธํžˆ ์„ค๋ช…ํ•ด ์ฃผ์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

์ธ์ฆ ์„œ๋น„์Šค๋ฅผ ์„ค์ •ํ•˜๊ณ  ๋‹ค๋ฅธ ์„œ๋น„์Šค์—์„œ ๋ถ„๋ฆฌํ•˜๋ ค๋Š” ๊ฒฝ์šฐ ๊ณต์œ  ํ”„๋ก์‹œ ์ฟ ํ‚ค ์„ธ์…˜ ์ฒ˜๋ฆฌ๊ธฐ๋ฅผ ์‹คํ–‰ํ•˜๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ์—ฃ์ง€ ์ผ€์ด์Šค์ธ๊ฐ€์š”?

์ธ์ฆ ์„œ๋น„์Šค๊ฐ€ ์„ฑ๊ณต์ ์ธ ์ธ์ฆ์„ ๋‚˜ํƒ€๋‚ด๋Š” ์ผํšŒ์šฉ JWT ํ† ํฐ์„ ๋ฐœํ–‰ํ•˜๋„๋ก ํ•˜๊ณ  ์„ ํƒ์ ์œผ๋กœ ์•„ํ‚คํ…์ฒ˜์— ๋”ฐ๋ผ ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ 'ํ”„๋กœํ•„ ์ •๋ณด'๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค. ๊ทธ๋Ÿฐ ๋‹ค์Œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ๋”ฐ๋ผ ๋‹ค์Œ์„ ์ˆ˜ํ–‰ํ•ฉ๋‹ˆ๋‹ค.

  1. ์ผ๋ฐ˜ ์›น์‚ฌ์ดํŠธ์ธ ๊ฒฝ์šฐ: ์ธ์ฆ ์„œ๋น„์Šค๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์ธ์ฆ ํŽ˜์ด์ง€๋กœ ๋ฆฌ๋””๋ ‰์…˜๋ฉ๋‹ˆ๋‹ค. JWT ํ† ํฐ์„ ์ฟผ๋ฆฌ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ „๋‹ฌํ•ฉ๋‹ˆ๋‹ค. ์‘์šฉ ํ”„๋กœ๊ทธ๋žจ ์„œ๋ฒ„๋Š” ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•˜๊ณ  ์‚ฌ์šฉ์ž์—๊ฒŒ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  2. SPA์ธ ๊ฒฝ์šฐ: ์ธ์ฆ ์„œ๋น„์Šค๋Š” ์ƒ์„ฑ๋œ ํ† ํฐ์„ (JSON?) ์‘๋‹ต์œผ๋กœ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ํ† ํฐ์„ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ํฌํ•จํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์ธ์ฆ ๋์ ์— HTTP ์š”์ฒญ์„ ํ•˜๊ณ  ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ ํ›„ ๊ตํ™˜์œผ๋กœ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค.
  3. ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜(๋ฐ์Šคํฌํ†ฑ ๋˜๋Š” ๋ชจ๋ฐ”์ผ)์ธ ๊ฒฝ์šฐ: SPA์™€ ์œ ์‚ฌํ•˜์ง€๋งŒ ๋ธŒ๋ผ์šฐ์ €์˜ ํ”„๋ก ํŠธ์—”๋“œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์•„๋‹Œ ์ฟ ํ‚ค๋ฅผ ์ง€์›ํ•˜๋Š” HTTP ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

๋‘ ๊ฒฝ์šฐ ๋ชจ๋‘ JWT ํ† ํฐ์€ ์•ฝ 5๋ถ„ ๋™์•ˆ๋งŒ ์œ ํšจํ•˜๋ฉฐ(ํด๋Ÿญ ์™œ๊ณก์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด) ํ•œ ๋ฒˆ๋งŒ ์‚ฌ์šฉํ•˜์—ฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์„œ๋ฒ„์˜ ์„ธ์…˜๊ณผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ํ† ํฐ์— ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ํฌํ•จํ•˜๋ฉด ์ธ์ฆ ์„œ๋น„์Šค๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ์ƒํƒœ๋กœ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค.

ํŽธ์ง‘: ๋…๋ฆฝ ์‹คํ–‰ํ˜• ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ์ผ€์ด์Šค๋ฅผ ์ถ”๊ฐ€ํ–ˆ์Šต๋‹ˆ๋‹ค.

SPA/ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋ฐ”์ผ ์•ฑ ๊ฐœ๋ฐœ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ธ์ฆ ๋ฐ ์ „๋‹ฌ์ž ํ† ํฐ์ด ์žˆ๋Š” OUATH๊ฐ€ ์•„๋‹Œ ์„ธ์…˜์— JWT๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•˜๊ณ  ๋กœ๊ทธ์ธํ•˜๊ณ  ์ „๋‹ฌ์ž ํ† ํฐ์„ ๋ฐ›์Šต๋‹ˆ๋‹ค.
๊ฐ ์„ธ์…˜์ด 5-15์ดˆ๋งˆ๋‹ค 3๊ฐœ์˜ ์„œ๋น„์Šค ๋ชจ๋‘์— ์š”์ฒญํ•˜๋Š” ์‹ค์‹œ๊ฐ„ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์žˆ๋‹ค๊ณ  ์ƒ์ƒํ•ด ๋ด…์‹œ๋‹ค. ๋งŽ์€ ์‚ฌ์šฉ์ž๊ฐ€ ๋น ๋ฅธ ์ƒํƒœ ํ™•์ธ์„ ์œ„ํ•ด ๋กœ๊ทธ์ธํ•˜๊ฑฐ๋‚˜ GIS ๋ฐ์ดํ„ฐ ๋“ฑ์„ ๊ฒŒ์‹œํ•˜์—ฌ ํ‰๊ท  ์‚ฌ์šฉ ์‹œ๊ฐ„์ด 1๋ถ„ ๋ฏธ๋งŒ์ด์ง€๋งŒ ์•ฑ์„ ์‹œ์ž‘ํ•˜๊ณ  ์‹ถ์–ดํ•ฉ๋‹ˆ๋‹ค. ์•ฑ์„ ๋‹ซ๊ณ , ์ž๊ฒฉ ์ฆ๋ช… ์—†์ด 3์ผ ํ›„์— ๋‹ค์‹œ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค. ์ฟ ํ‚ค๋ฅผ ๋ฉ€๋ฆฌํ•˜๊ฒŒ ๋งŒ๋“œ๋Š” ๊ฒƒ๋“ค)

์˜ˆ๋ฅผ ๋“ค์–ด ๊ทธ๋ž˜ํ”„ ์ฟผ๋ฆฌ ์„œ๋น„์Šค, ๋„์ปค ๋ž™์ŠคํŽ˜์ด์Šค์˜ ๋งคํ•‘ ๋˜๋Š” GIS ์„œ๋น„์Šค, ์‚ฌ์šฉ์ž ํ”„๋กœํ•„ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด postgres db์— ๋Œ€ํ•œ REST ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ AWS ์„œ๋น„์Šค๋ฅผ ์ƒ์„ฑํ–ˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๋ชจ๋“  REST ์„œ๋น„์Šค์— ๋Œ€ํ•œ ํ—ค๋” ์š”์ฒญ์—์„œ ๋™์ผํ•œ JWT๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  JWT์˜ ๊ณต์œ  ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ๊ฐ€ ํ•œ ๋ฒˆ ๋ฐœํ–‰๋˜๋„๋ก ๊ณตํ†ต ๋น„๋ฐ€์— ๋Œ€ํ•ด ์œ ํšจ์„ฑ์„ ๊ฒ€์‚ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ทธ๊ฒƒ๋“ค์ด ๊ทธ๋“ค ์ž์‹ ์˜ ์ปจํ…์ŠคํŠธ ๋‚ด์—์„œ๋Š” stateful์ด์ง€๋งŒ ๊ณต์œ  ์ปจํ…์ŠคํŠธ์—์„œ๋งŒ ๋Š์Šจํ•˜๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค.
์ด๊ฒƒ์€ JWT๋ฅผ ์„ธ์…˜ ํ† ํฐ์œผ๋กœ Bearer Token์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๋‚ด ์ œ์•ˆ๋œ ์†”๋ฃจ์…˜๊ณผ ์ผ์น˜ํ•˜๋Š” ๋ฌธ์ œ ์‚ฌ์–‘์ด๋ฉฐ ์œ ์‚ฌํ•œ ํ™˜๊ฒฝ์—์„œ ๋น„๊ตํ•  ์ˆ˜ ์žˆ๋„๋ก ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฌป๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

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

๊ท€ํ•˜์˜ ์ƒํ™ฉ์„ ์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•œ๋‹ค๋ฉด 3 ๋Œ€์‹  ๋งค ๊ธฐ๊ฐ„๋งˆ๋‹ค 9 ๊ฐœ์˜ ์š”์ฒญ์ด ์ˆ˜์‹ ๋ฉ๋‹ˆ๋‹ค. ์„ค์ •๋œ ์„ธ์…˜์„ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉ ์ค‘์ž…๋‹ˆ๋‹ค. ๋” ๋งŽ์€ ์ฝ”๋“œ์™€ ์›€์ง์ด๋Š” ๋ถ€๋ถ„์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ฐ ๊ธฐ๊ฐ„๋งˆ๋‹ค ์„ธ์…˜์„ ์ข…๋ฃŒํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ์ด์ ์ด ์žˆ์ง€๋งŒ ์ด๊ฒƒ์ด ์š”๊ตฌ ์‚ฌํ•ญ์ด ์•„๋‹Œ ๊ฒฝ์šฐ์—๋Š” ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ? ์‚ฌ์šฉ์ž๊ฐ€ ์ข…๋ฃŒ๋œ ํ›„ 48์‹œ๊ฐ„ ๋™์•ˆ ๊ฒŒ์‹œ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๋ฐ ์‹ ๊ฒฝ ์“ฐ์ง€ ์•Š๊ณ  ์ƒˆ ์š”์ฒญ์— ๋Œ€ํ•ด ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๊ฒƒ์„ ํ•„ํ„ฐ๋งํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝ์šฐ ์–ด๋–ป๊ฒŒ ํ•ฉ๋‹ˆ๊นŒ?

์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์—์„œ ์„ธ์…˜ ์„ธ๋ถ„์„ฑ์ด ์ ์ ˆํ•˜๊ฒŒ ์„ค์ •๋˜๊ณ  ์„ธ์…˜ ์ฟ ํ‚ค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ ์ ˆํ•œ ์‹œ๊ฐ„ ์ดˆ๊ณผ ๊ธฐ๊ฐ„์— ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด JWT๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๋Š” ํด๋ผ์ด์–ธํŠธ๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์‚ฌ์†Œํ•œ ์‹œ๊ฐ„ ์™œ๊ณก์€ ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค. 'ํ”„๋กœํ•„'์ด ์ง„ํ–‰๋˜๋Š” ํ•œ ๊ณต์œ  uid๋ฅผ ๊ณตํ†ต ID๋กœ ์‚ฌ์šฉํ•˜๊ณ (์˜ฌ๋ฐ”๋ฅด๊ฒŒ ์ดํ•ดํ•˜๋Š” ๊ฒฝ์šฐ) ์„œ๋ฒ„ ์ธก ๊ตฌํ˜„์—๋Š” JWT ์„œ๋ช…/๊ฒ€์ฆ์„ ์œ„ํ•œ ๊ณต์œ  ๋น„๋ฐ€์ด ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ์•„ํ‚คํ…์ฒ˜์—์„œ๋Š” JWT ์ œํ•œ ์‹œ๊ฐ„์ด ์ œ๊ณตํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ์„ธ๋ถ€์ ์œผ๋กœ ํ† ํฐ์„ ์ทจ์†Œํ•  ํ•„์š”๊ฐ€ ์—†๋Š”๋ฐ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ๋Œ€์‹  ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๋‚ด๊ฐ€ ์ œ์•ˆํ•œ ์•„ํ‚คํ…์ฒ˜์—์„œ ์„œ๋น„์Šค ์ƒํƒœ ๊ฐ„์— ์ข…์†์„ฑ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์ง€๋งŒ ์ค‘์•™ ์ง‘์ค‘์‹์— ์˜์กดํ•˜๊ณ  ๊ธฐ๋ณธ์ ์œผ๋กœ ๋ชจ๋“  ๊ฒƒ์„ ์ธ์ฆ์— ๋‹ค์‹œ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ์ด๊ฒƒ์„ ์„ค๊ณ„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•ต์‹ฌ์€ ์œ ์—ฐ์„ฑ์ž…๋‹ˆ๋‹ค. ์ด๋Š” ์ข…์†์„ฑ์„ ์‹คํ˜„ํ•˜๋Š” ๋น„์šฉ์œผ๋กœ ๋ฐœ์ƒํ•˜์ง€๋งŒ ์ด๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์ง๋ฉดํ•œ ๋ฌธ์ œ์ด๋ฉฐ ๋ชจ๋“  ํ”Œ๋žซํผ์—์„œ ๊ตฌํ˜„๋˜์ง€๋งŒ ํ”„๋ ˆ์ž„์›Œํฌ ๊ฐ„์— ๋‹ค๋ฅด๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋Š” ๋ ˆ์ด์–ด๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์‹ค์ œ๋กœ ์—†์ด node, php ๋ฐ ์ด๊ตญ์ ์ธ ์ฟ ํ‚ค ์„ธ์…˜ ๊ธฐ๋ณธ ์ฒ˜๋ฆฌ๊ฐ€ ์žˆ๋Š” ์„ธ์…˜์— ๋Œ€ํ•œ ์ฟ ํ‚ค ๋งŒ๋ฃŒ๋ฅผ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์„ ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ์ธ์ฆ ์„œ๋ฒ„ ์š”์ฒญ์„ ์ง์ ‘ ๊ฒŒ์‹œํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ์š”์ฒญ์ด ์žˆ์ง€๋งŒ ํด๋ผ์ด์–ธํŠธ์— ๋Œ€ํ•œ ์š”์ฒญ์€ 3๋ฐฐ์ž…๋‹ˆ๋‹ค.

์ œ์•ˆ๋œ ์•„ํ‚คํ…์ฒ˜์™€ ์ผ์น˜ํ•œ๋‹ค๋ฉด ์‹ค์ œ๋กœ ์—ฌ๋Ÿฌ ์ฟ ํ‚ค์˜ ์‹œ๊ฐ„ ์ œํ•œ์„ ํ•ด๊ฒฐํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋กœ๊ทธ์ธํ•˜๊ณ  1์‹œ๊ฐ„ ํ›„์— ๋งŒ๋ฃŒ๋˜๋Š” ์ธ์ฆ๋œ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ฒฝ์šฐ
๊ทธ๋Ÿฐ ๋‹ค์Œ 40๋ถ„ ํ›„์— ์ด ์„ธ์…˜ ์ฟ ํ‚ค ๊ฐ’์„ ์ฒซ ๋ฒˆ์งธ ์„œ๋น„์Šค์— ๊ฒŒ์‹œํ•œ ๋‹ค์Œ ๋กœ์ปฌ ๋„๋ฉ”์ธ ์ฟ ํ‚ค๋ฅผ ๋ฐœํ–‰ํ•˜๊ธฐ ์ „์— ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ์ฟผ๋ฆฌํ•ฉ๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ์›๋ณธ ์ธ์ฆ ์ฟ ํ‚ค ๋งŒ๋ฃŒ๋ฅผ ํ•ดํ‚นํ•˜๊ฑฐ๋‚˜ ์„œ๋น„์Šค ์ฟ ํ‚ค์˜ ์‹œ๊ฐ„ ์ œํ•œ์„ 20๋ถ„์œผ๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๊นŒ? ๊ทธ๋ฆฌ๊ณ  ์ด๊ฒƒ์ด ๋งŒ๋ฃŒ๋˜๋ฉด ์ธ์ฆ ์ฟ ํ‚ค์˜ ์ƒˆ๋กœ ๊ณ ์นจ์„ ํŠธ๋ฆฌ๊ฑฐํ•ฉ๋‹ˆ๋‹ค. ๋ช…๋ฐฑํ•œ ์†”๋ฃจ์…˜์„ ๋†“์น˜๊ณ  ์žˆ์ง€ ์•Š๋Š” ํ•œ ์ด๊ฒƒ์€ ์„œ๋น„์Šค ์ค‘ ํ•˜๋‚˜๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ ๊ณ ์น  ์ˆ˜ ์žˆ๋Š” ๋‹จ์ผ JWT๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์™„์ „ํžˆ ํ”ผํ•  ์ˆ˜ ์žˆ๋Š” ๋งŽ์€ ์ŠคํŒŒ๊ฒŒํ‹ฐ ๋”๋ฏธ๋กœ ์‰ฝ๊ฒŒ ๋ณ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค(์ด๊ฐ€ ํ† ํฐ์„ ํ™•์žฅํ•˜๋Š” ๋ฐฉ๋ฒ• ์ดํ•ด life ) ๋˜๋Š” ์ธ์ฆ ์„œ๋ฒ„๋ฅผ ํ†ตํ•ด ์ƒˆ๋กœ ๊ณ ์นจ์„ ์š”๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋ถ€์‹ค ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์— ๋Œ€ํ•ด ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ์ด ์‚ฌ์šฉ ์‚ฌ๋ก€์˜ ๋ฌธ์ œ ๋ฒ”์œ„๋Š” ๋ถ€์‹ค ์ž๊ฒฉ ์ฆ๋ช… ๋ฌดํšจํ™”์— ์˜์กดํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ(์ธ์ฆ ์„œ๋ฒ„์˜ ๊ด€์ ์—์„œ) ๊ด€๋ จ์ด ์—†์Šต๋‹ˆ๋‹ค.

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

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

์„œ๋น„์Šค๋Š” ๊ฑฐ์˜ ์ค‘์š”ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌด์—‡์„ ์•”์‹œํ•˜๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ?

์ƒํƒœ ์ €์žฅ ์„œ๋น„์Šค์™€ ์ƒํƒœ ๋น„์ €์žฅ ์„œ๋น„์Šค์—๋Š” ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

์˜ ๋ง์„ํ•˜์ž [...]

์ด๊ฒƒ์€ ๋ฌธ์ œ๊ฐ€ ๋ฌด์—‡์ธ์ง€๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•ฉ๋‹ˆ๋‹ค. ์„ธ์…˜์œผ๋กœ ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์„ค๋ช…ํ•˜๋„๋ก ์š”์ฒญํ•  ๋•Œ๋Š” ์œ ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด๋ฏธ ์„ธ์…˜์„ ์‚ฌ์šฉํ•˜์ง€ _์•Š์„_ ๊ฒƒ์ด๋ผ๊ณ  ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ๋Œ€์‹  ๋ฌธ์ œ๋ฅผ ์„ค๋ช…ํ•˜์‹ญ์‹œ์˜ค.

์–ธ์ œ JWT์— ์ž์‹  ์žˆ๊ฒŒ ์˜์กดํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๊นŒ?

๋‹น์‹ ์€ ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

5๊ฐœ์˜ ์„œ๋น„์Šค๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ ์ด์ œ 5๊ฐœ์˜ ๋‹ค๋ฅธ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์ด ๋ชจ๋“  ์ฟ ํ‚ค ๊ฐ„์˜ ์กฐ์ •์„ ๋ณด์žฅํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ•  ๊ฒƒ ๊ฐ™์ง€ ์•Š์€. Stateful ๋Œ€ Stateless ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๋‚ด ์„ค๋ช…์„ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

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

ํŠนํžˆ ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜์—์„œ ์ธ์ฆ ๋ฐ ์„ธ์…˜ ๊ด€๋ฆฌ๋Š” _is_ ๋ณต์žกํ•ฉ๋‹ˆ๋‹ค. ์—”์ง€๋‹ˆ์–ด๋“ค์ด ๊ณผ๊ฑฐ์— ๊ฐ€๋Šฅํ•œ ๋ถ„์‚ฐ ์•„ํ‚คํ…์ฒ˜๋ฅผ ํ”ผํ•œ ๋ฐ์—๋Š” ์ด์œ ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. "Just use JWT"๋Š” ๋ฐ์ดํ„ฐ ๋ถ€์‹ค ๋ฐ ์„ธ์…˜ ๋ฌดํšจํ™”๋ฅผ ์™„์ „ํžˆ ๋ฌด์‹œํ•จ์œผ๋กœ์จ ์ด๋ฅผ ๊ฐ„๊ณผํ•˜๊ณ  ์‹ค์ œ๋ณด๋‹ค ๋” ์‰ฌ์šด ์ฒ™ํ•ฉ๋‹ˆ๋‹ค.

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

JWT ๊ธฐ๊ฐ„์„ ์ œํ•œํ•˜๋Š” ์ด์œ ๋Š” ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?

๋‚ด๊ฐ€ ์ค€ ์˜ˆ์—์„œ? ์˜๊ตฌ ์‹๋ณ„์ž๊ฐ€ ์•„๋‹Œ ์ผํšŒ์šฉ ๊ตํ™˜ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉ๋˜๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค. ์ทจ์†Œํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์˜๊ตฌ ์‹๋ณ„์ž๋ฅผ ์›ํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.

์ฟ ํ‚ค๋Š” ์ •๊ธฐ์ ์ธ ์„œ๋ฒ„ ์ ‘์†์„ ๊ฐ€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ†ต์ ์œผ๋กœ ์ˆ˜๋ช…์ด ์งง์Šต๋‹ˆ๋‹ค. ๋นจ๋ฆฌ ๋งŒ๋ฃŒ๋˜๊ณ  ์‹ถ์ง€๋Š” ์•Š์ง€๋งŒ ์žฌ์ธ์ฆ์˜ ์ ˆ์ถฉ์•ˆ์ด ๋” ํฐ ์œ„ํ—˜์ด ์žˆ๋‹ค๊ณ  ํŒ๋‹จํ•˜์—ฌ ์˜ค๋ž˜๋œ ์„ธ์…˜์ด ์˜ค๋ž˜ ์ง€์†๋˜๋Š” ๊ฒƒ์„ ๊ธฐ์˜๊ฒŒ ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค.

์„ธ์…˜์„ ์ƒˆ๋กœ ๊ณ ์น  ์œ„ํ—˜์ด ์—†์Šต๋‹ˆ๋‹ค.

ํ”„๋กœํ•„ ๋˜๋Š” ์‹œ๊ณ„ ์™œ๊ณก ๋ฌด์‹œ - ์œ ์‚ฌํ•œ ์‹œ๋‚˜๋ฆฌ์˜ค์— ์ฟ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒฝ์šฐ ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์ ์šฉ๋˜๋ฏ€๋กœ ์ด ๊ฐ€์ƒ์˜ ๋…ผ์˜์— ํฐ ์˜ํ–ฅ์„ ๋ฏธ์น˜์ง€ ์•Š๋Š” ์„ธ๋ถ€ ์‚ฌํ•ญ.

์ด๋Š” ์–ธ๊ธ‰๋œ ๋‹ค๋ฅธ ๋ชจ๋“  ์‚ฌํ•ญ๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๊ฐ•๋ ฅํ•œ ์ธ์ฆ ์‹œ์Šคํ…œ์˜ ์ค‘์š”ํ•œ ๋ถ€๋ถ„์ž…๋‹ˆ๋‹ค. ๊ทธ๋“ค์„ ๋ฌด์‹œํ•˜๋Š” ๊ฒƒ์€ ์„ ํƒ ์‚ฌํ•ญ์ด ์•„๋‹™๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋‹ค์‹œ, ์ด๊ฒƒ์€ "์ฟ ํ‚ค"์— ๊ด€ํ•œ ๊ฒƒ์ด _์•„๋‹™๋‹ˆ๋‹ค_, ์ด๊ฒƒ์€ ์„ธ์…˜์— ๊ด€ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์„ธ์…˜์˜ ๊ฒฝ์šฐ ์•„๋‹ˆ์˜ค, ๋™์ผํ•œ ๋ฌธ์ œ๊ฐ€ ์ ์šฉ๋˜์ง€ _์•Š์Šต๋‹ˆ๋‹ค_. ์ค‘์•™ ์ง‘์ค‘์‹/์ƒํƒœ ์ €์žฅ ์„ธ์…˜ ์ €์žฅ์†Œ๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์ „ํ˜€ ๋ถ€์‹คํ•˜์ง€ ์•Š๊ณ  ํ”„๋กœํ•„ ์ •๋ณด๋ฅผ ์–ด๋Š ์‹œ์ ์—์„œ๋“  ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Œ์„ ์˜๋ฏธํ•˜๋ฉฐ ํด๋ก ์Šคํ๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์‹œ์Šคํ…œ ๊ฐ„์— ๊ตํ™˜๋˜๋Š” ์ œํ•œ๋œ ์œ ํšจ์„ฑ ํ† ํฐ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.

์„ธ์…˜ ๊ด€๋ฆฌ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์š”์ฒญ๋‹น ์ทจ์†Œ๊ฐ€ ํ•„์š”ํ•œ ์„ธ์…˜ ์ •์˜์— ๋Œ€ํ•œ ์ฒจ๋ถ€ ํŒŒ์ผ๋กœ ๊ท€๊ฒฐ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JWT์— ๋Œ€ํ•œ ๊ท€ํ•˜์˜ ์ด์˜๋ฅผ ์š”์•ฝํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค. ์•ก์„ธ์Šค) ๋ฐ ์ƒˆ๋กœ ๊ณ ์นจ๊ณผ ๊ด€๋ จ๋œ ์œ„ํ—˜(๋„์ฒญ๋˜๋Š” ๊ฒฝ์šฐ) . ๋ถ„์‚ฐ ์ฒ˜๋ฆฌ๋Š” ์ƒˆ๋กœ์šด ํ‘œ์ค€์ž…๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์„œ๋น„์Šค๋Š” ๋งค์šฐ ์ผ๋ฐ˜์ ์ž…๋‹ˆ๋‹ค. ๋‹ค์ค‘ ์„œ๋น„์Šค ์•„ํ‚คํ…์ฒ˜์— ์ด๋Ÿฌํ•œ ์ข…๋ฅ˜์˜ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๊ฒฐ๊ณผ๋ฅผ ์™„์ „ํžˆ ์ดํ•ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์˜ค๋žซ๋™์•ˆ ์กด์žฌํ•ด ์™”์Šต๋‹ˆ๋‹ค. DNS์™€ ๊ฐ™์€ ๋ถ„์‚ฐ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋Š” ์ฒ˜์Œ๋ถ€ํ„ฐ ์กด์žฌํ–ˆ์Šต๋‹ˆ๋‹ค. ๋•Œ๋กœ๋Š” ์•„ํ‚คํ…์ฒ˜์˜ ๋‹จ์ˆœํ•จ์ด ์„ค๊ณ„ ํ•œ๊ณ„๋ฅผ ๋„˜์–ด ๊ธฐ์กด์˜ ์ง€๋ฐฐ์ ์ธ ํ‘œ์ค€์„ ์••๋ฐ•ํ•˜๋Š” ๊ฒƒ๋ณด๋‹ค ๋” ๋งŽ์€ ์ด์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์š”์ฒญ ์„ธ์…˜์—์„œ ํŠธ๋žœ์žญ์…˜ ACID ๋ฌธ์ œ๋ฅผ ์•Œ๊ณ  ์žˆ๋‹ค๋ฉด JWT ์„ธ์…˜ ๊ด€๋ฆฌ ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ฑ„ํƒํ•˜์—ฌ ์„œ๋น„์Šค๋ฅผ ์ธ์ฆํ•˜์—ฌ ์šฐ๋ฆฌ๊ฐ€ ์ฃผ์žฅํ•˜๋Š” ๊ฒฝ์šฐ ๋น ๋ฅด๊ฒŒ ๋ณต์žกํ•œ ์ธํ”„๋ผ๊ฐ€ ๋˜๋Š” ๊ฒƒ์— ์ œ์•ฝ์„ ๋ฐ›์ง€ ์•Š๊ณ  ๊ฐ€๋Šฅ์„ฑ์„ ์™„์ „ํžˆ ํ™œ์šฉํ•˜์ง€ ๋ง์•„์•ผ ํ•  ์ด์œ ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. ์—„๊ฒฉํ•œ ์ œ์•ฝ ์กฐ๊ฑด์—์„œ ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ์Šˆํ˜ผ(shoe-horn)ํ•˜๋Š” ์†”๋ฃจ์…˜์œผ๋กœ ์‹œ๋„ํ•˜์‹ญ์‹œ์˜ค.
@joepie91 - ์ ์ ˆํ•œ ๊ฒฝ์šฐ ๊ธฐ๋ณธ ์ธ์ฆ์— ๋Œ€ํ•ด ์ฟ ํ‚ค ์„ธ์…˜ ์ธ์ฆ์„ ์‚ฌ์šฉํ•˜๊ณ  JWT๋ฅผ ์ƒˆ๋กœ ๊ณ ์น˜๋„๋ก ์š”๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‹ค์‹œ - ๋„๋ฉ”์ธ ๊ฐ„ ์„ธ์…˜ ์„œ๋น„์Šค ์•ก์„ธ์Šค๋ฅผ ์œ„ํ•œ JWT์˜ ์‚ฌ์šฉ์€ ์†”๋ฃจ์…˜์˜ ์ผ๋ถ€๋กœ ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ ์ ˆํ•œ ๊ฒฝ์šฐ ์ฟ ํ‚ค ์„ธ์…˜๋„ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค. ์š”์ ์€ ์„ธ์…˜ ๊ด€๋ฆฌ์˜ ์ผ๋ถ€์ธ JWT๊ฐ€ ์„œ๋น„์Šค ํ•˜์œ„ ์ง‘ํ•ฉ์— ์•ก์„ธ์Šคํ•˜๋Š” ๊ฒฝ์šฐ์—๋„ ์—ญํ• ์ด ์—†๋Š” ์‚ฌ์•…ํ•œ ์ ‘๊ทผ ๋ฐฉ์‹์ด ์•„๋‹ˆ๋ผ๊ณ  ์ƒ๊ฐํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
https ์„ธ์…˜ ์ฟ ํ‚ค์—๋„ ์œ„ํ—˜์ด ๋”ฐ๋ฆ…๋‹ˆ๋‹ค. SSL์„ ํ†ต์‹ ํ•  ๋•Œ SSL ํ”Œ๋ž˜๊ทธ๊ฐ€ ์„ค์ •๋˜์ง€ ์•Š๊ณ  ์ฟ ํ‚ค๋ฅผ ์ผ๋ฐ˜ ํ…์ŠคํŠธ๋กœ ์ „๋‹ฌํ•˜๋Š” ์‚ฌ์ดํŠธ๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋งŽ์€์ง€ ๋†€๋ž์Šต๋‹ˆ๋‹ค. ์ฟ ํ‚ค ์„ธ์…˜์ด ์œ„ํ—˜ํ•ฉ๋‹ˆ๊นŒ?
๋‚ด๊ฐ€ ์ฐพ์„ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ํฐ ์œ„ํ—˜์€ ์ฝ”๋”๊ฐ€ ํ† ํฐ์„ ์ž˜๋ชป๋œ ์„œ๋ฒ„๋กœ ๋ณด๋‚ด๋„๋ก ํ—ˆ์šฉํ•˜๊ณ  ํ† ํฐ์„ ํ†ตํ•ด ์ œ3์ž๊ฐ€ ์ด๋Ÿฌํ•œ ๋ณด์กฐ ์‚ฌ์šฉ์ž ๋ฆฌ์†Œ์Šค์— ํšจ๊ณผ์ ์œผ๋กœ ์•ก์„ธ์Šคํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์€ ์–ด๋”˜๊ฐ€์— ํฐ ๋นจ๊ฐ„ ๊ธ€์ž๋กœ ํ‘œ์‹œ๋˜์–ด์•ผ ํ•˜๋ฉฐ ์ด๋Ÿฐ ์ผ์ด ๋ฐœ์ƒํ•˜์ง€ ์•Š๋„๋ก ๊ฐœ๋ฐœ์ž์—๊ฒŒ ๊ฐ•๋ ฅํ•œ ์ฑ…์ž„์„ ์ ธ์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ํ•„์š”ํ•œ ๋ณด์•ˆ ์กฐ์น˜๊ฐ€ ์ทจํ•ด์กŒ๋Š”์ง€ ํ™•์ธํ•˜๊ธฐ ์œ„ํ•ด ์ ์ ˆํ•œ ์กฐ์น˜๋ฅผ ์ทจํ•ด์•ผ ํ•˜๋ฉฐ ์ด์™€ ๊ฐ™์€ ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ์ ‘๊ทผ ๋ฐฉ์‹ ์ค‘ ์ผ๋ถ€๋ฅผ ์„ค๋ช…ํ•˜๊ณ  ์ด๋ฅผ ์˜ˆ์ œ์— ํฌํ•จํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‚ด ์ƒ๊ฐ์— ์ด๊ฒƒ์€ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์„œ๋น„์Šค์— ๋Œ€ํ•œ ๊ต์ฐจ ๋„๋ฉ”์ธ ์‹œ๊ฐ„ ์ œํ•œ ์„œ๋น„์Šค ์ธ์ฆ์˜ ์œ ์—ฐ์„ฑ์— ๋Œ€ํ•ด ์ง€๋ถˆํ•  ์ˆ˜ ์žˆ๋Š” ์ˆ˜์šฉ ๊ฐ€๋Šฅํ•œ ๊ฐ€๊ฒฉ์ž…๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ์†”๋ฃจ์…˜์„ ์„ค๊ณ„ํ•  ๋•Œ ์ธ์ฆ ๋์— ์„ธ์…˜ ์ฟ ํ‚ค๋ฅผ ํฌํ•จํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ์œผ๋ฉฐ ์ ์ ˆํ•œ ๊ฒฝ์šฐ ์ผํšŒ์šฉ ํ† ํฐ ๋“ฑ์„ ํฌํ•จํ•˜๋„๋ก ํ™•์žฅ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์š”์ ์€ ์ด ์ผ์ด ๊ฐ€๋Šฅํ•˜๊ณ  ์ž˜๋ชป๋  ์ˆ˜ ์žˆ๊ณ  ์œ„ํ—˜์„ ๋…ธ์ถœํ•  ์ˆ˜ ์žˆ๋Š” ๊ณณ์ด ์žˆ์ง€๋งŒ ๋งŽ์€ ๊ฒฝ์šฐ์— ๋” ํ’๋ถ€ํ•˜๊ณ  ๋” ๊ฐ„๊ฒฐํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ตฌ์ถ•ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ ๋กœ ์ €๋Š” ์ด ๋ฆฌํฌ์ง€ํ† ๋ฆฌ๊ฐ€ ์ œ์•ˆ๋œ ๋Œ€๋กœ ๋น„๋‹๋˜์–ด์•ผ ํ•œ๋‹ค๊ณ  ์ƒ๊ฐํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฌธ์ œ ๋กœ๊ฑฐ์— ์˜ํ•ด.
JWT๋ฅผ ์„ธ์…˜ ๋ฌธ์ž์—ด๋กœ ์‚ฌ์šฉํ•˜์—ฌ ๋‘ ์„ธ๊ณ„์˜ ์žฅ์ ์„ ๋ชจ๋‘ ์–ป์œผ๋ ค๋Š” ๊ฒฝํ–ฅ์€ ๋ฌธ์ œ๋ฅผ ์ผ์œผํ‚ค๋Š” ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค. ๊ฐ€์žฅ ํ˜„์ €ํ•˜๊ฒŒ ์ถฉ๋Œํ•  ์ˆ˜ ์žˆ๋Š” ์‹œ๊ฐ„ ์ดˆ๊ณผ/TTL ๊ธฐ๊ฐ„์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ ์ฒ˜์Œ์— ํ”ผํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ๊ฒƒ๊ณผ ๋™์ผํ•œ ๋„๋ฉ”์ธ ์•ก์„ธ์Šค ์ œํ•œ์„ ์ ์šฉํ•˜๋ฏ€๋กœ ๊ธฐ๋ณธ ์˜ˆ์ œ์— ๋„ฃ์œผ๋ฉด ์‚ฌ๋žŒ๋“ค์ด ์ฒ˜์Œ์— JWT๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋ฅผ ๋ฌป๊ฒŒ ๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ข…์†์„ฑ์œผ๋กœ JS๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์€ ์•„์ฃผ ์‚ฌ์†Œํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋ฐ”์ผ SPA์˜ ๋งฅ๋ฝ์—์„œ JS ๋ฌด๋ฃŒ ํด๋ผ์ด์–ธํŠธ๋ฅผ ์ˆ˜์šฉํ•  ํ•„์š”๋Š” ์—†์„ ๊ฒƒ์ž…๋‹ˆ๋‹ค. redis๊ฐ€ ์„ธ์…˜ ์ €์žฅ์„ ์œ„ํ•œ ํšจ์œจ์ ์ธ ์˜ต์…˜์„ ์ œ๊ณตํ•œ๋‹ค๊ณ  ์œ ์‚ฌํ•˜๊ฒŒ ์ฃผ์žฅํ•˜๋ฉด์„œ ์ด๊ฒƒ์ด ๋ฌธ์ œ๋ผ๊ณ  ์ œ์•ˆํ•˜๋Š” ๊ฒƒ์€ ์•ฝ๊ฐ„ ๋ชจ์ˆœ๋˜๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋ณด์ž…๋‹ˆ๋‹ค.
JWT์˜ ๋งŒ๋ฃŒ๋Š” ์ƒˆ๋กœ ๊ณ ์นจ(์ฟ ํ‚ค ์„ธ์…˜์ด ์ƒˆ๋กœ ๊ณ ์ณ์ง€๋Š” ๊ฒƒ๊ณผ ์ •ํ™•ํžˆ ๊ฐ™์€ ๋ฐฉ์‹)์œผ๋กœ ์ฒ˜๋ฆฌ๋˜๊ฑฐ๋‚˜ ์žฌ์ธ์ฆ์ด ํ•„์š”ํ•œ ์„ธ์…˜ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋ฅผ ์ œ๊ณตํ•œ๋‹ค๋Š” ์ ์—์„œ ์“ธ๋ชจ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค. JWT์— ์„œ๋ช…ํ•˜๋ฉด ๋ณ€์กฐ๋˜์ง€ ์•Š์•˜์œผ๋ฏ€๋กœ ์˜๊ตฌ ์ €์žฅ์†Œ ์„œ๋ฒ„ ์ธก ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ์— ๋Œ€ํ•œ ์ ˆ๋Œ€ ์š”๊ตฌ ์‚ฌํ•ญ์ด ์ œ๊ฑฐ๋˜์ง€๋งŒ ์›ํ•˜๋Š” ๊ฒฝ์šฐ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ๋งŽ์€ ์˜๊ฒฌ์ด ์žˆ๋Š” ๊ตฌํ˜„ ์—†์ด ์ฟ ํ‚ค ์„ธ์…˜๊ณผ ๋™์ผํ•œ ๊ฒฐ๊ณผ๋ฅผ ์–ป์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ ์ ˆํ•œ ๊ฒฝ์šฐ ๊ต์ฐจ ๋„๋ฉ”์ธ์„ ํ™œ์šฉํ•˜๋Š” ๋Šฅ๋ ฅ. ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋ชจ๋ฐ”์ผ ์•ฑ์—์„œ ๋กœ์ปฌ ์ €์žฅ์†Œ์— ์ฟ ํ‚ค ๋˜๋Š” JWT๋ฅผ ์ €์žฅํ•˜๋ฉด ๋” ๋งŽ์€ ์ œ์–ด๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋ธŒ๋ผ์šฐ์ € ๊ตฌํ˜„์˜ ๋ณด์•ˆ์— ๋Œ€ํ•œ ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋ฐ˜๋Œ€๋Š” ๊ณต๊ธ‰์—…์ฒด์— ๋Œ€ํ•œ ์‹ ๋ขฐ์™€ ์ด๋Ÿฌํ•œ ์ž๊ฒฉ ์ฆ๋ช… ์ฒ˜๋ฆฌ์— ๋Œ€ํ•œ ์Šน์ธ์˜ ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค.
์œ ์—ฐ์„ฑ์€ ๋งŽ์€ ๋ชจ๋ฐ”์ผ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ SPA ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์œ ์šฉํ•˜์ง€๋งŒ ์ œํ•œ ์‚ฌํ•ญ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
JWT๋Š” ๋‹จ์ˆœํžˆ ์„œ๋ช… ํ‚ค๋ฅผ ๋ณ€๊ฒฝํ•˜์—ฌ ๋ฌดํšจํ™”ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ ์ด๋Š” ๋‹ค์‹œ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค. ์„œ๋น„์Šค ์ „๋ฐ˜์— ๊ฑธ์ณ ๊ณตํ†ต ๊ณต์œ  ๊ฐœ์ธ ์„œ๋ช… ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์‚ฌ์šฉ์ž ์„ธ์…˜๋‹น ๋ฌด์ž‘์œ„๋กœ ์ƒ์„ฑํ•˜๊ณ  ์„ธ์…˜ ์ฟ ํ‚ค์˜ ์ผ์ข…์˜ ๊ฑฐ๋ถ€ ์ด์ ์„ ์‹คํ˜„ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
๊ฑฐ์˜ ๋ชจ๋“  ์ตœ์‹  JS ํ”„๋ ˆ์ž„์›Œํฌ๋Š” JWT๋ฅผ ์ง€์›ํ•˜๋ฉฐ ์ง€์›ํ•˜์ง€ ์•Š๋Š” ์ฃผ์š” ํ”Œ๋žซํผ์„ ์ฐพ๊ธฐ๊ฐ€ ์–ด๋ ค์šธ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ผ๋ถ€๋Š” ๊ทธ๋ ‡์ง€ ์•Š์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค(Wordpress JWT ํ”Œ๋Ÿฌ๊ทธ์ธ .. ํ  .. ์‚ดํŽด๋ณด์ง€ ์•Š์•˜์ง€๋งŒ ์ €๋ฅผ ๊ธด์žฅํ•˜๊ฒŒ ๋งŒ๋“ญ๋‹ˆ๋‹ค).
JWT ์‚ฌ์šฉ์—๋Š” OAUTH์— ๋Œ€ํ•œ ๋ฐฐ๊ฒฝ ์ง€์‹๊ณผ ์ฟ ํ‚ค ์„ธ์…˜ ์‚ฌ์šฉ์˜ ์žฅ๋‹จ์  ๋ฐ ์ด์ ์ด ํฌํ•จ๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ œ๊ฒŒ๋Š” ์—ฌ๋Ÿฌ ์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ผ๋ฐ˜ ๋ชจ๋ฐ”์ผ ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๊ฐœ๋ฐœ์ž์—๊ฒŒ ์‹ค์งˆ์ ์ธ ์—…๋ฌด์ƒ์˜ ์ด์ ์ด ์žˆ์ง€๋งŒ ์‰ฝ๊ฒŒ ๋น ์ง€๋Š” ํ•จ์ •์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์™„์ „ํžˆ ์„ค๋ช…ํ•˜๋ ค๋ฉด ๋งŽ์€ ์˜ˆ๊ฐ€ ํ•„์š”ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

JWT๋ฅผ ์ธ์ฆ์šฉ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ๋‚˜์˜ _์›๋ž˜ ์ถ”๋ก _์€ JWT๊ฐ€ CPU ๋ฐ”์šด๋“œ ์ธ์ง€ ํ™•์ธํ•œ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค(_๋‚ด "์ด์ „" ๋žฉํ†ฑ์€ ์ดˆ๋‹น 180k JWT๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์Œ_). ๋ฐ˜๋ฉด์— ๊ฐ„๋‹จํ•œ ํ† ํฐ์„ ์‚ฌ์šฉํ•˜๊ณ  ์กฐํšŒํ•ด์•ผ ํ•œ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ(๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค)์—์„œ ์ž‘์—…์€ I/O ๋ฐ”์šด๋“œ (_๋˜๋Š” ๋” ๋‚˜์œ ๋„คํŠธ์›Œํฌ
http://stackoverflow.com/questions/868568/what-do-the-terms-cpu-bound-and-io-bound-mean

์„ธ์…˜ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ _first_๋Š” JWT๊ฐ€ _์„œ๋ช…๋œ_ ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ JWT๊ฐ€ ์œ ํšจํ•œ์ง€ ํ™•์ธํ•˜๊ณ , ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒฝ์šฐ _์กฐ๊ธฐ_ ๋ฉ”์‹œ์ง€๋ฅผ ๊ฑฐ๋ถ€ํ•˜๊ณ , _then_ ์„ธ์…˜์ด ์•„์ง ๋ฌดํšจํ™”๋˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค(์˜ˆ: ์‚ฌ์šฉ์ž ๋กœ๊ทธ์•„์›ƒ). .

JWT๊ฐ€ Authorization ํ—ค๋”์˜ ํ† ํฐ์œผ๋กœ ์‚ฌ์šฉ๋˜๋„๋ก _์„ค๊ณ„๋˜์ง€ ์•Š์•˜์„ ์ˆ˜๋„ ์žˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

์ฐธ๊ณ : ๋‚˜๋Š” ์—ฌ์ „ํžˆ "์ฟ ํ‚ค ์—†์Œ" ๊ฐ๋„๊ฐ€ ์ด ์ถ”๊ฐ€ ์ •๋ณด/์ž์Šต์„œ๋ฅผ ์‹œ์ž‘ํ•˜๋Š” ์˜ฌ๋ฐ”๋ฅธ ๋ฐฉ๋ฒ•์ด ์•„๋‹ˆ๋ผ๋Š” ๋ฐ ๋™์˜ํ•ฉ๋‹ˆ๋‹ค. ๐Ÿ‘

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰

๊ด€๋ จ ๋ฌธ์ œ

sarneeh picture sarneeh  ยท  3์ฝ”๋ฉ˜ํŠธ

nelsonic picture nelsonic  ยท  5์ฝ”๋ฉ˜ํŠธ

rhewitt22 picture rhewitt22  ยท  5์ฝ”๋ฉ˜ํŠธ

rjmk picture rjmk  ยท  9์ฝ”๋ฉ˜ํŠธ

NE-SmallTown picture NE-SmallTown  ยท  5์ฝ”๋ฉ˜ํŠธ