Skip to content

feat: 카카오 로그인 기능 구현(#15)#21

Merged
chaiminwoo0223 merged 1 commit intodevelopfrom
feature/15
Jul 8, 2025
Merged

feat: 카카오 로그인 기능 구현(#15)#21
chaiminwoo0223 merged 1 commit intodevelopfrom
feature/15

Conversation

@chaiminwoo0223
Copy link
Contributor

@chaiminwoo0223 chaiminwoo0223 commented Jul 6, 2025

📌 작업 내용 및 특이사항

✅ 로그인 흐름

  • 프론트엔드가 인가 코드를 전달하면, 이를 기반으로 로그인 또는 회원가입을 진행
  • 기존 사용자라면 로그인 처리를 진행
  • 신규 사용자라면 새롭게 발급받은 인가 코드, 카테고리, 닉네임 정보를 입력받아 회원가입 후 로그인까지 완료

✅ 도메인 및 인프라 구성

  • BaseTimeEntity, Member, MemberRole, MemberCategory, SocialProvider 등 도메인 모델 구현
  • JpaAuditingConfig를 통해 생성/수정/삭제 시간 자동 기록 기능 적용
  • 도메인-인프라 분리를 위한 레포지토리 계층 구성 (MemberRepository, MemberJpaRepository, MemberRepositoryAdapter)
  • 멤버 생성 책임을 분리한 MemberFactory 구현

✅ 인증 및 로그인 기능 구현

  • 카카오 OAuth 2.0 연동: WebClientConfig, KakaoOauthProperties, KakaoOauthClient, KakaoOauthProvider 구현
  • JWT 기반 인증 적용: JwtTokenProperties, JwtTokenProvider, JwtFilter 구현 및 SecurityFilterChain에 등록
  • 인증 흐름 통합 관리: KakaoLoginService, AuthFacade, AuthController 구현

✅ 예외 처리 고도화

  • AuthErrorCode: 카카오 로그인 및 인증 관련 예외 정의
  • MemberErrorCode: 멤버 도메인 관련 예외 정의

✅ TDD

  • 단위 테스트 (BaseUnitTest 기반): KakaoLoginServiceTest, MemberServiceTest, AuthFacadeTest 추가
  • 통합 테스트 (BaseIntegrationTest 기반): AuthControllerIntegrationTest 추가
  • 공용 테스트 픽스처: MemberFixture, KakaoOauthFixture, TokenFixture 추가
  • 헬퍼 클래스: MemberTestHelper 추가

🌱 관련 이슈


🔍 참고 자료


📚 기타

[Postman 응답 결과]

Postman Response

[MySQL 저장 확인]

MySQL Member Insert

@chaiminwoo0223 chaiminwoo0223 requested a review from hisonghy July 6, 2025 13:29
Copy link
Contributor

@hisonghy hisonghy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 리뷰 작성했습니다. 확인 부탁드려요.

Copy link
Contributor

@hisonghy hisonghy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

변경사항 확인했습니다.

* feat: BaseTimeEntity, Member, MemberRole, MemberCategory, SocialProvider 구현
* feat: JPA 엔티티의 생성/수정/삭제 시간 기록을 위한 JpaAuditingConfig 추가
* feat: WebClientConfig, KakaoOauthProperties, KakaoOauthClient, KakaoOauthProvider 구현
* feat: JwtTokenProperties, JwtTokenProvider 구현
* feat: KakaoUserInfoResponse, KakaoTokenResponse 구현
* feat: KakaoLoginService, KakaoLoginRequest, KakaoSignupRequest, TokenResponse 구현
* feat: MemberRepository, MemberJpaRepository, MemberRepositoryAdapter 구현
* feat: MemberErrorCode 정의
* feat: MemberFactory 구현
* feat: MemberService 구현
* feat: AuthFacade 구현
* feat: AuthController 구현
* feat: JwtFilter 구현 및 SecurityFilterChain 등록

* test: MemberFixture, KakaoOauthFixture, TokenFixture 생성
* test: MemberTestHelper 생성
* feat: KakaoLoginServiceTest 단위 테스트 추가
* test: MemberServiceTest 단위 테스트 추가
* test: AuthControllerIntegrationTest 통합 테스트 추가
* test: KakaoLoginServiceTest, MemberServiceTest, AuthControllerIntegrationTest @nested 어노테이션 적용
Copy link
Contributor

@hisonghy hisonghy left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

고생하셨습니다. 머지부탁드려요

@chaiminwoo0223 chaiminwoo0223 merged commit b0b8441 into develop Jul 8, 2025
2 checks passed
@chaiminwoo0223 chaiminwoo0223 added the ✨feature 구현, 개선 사항 관련 부분 label Jul 9, 2025
@chaiminwoo0223 chaiminwoo0223 self-assigned this Jul 10, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

✨feature 구현, 개선 사항 관련 부분

Projects

None yet

Development

Successfully merging this pull request may close these issues.

✨[FEAT]: 카카오 로그인 기능 구현

2 participants