개발일기

📝 OAuth 2.0, 진짜 이해하기 쉽게 정리해드립니다

뱅우 2025. 5. 19. 09:48
반응형

 

“카카오 로그인 붙이긴 했는데, 이거 도대체 어떻게 돌아가는 거지?”
“OAuth는 맨날 들어도 도무지 감이 안 와요.”

이런 생각 해보신 적 있으시죠?
오늘은 OAuth 2.0을 진짜 쉽게, 정말 현실적인 예시로 정리해보겠습니다.
소셜 로그인, 외부 API 연동, 사용자 인증 등 다양한 곳에 쓰이는 핵심 개념이니,
한 번은 확실히 이해하고 넘어가야 합니다!


🔑 왜 OAuth가 필요한가?

우리는 다양한 앱과 웹사이트에서 로그인을 합니다.
근데 서비스마다 아이디/비번 만들기 귀찮죠?

그래서 생긴 게
👉 “구글로 로그인”, “카카오로 로그인” 같은 소셜 로그인 버튼입니다.

이걸 가능하게 해주는 기술이 바로 OAuth 2.0입니다.

📌 핵심 개념:
“아이디/비번은 절대 외부에 안 주고, 대신 사용할 수 있는 권한(토큰)을 줍니다.”


👥 등장인물 4명

OAuth의 세계에는 꼭 기억해야 할 4가지 역할이 있어요.

역할설명예시
Resource Owner 자원 소유자 사용자(당신)
Client 자원에 접근하고 싶은 앱 A 서비스
Authorization Server 인증/토큰 발급 카카오 로그인 서버
Resource Server 실제 정보(API)를 보관 카카오 API 서버
 

이 4명이 협업해서 **“안전하게 내 정보 접근”**을 만들어냅니다.


🔁 OAuth 2.0 흐름 요약 (Authorization Code 방식)

예시: A 서비스에서 “카카오로 로그인” 버튼을 눌렀을 때

  1. A 앱 → 카카오 로그인 페이지 이동
    사용자는 카카오 계정으로 로그인
  2. 사용자 → "허용" 클릭
    카카오는 A 앱에게 Authorization Code를 넘김
  3. A 앱 → Authorization Code로 Access Token 요청
    카카오는 Access Token을 발급해줌
  4. A 앱 → Access Token으로 API 호출
    사용자 정보(ex. 이름, 이메일)를 받아옴

👉 요약:
A 앱은 비밀번호를 몰라도, 사용자의 정보 접근 권한을 안전하게 위임받는 구조입니다.


🔐 Access Token vs Refresh Token

종류설명
Access Token 실제 API 호출에 사용하는 토큰 (유효기간 짧음)
Refresh Token Access Token이 만료되었을 때 갱신에 사용하는 토큰 (장기 사용)
 

✅ Access Token이 만료돼도
다시 로그인할 필요 없이 Refresh Token으로 새 토큰을 받을 수 있어요.


💡 OAuth 2.0은 왜 안전할까?

  • 비밀번호를 절대 외부 앱에 직접 넘기지 않음
  • 허용 범위(Scopes)를 설정할 수 있음
    → 예: 이메일만 허용, 친구 목록은 허용 X
  • 토큰은 유효기간이 있으며, 쉽게 폐기 가능
  • 인증 서버와 리소스 서버를 분리해서 보안 강화

🔍 OAuth와 OpenID Connect 차이?

항목설명
OAuth 2.0 권한 위임 (데이터 접근용)
OpenID Connect (OIDC) OAuth + 로그인 기능 포함 (사용자 인증까지)
 

“로그인만 원한다면 OIDC”
“데이터 접근만 원한다면 OAuth”

요즘 대부분의 소셜 로그인은 OpenID Connect 기반의 OAuth 2.0입니다.


✅ 요약

  • OAuth 2.0은 아이디/비번 없이, 외부 앱에게 권한만 위임하는 구조
  • Access Token, Refresh Token으로 보안성과 편의성을 동시에 챙김
  • 소셜 로그인, API 인증의 핵심 기술
  • 구조만 알면 의외로 간단합니다!

📌 마무리 한 줄 요약

OAuth 2.0은 **"정보는 안 주고, 접근 권한만 주는 안전한 인증 프레임워크"**입니다.

이제는 단순히 "카카오 로그인 붙이는 법"에서 더 나아가,
**"이게 왜 안전한지, 어떻게 동작하는지"**를 이해하고 개발해보세요.
훨씬 더 믿을 수 있는 코드를 짤 수 있을 거예요!

 

#OAuth #OAuth2 #API인증 #카카오로그인 #OpenIDConnect #소셜로그인 #AccessToken #RefreshToken #프론트백엔드 #개발블로그

반응형