๐Ÿ’ก 4์›” 2์งธ์ฃผ Weekly paper_๋กœ๊ทธ์ธ

yeonjeongยท2025๋…„ 4์›” 7์ผ

์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ vs ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ

์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ (Session-based Authentication)

๊ฐœ๋…:

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

์ž‘๋™ ๋ฐฉ์‹:

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

์žฅ์ :

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

๋‹จ์ :

  • ์„œ๋ฒ„ ์ž์› ์‚ฌ์šฉ ์ฆ๊ฐ€: ๋งŽ์€ ์‚ฌ์šฉ์ž์˜ ์„ธ์…˜ ์ •๋ณด๋ฅผ ์„œ๋ฒ„๊ฐ€ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์„œ๋ฒ„ ๋ถ€ํ•˜๊ฐ€ ์ฆ๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ํ™•์žฅ์„ฑ ๋ฌธ์ œ: ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ (๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ)์—์„œ ์„ธ์…˜ ๋™๊ธฐํ™” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์„ธ์…˜ ๊ณต์œ  ๋ฉ”์ปค๋‹ˆ์ฆ˜ (์˜ˆ: Redis, Memcached)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.
  • CORS (Cross-Origin Resource Sharing) ๋ฌธ์ œ: ์ฟ ํ‚ค ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ ๋‹ค๋ฅธ ๋„๋ฉ”์ธ ๊ฐ„ ์š”์ฒญ์—์„œ ์ œ์•ฝ์ด ์žˆ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • CSRF (Cross-Site Request Forgery) ๊ณต๊ฒฉ์— ์ทจ์•ฝ: ์ฟ ํ‚ค๋ฅผ ์ด์šฉํ•˜๋ฏ€๋กœ CSRF ๊ณต๊ฒฉ์— ์ทจ์•ฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ์ถ”๊ฐ€์ ์ธ ๋ณด์•ˆ ๋Œ€์ฑ… (์˜ˆ: CSRF ํ† ํฐ)์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ (Token-based Authentication)

๊ฐœ๋…:

  • ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ํ† ํฐ์„ ์ €์žฅํ•˜๊ณ  ์‚ฌ์šฉํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.
  • ์‚ฌ์šฉ์ž๊ฐ€ ๋กœ๊ทธ์ธํ•˜๋ฉด ์„œ๋ฒ„๋Š” ์ธ์ฆ ์„ฑ๊ณต ์‹œ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ํ† ํฐ (์ผ๋ฐ˜์ ์œผ๋กœ JWT - JSON Web Token)์„ ๋ฐœ๊ธ‰ํ•ฉ๋‹ˆ๋‹ค.
  • ์ด ํ† ํฐ์€ ํด๋ผ์ด์–ธํŠธ ์ธก (๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€, ์ฟ ํ‚ค ๋“ฑ)์— ์ €์žฅ๋ฉ๋‹ˆ๋‹ค.
  • ํด๋ผ์ด์–ธํŠธ๋Š” ์ดํ›„ ์š”์ฒญ ์‹œ๋งˆ๋‹ค ์ด ํ† ํฐ์„ HTTP ํ—ค๋” (Authorization ํ—ค๋”์— Bearer ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ํฌํ•จ)์— ๋‹ด์•„ ์„œ๋ฒ„์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  • ์„œ๋ฒ„๋Š” ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•˜์—ฌ ์‚ฌ์šฉ์ž๋ฅผ ์ธ์ฆํ•ฉ๋‹ˆ๋‹ค. ์„œ๋ฒ„๋Š” ํ† ํฐ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š๋Š” Stateless ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค.

์ž‘๋™ ๋ฐฉ์‹:

  1. ๋กœ๊ทธ์ธ ์š”์ฒญ: ์‚ฌ์šฉ์ž๊ฐ€ ์•„์ด๋””์™€ ๋น„๋ฐ€๋ฒˆํ˜ธ ๋“ฑ ์ธ์ฆ ์ •๋ณด๋ฅผ ์„œ๋ฒ„์— ์ „์†กํ•ฉ๋‹ˆ๋‹ค.
  2. ์ธ์ฆ ๋ฐ ํ† ํฐ ์ƒ์„ฑ: ์„œ๋ฒ„๋Š” ๋ฐ›์€ ์ •๋ณด๋ฅผ ๊ฒ€์ฆํ•˜๊ณ , ์œ ํšจํ•œ ๊ฒฝ์šฐ ์ ‘๊ทผ ํ† ํฐ (Access Token)์„ ์ƒ์„ฑํ•˜์—ฌ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ต์œผ๋กœ ๋ณด๋ƒ…๋‹ˆ๋‹ค. ํ•„์š”์— ๋”ฐ๋ผ ๊ฐฑ์‹  ํ† ํฐ (Refresh Token)๋„ ํ•จ๊ป˜ ๋ฐœ๊ธ‰๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  3. ํ† ํฐ ์ €์žฅ: ํด๋ผ์ด์–ธํŠธ๋Š” ๋ฐ›์€ ํ† ํฐ์„ ์•ˆ์ „ํ•œ ์ €์žฅ์†Œ (์˜ˆ: Local Storage, HttpOnly ์ฟ ํ‚ค)์— ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  4. ์š”์ฒญ ์‹œ ํ† ํฐ ์ „์†ก: ํด๋ผ์ด์–ธํŠธ๋Š” ๋ณดํ˜ธ๋œ ๋ฆฌ์†Œ์Šค์— ์ ‘๊ทผํ•  ๋•Œ๋งˆ๋‹ค HTTP ์š”์ฒญ ํ—ค๋”์˜ Authorization ํ•„๋“œ์— Bearer ์Šคํ‚ค๋งˆ์™€ ํ•จ๊ป˜ ํ† ํฐ์„ ๋‹ด์•„ ์ „์†กํ•ฉ๋‹ˆ๋‹ค (์˜ˆ: Authorization: Bearer <token>).
  5. ํ† ํฐ ๊ฒ€์ฆ: ์„œ๋ฒ„๋Š” ์š”์ฒญ ํ—ค๋”์—์„œ ํ† ํฐ์„ ์ถ”์ถœํ•˜์—ฌ ์„œ๋ช… (Signature)์„ ๊ฒ€์ฆํ•˜๊ณ , ๋งŒ๋ฃŒ ์—ฌ๋ถ€ ๋“ฑ์„ ํ™•์ธํ•˜์—ฌ ํ† ํฐ์˜ ์œ ํšจ์„ฑ์„ ๊ฒ€์ฆํ•ฉ๋‹ˆ๋‹ค.
  6. ์ธ์ฆ ๋ฐ ๊ถŒํ•œ ๋ถ€์—ฌ: ํ† ํฐ์ด ์œ ํšจํ•˜๋ฉด ํ† ํฐ์— ํฌํ•จ๋œ ์ •๋ณด (Payload)๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๊ถŒํ•œ์„ ํ™•์ธํ•˜์—ฌ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
  7. ๋กœ๊ทธ์•„์›ƒ (์„ ํƒ์ ): ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ์€ Statelessํ•˜๋ฏ€๋กœ ๋ช…์‹œ์ ์ธ ๋กœ๊ทธ์•„์›ƒ ๊ณผ์ •์ด ํ•„์ˆ˜๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ํด๋ผ์ด์–ธํŠธ ์ธก์—์„œ ํ† ํฐ์„ ์‚ญ์ œํ•˜๋ฉด ๋” ์ด์ƒ ์ธ์ฆ๋œ ์š”์ฒญ์„ ๋ณด๋‚ผ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค. ์„œ๋ฒ„ ์ธก์—์„œ ํ† ํฐ์„ ๋ฌดํšจํ™”ํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜ (์˜ˆ: ๋ธ”๋ž™๋ฆฌ์ŠคํŠธ ๊ด€๋ฆฌ)์„ ๊ตฌํ˜„ํ•  ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค.
  8. ํ† ํฐ ๊ฐฑ์‹  (Refresh Token ์‚ฌ์šฉ ์‹œ): ์ ‘๊ทผ ํ† ํฐ์ด ๋งŒ๋ฃŒ๋˜๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ๊ฐฑ์‹  ํ† ํฐ์„ ์„œ๋ฒ„์— ๋ณด๋‚ด ์ƒˆ๋กœ์šด ์ ‘๊ทผ ํ† ํฐ์„ ๋ฐœ๊ธ‰๋ฐ›์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

์žฅ์ :

  • ํ™•์žฅ์„ฑ: ์„œ๋ฒ„๊ฐ€ ํ† ํฐ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์—ฌ๋Ÿฌ ๋Œ€์˜ ์„œ๋ฒ„๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ํ™•์žฅ์„ฑ์ด ๋›ฐ์–ด๋‚ฉ๋‹ˆ๋‹ค (Stateless).
  • ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ์ง€์›: ํ† ํฐ์€ ์ฟ ํ‚ค์— ์˜์กดํ•˜์ง€ ์•Š์œผ๋ฏ€๋กœ ์›น ๋ธŒ๋ผ์šฐ์ €๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๋ชจ๋ฐ”์ผ ์•ฑ, ๋ฐ์Šคํฌํ†ฑ ์•ฑ ๋“ฑ ๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ์—์„œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • CORS ๋ฌธ์ œ ํ•ด๊ฒฐ ์šฉ์ด: HTTP ํ—ค๋”๋ฅผ ํ†ตํ•ด ํ† ํฐ์„ ์ „๋‹ฌํ•˜๋ฏ€๋กœ CORS ์ œ์•ฝ์—์„œ ๋น„๊ต์  ์ž์œ ๋กญ์Šต๋‹ˆ๋‹ค.
  • ๋ณด์•ˆ์„ฑ: JWT๋Š” ์„œ๋ช…์„ ํ†ตํ•ด ์œ„๋ณ€์กฐ๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ํ•„์š”ํ•œ ์ •๋ณด๋งŒ ํ† ํฐ์— ๋‹ด์•„ ์ „์†กํ•˜์—ฌ ๋ณด์•ˆ์„ฑ์„ ๋†’์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • API ์„œ๋ฒ„์— ์ ํ•ฉ: RESTful API์™€ ๊ฐ™์€ Stateless ํ™˜๊ฒฝ์— ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.

๋‹จ์ :

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

์š”์•ฝ ๋น„๊ต

ํŠน์ง•์„ธ์…˜ ๊ธฐ๋ฐ˜ ์ธ์ฆ (Session-based Authentication)ํ† ํฐ ๊ธฐ๋ฐ˜ ์ธ์ฆ (Token-based Authentication)
์ƒํƒœ ์œ ์ง€Stateful (์„œ๋ฒ„๊ฐ€ ์„ธ์…˜ ์ •๋ณด ์ €์žฅ)Stateless (์„œ๋ฒ„๋Š” ํ† ํฐ ์ •๋ณด ์ €์žฅ ์•ˆ ํ•จ)
์ €์žฅ ์œ„์น˜์„ธ์…˜ ์ •๋ณด: ์„œ๋ฒ„, ์„ธ์…˜ ID: ์ฟ ํ‚คํ† ํฐ: ํด๋ผ์ด์–ธํŠธ (๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€, ์ฟ ํ‚ค ๋“ฑ)
ํ™•์žฅ์„ฑ์ œํ•œ์  (์„ธ์…˜ ๋™๊ธฐํ™” ํ•„์š”)์šฐ์ˆ˜
ํ”Œ๋žซํผ ์ง€์›์›น ๋ธŒ๋ผ์šฐ์ €์— ์ตœ์ ํ™”๋‹ค์–‘ํ•œ ํ”Œ๋žซํผ ์ง€์›
CORS๋ฌธ์ œ ๋ฐœ์ƒ ๊ฐ€๋Šฅ์„ฑ ์žˆ์Œ๋น„๊ต์  ์ž์œ ๋กœ์›€
๋ณด์•ˆCSRF ๊ณต๊ฒฉ์— ์ทจ์•ฝ, ์„ธ์…˜ ๊ด€๋ฆฌ ์ค‘์š”ํ† ํฐ ํƒˆ์ทจ ์œ„ํ—˜ ์กด์žฌ, ํ† ํฐ ๊ด€๋ฆฌ ๋ฐ ์œ ํšจ ๊ธฐ๊ฐ„ ์ค‘์š”
๊ตฌํ˜„ ๋‚œ์ด๋„๋น„๊ต์  ๊ฐ„๋‹จ๋‹ค์†Œ ๋ณต์žก
API ์ ํ•ฉ์„ฑ์ „ํ†ต์ ์ธ ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ฃผ๋กœ ์‚ฌ์šฉRESTful API ๋“ฑ Stateless ํ™˜๊ฒฝ์— ์ ํ•ฉ
profile
Backend ๊ฐœ๋ฐœ์ž๋กœ ๊ฑฐ๋“ญ๋‚˜๋Š” ๊ทธ ๋‚ ๊นŒ์ง€ !

0๊ฐœ์˜ ๋Œ“๊ธ€