개주 훈련일지/🏋️ 전집중 호흡 훈련

OAuth 기반 카카오 로그인 API

lshfood2 2025. 12. 10. 15:16

카카오 로그인을 웹 서비스에 연동하려면

OAuth 2.0 인증 흐름을 이해하는 것이 가장 중요하다.


카카오 로그인은 단순히

“카카오 계정으로 로그인” 버튼 하나로

끝나는 것이 아니라,

 

인가코드 → 토큰 → 사용자 정보 조회라는

명확한 단계를 거친다.

 

이번 글에서는 카카오 로그인 API의

전체 구조와 흐름을 처음부터 끝까지 정리해본다.


1. OAuth 2.0이란?

OAuth 2.0은 “아이디 / 비밀번호를 직접 받지 않고,
카카오 같은 외부 인증 서비스를 통해 로그인하는 표준 방식”이다.

 

중요한 특징 두 가지

  • 우리 서버는 사용자의 비밀번호를 절대 전달받지 않는다.
  • 인증은 카카오가 대신 해주고, 인증 결과로 토큰을 발급받는다.

그래서 OAuth 로그인 흐름에는 항상 다음 단계가 등장한다.

  1. 인가코드 요청
  2. 인가코드로 토큰 요청
  3. 토큰으로 사용자 정보 조회

카카오 로그인도 이 구조 그대로 따라간다.


2. 인가코드(Authorization Code)란?

카카오 로그인 과정에서 가장 먼저

등장하는 것이 바로 “인가코드”이다.


인가코드는 로그인을 정상적으로

완료했다는 것을 증명하는 일회용 인증 코드다.

 

특징은 다음과 같다.

  • 한 번만 사용 가능
  • 매우 짧은 시간 동안만 유효
  • 토큰을 발급받기 위한 임시 인증 코드

즉, 이 코드를 가지고 다음 단계에서

액세스토큰(access_token) 을 발급받게 된다.


3. 인가코드 요청하기 (로그인 버튼)

사용자가 카카오 로그인을 클릭하면,

아래 URL로 이동하여 인가코드 요청이 발생한다.

<a href="https://kauth.kakao.com/oauth/authorize?client_id=
REST_API_KEY&redirect_uri=REDIRECT_URL&response_type=code">
    카카오 로그인
</a>

 

사용된 각 파라미터의 의미는 다음과 같다.

항목 설명
client_id 카카오 REST API 키
redirect_uri 카카오 로그인 성공 후 되돌아올 URL
response_type=code 인가코드 방식 사용(OAuth 표준)

즉, 이 로그인 버튼을 클릭하는 순간

우리 서비스 → 카카오로 인가코드 요청이 발생한다.


4. 인가코드 수신 (redirect_uri)

사용자가 카카오 인증을 정상적으로 완료하면
카카오는 redirect_uri로 아래처럼 redirect를 보낸다.

http://localhost:8080/kakao/callback?code=abc123xyz

여기에서 'code=abc123xyz'
이 값이 바로 인가코드이다.

 

이제 서버는 이 코드로 

토큰을 발급받을 수 있다.


5. 인가코드로 액세스토큰 요청하기

서버는 받은 code 값을 이용해

카카오에 POST 요청을 보낸다.

POST https://kauth.kakao.com/oauth/token

 

필수 파라미터

  • grant_type=authorization_code
  • client_id=REST_API_KEY
  • redirect_uri=REDIRECT_URL
  • code=인가코드

요청에 성공하면 카카오가 아래와 같은 JSON을 반환한다.

{
  "access_token": "액세스토큰",
  "refresh_token": "리프레시토큰",
  "expires_in": 21599
}

여기서 가장 중요한 값은 access_token이다.

 

액세스토큰 = 카카오가 인증해준 사용자 신원을 증명하는 토큰


 

6. 액세스토큰으로 사용자 정보 조회

토큰을 발급받았다면 이제 사용자 정보를 요청할 수 있다.

GET https://kapi.kakao.com/v2/user/me
Authorization: Bearer 액세스토큰

성공하면 다음 정보들을 얻을 수 있다.

  • 카카오 고유 ID
  • 닉네임
  • 프로필 이미지
  • 이메일(동의받은 경우에 한함)

이제 이 데이터를 기반으로

회원가입 또는 로그인 처리를 진행하면 된다.


7. 전체 흐름 한눈에 보기

카카오 로그인은 아래 흐름대로 진행된다.

[사용자] ---- 카카오 로그인 버튼 클릭
         ↓
[카카오] ---- 로그인 인증 → 인가코드 발급
         ↓ redirect_uri
[서버]  ---- 인가코드로 액세스토큰 요청
         ↓
[카카오] ---- 액세스토큰 발급
         ↓
[서버]  ---- 액세스토큰으로 사용자 정보 조회
         ↓
[내 서비스] ---- 회원가입 또는 로그인 처리

핵심은 인가코드 → 토큰 → 사용자 정보 이 3단계이다.


[ 최종 정리 ]

카카오 로그인은 단순히 REST API 호출이 아니라
표준 OAuth 2.0 인증 절차를 그대로 따르는 구조로 되어 있다.

  • 인가코드는 로그인 인증 결과를 담은 1회용 인증 코드
  • 토큰은 사용자 신원을 증명하는 핵심 열쇠
  • 사용자 정보 요청을 통해 우리 서비스의 계정으로 연결
  • 전체 흐름은 누구나 이해할 수 있을 만큼 단순하고 일관됨

번 포스팅에서는 구현하기 전에

알아야 할 개념과 흐름을 정리해보았는데 

코드를 실제로 구현하기 위해서는 다양한

카카오 디벨로퍼 사전 세팅이 필요하다.

 

구현에 필요한 개념과 사전 세팅을

참고할 수 있는 블로그 링크도 함께 소개한다.

https://innovation123.tistory.com/291

 

카카오 로그인 API 사용 방법 - 2025 ver (Java, Spring)

이 글은 과거(2023년 10월) 작성했던 글을 현재(2025년 12월)을 기준으로 리뉴얼 한 글이다.과거와 비교했을 때 달라진 점은 크게 없고, kakao에서 마이그레이션을 잘 해줘서 문제없지만, 사소하게 달

innovation123.tistory.com