๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ด๋…ธ๋ฒ ์ด์…˜์บ ํ”„/์ง€์‹์Œ“๊ธฐ

JWT, API

๐ŸŸจ JWT

JWT๋Š” JSON Web Token์˜ ์•ฝ์ž๋กœ ๋‹น์‚ฌ์ž ๊ฐ„์— ์ •๋ณด๋ฅผ JSON ๊ฐœ์ฒด๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ „์†กํ•˜๊ธฐ ์œ„ํ•œ ๊ฐ„๊ฒฐํ•˜๊ณ  ์ž์ฒด ํฌํ•จ๋œ ๋ฐฉ๋ฒ•์„ ์ •์˜ํ•˜๋Š” ๊ฐœ๋ฐฉํ˜• ํ‘œ์ค€์ด๋‹ค. ์ด ์ •๋ณด๋Š” ๋””์ง€ํ„ธ ์„œ๋ช…๋˜์–ด ์žˆ์œผ๋ฏ€๋กœ ํ™•์ธํ•˜๊ณ  ์‹ ๋ขฐํ•  ์ˆ˜ ์žˆ๋‹ค. JWT๋Š” ๋น„๋ฐ€( HMAC ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์‚ฌ์šฉ) ๋˜๋Š” RSA ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ณต๊ฐœ/๊ฐœ์ธ ํ‚ค๋ฅผ  ์‚ฌ์šฉํ•˜์—ฌ ์„œ๋ช…ํ•  ์ˆ˜ ์žˆ๋‹ค.

  • Compact : ํฌ๊ธฐ ๋•Œ๋ฌธ์— URL, POST ๋งค๊ฐœ๋ณ€์ˆ˜ ๋˜๋Š” HTTP ํ—ค๋” ๋‚ด๋ถ€๋ฅผ ํ†ตํ•ด ๋ณด๋‚ผ ์ˆ˜ ์žˆ๋‹ค. ๋˜ํ•œ ํฌ๊ธฐ ๋•Œ๋ฌธ์— ์ „์†ก ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
  • ์ž์ฒด ํฌํ•จ : ํŽ˜์ด๋กœ๋“œ์—๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๋‘ ๋ฒˆ ์ด์ƒ ์ฟผ๋ฆฌํ•˜์ง€ ์•Š๋„๋ก ์‚ฌ์šฉ์ž์— ๋Œ€ํ•œ ๋ชจ๋“  ํ•„์ˆ˜ ์ •๋ณด๊ฐ€ ํฌํ•จ๋œ๋‹ค.

JWT ๊ตฌ์กฐ

JWT๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ ( )์œผ๋กœ ๊ตฌ๋ถ„๋œ ์„ธ ๋ถ€๋ถ„์œผ๋กœ ๊ตฌ์„ฑ๋œ๋‹ค.

xxxxx.yyyyy.zzzzz

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

JWT PROCESS

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์ด ๋ชจ๋‘ ๋ฐœ๊ธ‰๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๐ŸŸจ API

API๋Š” Application Programming Interface ์˜ ์•ฝ์ž๋กœ ๋‘ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์„œ๋กœ ํ†ต์‹ ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์ค‘๊ฐœ์ž์ด๋‹ค. Facebook๊ณผ ๊ฐ™์€ ์•ฑ์„ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ธ์Šคํ„ดํŠธ ๋ฉ”์‹œ์ง€๋ฅผ ๋ณด๋‚ด๊ฑฐ๋‚˜ ํœด๋Œ€์ „ํ™”๋กœ ๋‚ ์”จ๋ฅผ ํ™•์ธํ•  ๋•Œ๋งˆ๋‹ค API๋ฅผ ์‚ฌ์šฉํ•˜๊ณ  ์žˆ๋‹ค.

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

API ์œ ํ˜•

1. private API
: private API๋Š” ๋‚ด๋ถ€ API๋กœ, ํšŒ์‚ฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ž์ฒด ์ œํ’ˆ๊ณผ ์„œ๋น„์Šค๋ฅผ ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•ด ๋‚ด๋ถ€์ ์œผ๋กœ ๋ฐœํ–‰ํ•œ๋‹ค. ๋”ฐ๋ผ์„œ ์ œ 3์ž์—๊ฒŒ ๋…ธ์ถœ๋˜์ง€ ์•Š๋Š”๋‹ค.

2. public API
: public API๋Š” ๊ฐœ๋ฐฉํ˜• API๋กœ, ๋ชจ๋‘์—๊ฒŒ ๊ณต๊ฐœ๋œ๋‹ค. ๋ˆ„๊ตฌ๋‚˜ ์ œํ•œ ์—†์ด API๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒŒ ํŠน์ง•์ด๋‹ค.

3. partner API
:partner API๋Š” ๊ธฐ์—…์ด ๋ฐ์ดํ„ฐ ๊ณต์œ ์— ๋™์˜ํ•˜๋Š” ํŠน์ •์ธ๋“ค๋งŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋น„์ฆˆ๋‹ˆ์Šค ๊ด€๊ณ„์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํŽธ์ด๋ฉฐ, ์ข…์ข… ํŒŒํŠธ๋„ˆ ํšŒ์‚ฌ ๊ฐ„์— ์†Œํ”„ํŠธ์›จ์–ด๋ฅผ ํ†ตํ•ฉํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋œ๋‹ค.

API PROCESS

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

API๊ฐ€ ์ƒ์„ฑ๋œ ์‹œ๊ธฐ์™€ ์ด์œ ์— ๋”ฐ๋ผ API๋Š” ๋„ค ๊ฐ€์ง€ ๋ฐฉ์‹์œผ๋กœ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SOAP API 

์ด API๋Š” ๋‹จ์ˆœ ๊ฐ์ฒด ์ ‘๊ทผ ํ”„๋กœํ† ์ฝœ์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„๋Š” XML์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฉ”์‹œ์ง€๋ฅผ ๊ตํ™˜ํ•ฉ๋‹ˆ๋‹ค. ๊ณผ๊ฑฐ์— ๋” ๋งŽ์ด ์‚ฌ์šฉ๋˜์—ˆ์œผ๋ฉฐ ์œ ์—ฐ์„ฑ์ด ๋–จ์–ด์ง€๋Š” API์ž…๋‹ˆ๋‹ค.

RPC API

์ด API๋ฅผ ์›๊ฒฉ ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์—์„œ ํ•จ์ˆ˜๋‚˜ ํ”„๋กœ์‹œ์ €๋ฅผ ์™„๋ฃŒํ•˜๋ฉด ์„œ๋ฒ„๊ฐ€ ์ถœ๋ ฅ์„ ํด๋ผ์ด์–ธํŠธ๋กœ ๋‹ค์‹œ ์ „์†กํ•ฉ๋‹ˆ๋‹ค.

Websocket API

Websocket API๋Š” JSON ๊ฐ์ฒด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•˜๋Š” ๋˜ ๋‹ค๋ฅธ ์ตœ์‹  ์›น API ๊ฐœ๋ฐœ์ž…๋‹ˆ๋‹ค. WebSocket API๋Š” ํด๋ผ์ด์–ธํŠธ ์•ฑ๊ณผ ์„œ๋ฒ„ ๊ฐ„์˜ ์–‘๋ฐฉํ–ฅ ํ†ต์‹ ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์—ฐ๊ฒฐ๋œ ํด๋ผ์ด์–ธํŠธ์— ์ฝœ๋ฐฑ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•  ์ˆ˜ ์žˆ์–ด REST API๋ณด๋‹ค ํšจ์œจ์ ์ž…๋‹ˆ๋‹ค.

REST API

์˜ค๋Š˜๋‚  ์›น์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๊ณ  ์œ ์—ฐํ•œ API์ž…๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์„œ๋ฒ„์— ์š”์ฒญ์„ ๋ฐ์ดํ„ฐ๋กœ ์ „์†กํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๊ฐ€ ์ด ํด๋ผ์ด์–ธํŠธ ์ž…๋ ฅ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ด๋ถ€ ํ•จ์ˆ˜๋ฅผ ์‹œ์ž‘ํ•˜๊ณ  ์ถœ๋ ฅ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค์‹œ ํด๋ผ์ด์–ธํŠธ์— ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. 

API ์‚ฌ์šฉ๋ฐฉ๋ฒ•

1.API ํ‚ค๋ฅผ ๋ฐ›์Šต๋‹ˆ๋‹ค. API ๊ณต๊ธ‰ ์—…์ฒด์˜ ํ™•์ธ์„ ๋ฐ›์€ ๊ณ„์ •์„ ์ƒ์„ฑํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค.

2.HTTP API ํด๋ผ์ด์–ธํŠธ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ˆ˜์‹ ๋œ API ํ‚ค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ API ์š”์ฒญ์„ ์‰ฝ๊ฒŒ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3.API ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์—†๋Š” ๊ฒฝ์šฐ API ์„ค๋ช…์„œ๋ฅผ ์ฐธ์กฐํ•˜์—ฌ ๋ธŒ๋ผ์šฐ์ €์—์„œ ์š”์ฒญ์„ ์ง์ ‘ ๊ตฌ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4.์ƒˆ API ๊ตฌ๋ฌธ์— ์ต์ˆ™ํ•ด์ง€๋ฉด ์ฝ”๋“œ์—์„œ ์ด๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.


๐ŸŸจ JWT์™€ API

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

๐ŸŸจ์ถœ์ฒ˜ ๋ฐ ์ฐธ๊ณ ์ž๋ฃŒ

https://jwt.io/introduction/

 

JWT.IO

JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties.

jwt.io

http://www.opennaru.com/opennaru-blog/jwt-json-web-token/

 

JWT (JSON Web Token) ์ดํ•ดํ•˜๊ธฐ์™€ ํ™œ์šฉ ๋ฐฉ์•ˆ - Opennaru, Inc.

JWT ๋Š” JSON Web Token์˜ ์•ฝ์ž๋กœ ์ „์ž ์„œ๋ช… ๋œ URL-safe (URL๋กœ ์ด์šฉํ•  ์ˆ˜์žˆ๋Š” ๋ฌธ์ž ๋งŒ ๊ตฌ์„ฑ๋œ)์˜ JSON์ž…๋‹ˆ๋‹ค.JWT๋Š” ์†์„ฑ ์ •๋ณด (Claim)๋ฅผ JSON ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•œ ํ† ํฐ์œผ๋กœ RFC7519 ํ‘œ์ค€ ์ž…๋‹ˆ๋‹ค.

www.opennaru.com

https://aws.amazon.com/ko/what-is/api/

 

API๋ž€ ๋ฌด์—‡์ธ๊ฐ€์š”? - API ์ดˆ๋ณด์ž๋ฅผ ์œ„ํ•œ ๊ฐ€์ด๋“œ - AWS

 

aws.amazon.com

https://www.algolia.com/blog/engineering/api-keys-vs-json-web-tokens/

 

API keys vs JWT authorization: Which is best?

Sometimes, API keys are sufficient; more often, JWT (JSON Web Authorization) offers more protection, ease-of-use, and flexibility.

www.algolia.com