“카카오 로그인 붙이긴 했는데, 이거 도대체 어떻게 돌아가는 거지?”
“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 서비스에서 “카카오로 로그인” 버튼을 눌렀을 때
- A 앱 → 카카오 로그인 페이지 이동
사용자는 카카오 계정으로 로그인 - 사용자 → "허용" 클릭
카카오는 A 앱에게 Authorization Code를 넘김 - A 앱 → Authorization Code로 Access Token 요청
카카오는 Access Token을 발급해줌 - 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 #프론트백엔드 #개발블로그
'개발일기' 카테고리의 다른 글
백엔드 개발자 취업 로드맵 2025 최신판 (23) | 2025.05.22 |
---|---|
개발자 포트폴리오와 기술 블로그 운영 전략: 커리어 성장 이렇게 합니다 (13) | 2025.05.21 |
📝 API는 왜 이렇게 많고 복잡할까? 좋은 API 설계의 기준은? (11) | 2025.05.16 |
🧠 LLM도 ‘추론 능력’이 다 다르다? Chain-of-Thought란 무엇인가 (10) | 2025.05.14 |
📝 AI 시대, 검색보다 중요한 건 ‘질문력’이다 (15) | 2025.05.13 |