Kotlin + Spring Boot 환경에서 Google OAuth2.0 로그인 기능을 구현하는 방법을 단계별로 정리해보겠습니다.
✅ 목표
- 로그인 후 사용자 정보를 받아와 DB에 저장
- 인증된 사용자는 세션/토큰 등을 통해 인증 처리
📦 1. 의존성 추가

🔐 2. application.yml 설정

profiles를 이용하여 application-oauth.yml 파일 분리
🛠️ 3. SecurityConfig 구성

.oauth2Login { ... }
- Spring Security가 제공하는 OAuth2 로그인 기능을 활성화하는 블록
이 블록 안에서 로그인 처리, 인증 후 리디렉션, 사용자 정보 조회 등을 커스터마이징할 수 있어
.userInfoEndpoint { ... }
- OAuth2 로그인 후, access token을 사용해서 사용자 정보를 가져오는 엔드포인트 설정
- 기본적으로는 Google, Kakao, Naver 같은 OAuth provider의 userinfo endpoint를 호출해
.userService(customOAuth2UserService)
- 기본 OAuth2UserService 대신, 내가 만든 커스텀 OAuth2UserService를 사용하겠다는 설정
- customOAuth2UserService는 사용자의 이메일, 이름, 프로필 사진 등을 받아서, 사용자 DB 조회, 신규 사용자 저장, 기존 사용자 정보 업데이트 등을 처리하는 역할을 해
👤 4. OAuth2UserService 구현

🔄 5. 로그인 흐름 요약
- 사용자가 각 oauth 인증 페이지로 이동
- OAuth 인증 → 리다이렉트
- CustomOAuth2UserService에서 사용자 정보 확인 및 저장
- 인증된 사용자만 접근 가능한 API 사용 가능