πŸ”μΈμ¦/인가 μ„œλ²„ - 인증 방식에 λŒ€ν•œ κ³ λ―Ό

μ΄ν•˜μ–€Β·2023λ…„ 1μ›” 19일
1

🎿 Smailegate(Winter-Devcamp)

λͺ©λ‘ 보기
16/49

Session vs Token

*λͺ¨λ“  λ‚΄μš©μ€ 제 생각 + μ°Έκ³  λ§ν¬μ—μ„œ κ°€μ Έμ™”μŠ΅λ‹ˆλ‹€!

πŸ”“ 항상 자주 μ‚¬μš©ν•˜λ˜ 방식, Session

λŒ€ν•™κ΅ 3학년이 되며 본격적으둜 "μ›Ήν”„λ‘œκ·Έλž˜λ°"κ³Ό "μ›Ήμ‘μš©"μ΄λΌλŠ” κ°•μ˜λ₯Ό μˆ˜κ°•ν–ˆλ‹€.
λ‹€λ₯Έ κ΅μˆ˜λ‹˜μ΄ μˆ˜μ—…μ„ ν•˜μ…¨κΈ° λ•Œλ¬Έμ—, 결이 λ‹€λ₯΄λ‹€λŠ” λŠλ‚Œμ€ 많이 λ°›μ•„μ˜€κΈ°λŠ” ν–ˆμ§€λ§Œ κ·Έλž˜λ„ 기초λ₯Ό 잘 ν•™μŠ΅ν•œ 것 κ°™λ‹€λŠ” 생각을 ν–ˆλ‹€.
μ›Ήμ˜ μ•ž 단에 ν•΄λ‹Ήν•˜λŠ” HTML, CSS, JSλ₯Ό 배우고 μ„œλ²„ μ‚¬μ΄λ“œμ™€ μ•ž 단을 μ™”λ‹€κ°”λ‹€ν•˜λ©° μ‚¬μš©ν•  수 μžˆλŠ” PHPλ₯Ό λ°°μ› λ‹€.
μš°μ„ , λ‚΄κ°€ ν•˜κ³  싢은 μ΄μ•ΌκΈ°λŠ” λ‚΄κ°€ κ·Έλ™μ•ˆ "μ™œ" Session을 κ³ μ§‘ν•΄μ™”λŠ”μ§€μ΄λ‹€.

  • μΏ ν‚€, μ„Έμ…˜...μš°λ¦¬κ°€ μ›ΉλΈŒλΌμš°μ €μ— μ ‘μ†ν•˜λ©΄ ν”ν•˜κ²Œ 많이 λ“€μ—ˆλ˜ 단어닀.

  • μΏ ν‚€λŠ” μ›Ήμ‚¬μ΄νŠΈ λ°©λ¬Έ μ‹œμ— λΈŒλΌμš°μ €λ‹¨μ—μ„œ μ‚¬μš©μž 정보가 μ €μž₯λ˜λŠ” λ‚΄μš©μ΄λ‹€.

  • μΏ ν‚€λŠ” λ³΄μ•ˆμ— μ·¨μ•½ν•˜λ‹€(ν΄λΌμ΄μ–ΈνŠΈ λ˜λŠ” 해컀가 νƒˆμ·¨ν•˜κΈ° μ•„μ£Ό 쉬움)λŠ” μ•„μ£Ό 큰 λ¬Έμ œκ°€ 있기 λ•Œλ¬Έμ— λŒ€λΆ€λΆ„μ€ μ„Έμ…˜ 방식 ν˜Ήμ€ 토큰 방식을 μ‚¬μš©ν•œλ‹€.

  • μ„Έμ…˜μ€ μ„œλ²„λ‹¨μ—μ„œ μ‚¬μš©μž 정보λ₯Ό μ €μž₯ν•˜λŠ” ꡬ쑰이닀.

μ„œλ²„μ—μ„œ μ €μž₯ν•œλ‹€λŠ” μž₯점도 있고, ν™•μ‹€νžˆ 쿠킀보닀 훨씬 μ•ˆμ „ν•˜λŠ” 것을 μ•Œ 수 μžˆκΈ°μ— κ³„μ†ν•΄μ„œ 선택해왔닀.

πŸ€·β€β™€οΈ 그럼 μ™œ, μ§€κΈˆ ν”„λ‘œμ νŠΈμ—λŠ” μ„Έμ…˜ λ°©μ‹λ§Œμ„ μ μš©ν•˜μ§€λŠ” μ•Šμ„ 생각인건지?

μ΄μœ λŠ” 생각보닀 μ•„μ£Ό λ‹¨μˆœν•˜λ‹€.
μ„Έμ…˜ 방식은 ν˜„μž¬ λ‚΄κ°€ 이 ν”„λ‘œμ νŠΈλ₯Ό μœ„ν•΄ 이루고자 ν•˜λŠ” "λŒ€μš©λŸ‰ νŠΈλž˜ν”½"을 μ„Έμ…˜ λ°©μ‹μœΌλ‘œλŠ” μ„œλ²„λ₯Ό λ¬΄ν•œνžˆ λŠ˜λ¦¬κ±°λ‚˜, μŠ€ν‹°ν‚€ μ„Έμ…˜κ°™μ€ 방식을 선택할 μˆ˜λ„ μžˆκ² μ§€λ§Œ λΉ„μš©μ΄ 많이 λ“œλŠ” λ¬Έμ œκ°€ μ „ν˜€ ν•΄κ²°λ˜μ§€ μ•ŠλŠ”λ‹€.
즉, 인증/인가 μ„œλ²„μ— μ ‘μ†μžκ°€ 폭발적으둜 λŠ˜μ–΄λ‚  경우 μ„œλ²„μ— λΆ€ν•˜κ°€ μ‰½κ²Œ λ°œμƒν•˜λŠ”λ°, μ„œλ²„λ₯Ό λŠ˜λ¦¬λŠ” 방식은 λ„ˆλ¬΄ λΉ„νš¨μœ¨μ μ΄λΌλŠ” κ±°λ‹€.

πŸ”Ž Token 방식!!

  1. 토큰 기반의 인증 ν”Œλ‘œμš°(좜처 : 상단에 ν‘œκΈ°)

  2. JWT

  • Token 방식 μ€‘μ—μ„œλ„ JWTλ₯Ό μ‚¬μš©ν•  μ˜ˆμ •μ΄λ‹€.
  • JWTλŠ” JSON Web Token의 μ•½μžλ‘œ, ν˜„μž¬ λ‚˜μ˜ μ£Όλ ₯ 언어인 Javaμ—μ„œλ„ μ‚¬μš©μ΄ κ°€λŠ₯ν•˜κ³  κ°€μž₯ 널리 μ•Œλ €μ§„ κΈ°μˆ μ΄κΈ°μ— μ±„νƒν–ˆλ‹€.
  • Token 방식 자체λ₯Ό κ²°μ •ν•œ 것은 PHPλ₯Ό 잘 닀루기 λ•Œλ¬Έλ„ μžˆμ—ˆμ§€λ§Œ, 이번 ν”„λ‘œμ νŠΈμ—μ„œ μƒˆλ‘œμš΄ ν”„λ ˆμž„μ›Œν¬ "Sping" ν”„λ‘œμ νŠΈλ₯Ό λ‹€λ€„λ³΄κΈ°λ‘œ ν–ˆκΈ° λ•Œλ¬Έμ— Spring을 기반으둜 JWTλ₯Ό μ΄μš©ν•  μ˜ˆμ •μ΄λ‹€.

βš™οΈ μ°Έκ³ ) Token λ°©μ‹μ˜ μž₯단점?

이번 캠프에 μ°Έμ—¬ν•˜λ©΄μ„œ κ°€μž₯ 많이 λ“€μ–΄μ˜¨ 말일 것이닀.
ITμ—μ„œλŠ” λͺ¨λ“  기술의 μž₯단점이 있고, μž₯점이 λͺ…ν™•ν•œ 만큼 단점도 λͺ…ν™•ν•˜λ©° 정닡이 λ˜λŠ” κΈ°μˆ μ€ μžˆμ„ 수 μ—†λ‹€λŠ” 것.
그렇기에 λΆ„λͺ… λ‚΄κ°€ μ„ νƒν•œ Token 방식도 μž₯단점이 μ‘΄μž¬ν•  것이닀.
ν•˜μ§€λ§Œ, ν˜„μž¬μ˜ λ‚΄ 선택은 Token의 μž₯점을 ν™œμš©ν•΄ νŒ€ ν”„λ‘œμ νŠΈμ˜ λͺ©μ μ— λ§žλŠ” κ°œλ°œμ„ ν•˜κ³ μžν•¨μ— μžˆλ‹€.

κ·Έλ ‡κΈ° λ•Œλ¬Έμ— μ•”ν˜Έν™” 방식 μ •λ„λ§Œ 계산해보며 이둠적인 λ‚΄μš©μ— 머물러 있던 'λ‚˜'μ—μ„œ Token 방식을 κ²½ν—˜ν•΄λ³΄λ©° μ‹€μ œ κ΅¬ν˜„μ— μ μš©ν•  수 μžˆλŠ” 'λ‚˜'κ°€ 될 것이닀.

🎫 결둠은?

  • κΈ°λ³Έ 개발 μ‹œμ— μ‚¬μš©ν–ˆλ˜ Session λ°©μ‹λ§Œμ„ λ„μž…ν•  경우, 닀쀑 μ ‘μ†μž λ°œμƒ μ‹œ μ„œλ²„ κ³ΌλΆ€ν•˜μ— λŒ€ν•œ μš°λ €μ™€ 처리 λΉ„μš© λ“±μ˜ λ‹€λ₯Έ 문제λ₯Ό 크게 κ³ λ―Όν•˜μ§€ μ•Šκ³  μ‚¬μš©ν•  수 μžˆλŠ” Token 방식을 μ‚¬μš©ν•˜λŠ” κ²ƒμœΌλ‘œ κ²°μ •ν–ˆλ‹€!!

끝!

profile
μ–Έμ  κ°€ λ‚΄ μ½”λ“œλ‘œ 세상에 κΈ°μ—¬ν•  수 μžˆλ„λ‘, BE 개발 기둝 λ…ΈνŠΈβ˜˜οΈ

0개의 λŒ“κΈ€