Skip to content

[Feat] #9 - 카카오 SDK 로그인 연동 검증 - #10

Merged
JinUng41 merged 2 commits into
developfrom
feat/9-kakao-login
Jul 12, 2026
Merged

[Feat] #9 - 카카오 SDK 로그인 연동 검증#10
JinUng41 merged 2 commits into
developfrom
feat/9-kakao-login

Conversation

@JinUng41

@JinUng41 JinUng41 commented Jul 12, 2026

Copy link
Copy Markdown
Contributor

Summary

  • 카카오 SDK(v2-user 2.24.0) 연동으로 access token 획득까지 검증한다. 백엔드·세션·온보딩·Figma UI는 범위 밖이다.
  • NATIVE_APP_KEYlocal.properties → BuildConfig/Manifest로 주입하고, Talk→Account 로그인·최소 로그인 화면·debug Logcat 확인을 구현했다.
  • 계획: docs/plans/9-kakao-sdk-verification.md

Closes #9

Architecture note (#9 한시 예외)

  • 이슈 AC상 Domain Auth는 요구하지 않아 ViewModel → core.auth.KakaoAuthClient 직행을 허용했다.
  • 풀 로그인(백엔드·세션·Figma UI) 이슈에서 presentation → domain ← data로 복구하고, core 래퍼는 data가 사용하도록 옮긴다.

완료 기준

  • Kakao Maven 저장소 + v2-user 의존성 추가
  • local.propertiesNATIVE_APP_KEY → BuildConfig/Manifest 주입 (키 값 미커밋)
  • LivithApplication에서 KakaoSdk.init
  • Redirect URI(kakao${NATIVE_APP_KEY}://oauth) Manifest 등록 (AuthCodeHandlerActivity)
  • 앱 시작 화면 = 로그인 + 카카오 버튼
  • Talk 가능 시 Talk, 아니면 Account
  • 성공 시 access token Logcat (KakaoSdkVerify, DEBUG only, 저장·서버 전송 없음)
  • 취소·실패 구분 UI 메시지
  • 카카오 SDK 래퍼 core, View에서 SDK 직접 호출 없음
  • Apple/Google 로그인 UI·코드 없음
  • cd android && ./gradlew assembleDebug 성공 (실기기/에뮬에서 로그인 성공 확인)

Test plan

  • cd android && ./gradlew assembleDebug
  • 에뮬/실기기 실행 → 로그인 화면이 첫 화면인지 확인
  • 카카오 로그인 → 성공 시 화면 "로그인 성공" + Logcat KakaoSdkVerify
  • 취소·실패 시 메시지 구분
  • git statuslocal.properties/키 값 없음

Made with Cursor

JinUng41 and others added 2 commits July 12, 2026 16:43
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Pull request overview

카카오 SDK(v2-user 2.24.0) 연동을 추가하고, 앱 첫 화면에서 카카오 로그인(Talk 우선, 불가 시 Account)으로 access token 획득까지 검증할 수 있게 구성한 PR입니다.

Changes:

  • Kakao Maven/SDK 의존성 추가 및 NATIVE_APP_KEY를 BuildConfig/Manifest로 주입
  • Application/Manifest에 Kakao 초기화 및 Redirect URI(+ Talk package visibility) 설정
  • 최소 로그인 화면 + ViewModel + core.auth 래퍼로 로그인 성공/취소/실패 UI 상태 및 debug Logcat 출력 구현

Reviewed changes

Copilot reviewed 16 out of 16 changed files in this pull request and generated 4 comments.

Show a summary per file
File Description
docs/templates/plan.md 계획 문서 템플릿 추가
docs/plans/9-kakao-sdk-verification.md #9 카카오 SDK 검증 계획 문서 추가
android/settings.gradle.kts Kakao Maven 저장소 추가
android/gradle/libs.versions.toml Kakao SDK 버전/라이브러리 등록
android/app/build.gradle.kts NATIVE_APP_KEY 로드 및 BuildConfig/Manifest 주입, SDK 의존성 추가
android/app/src/main/AndroidManifest.xml Talk queries + Redirect(AuthCodeHandlerActivity) 등록
android/app/src/main/res/values/strings.xml 카카오 로그인 버튼 문자열 추가
android/app/src/main/java/com/youz2me/livith/LivithApplication.kt KakaoSdk.init 호출 추가
android/app/src/main/java/com/youz2me/livith/core/di/AuthModule.kt KakaoAuthClient Hilt 바인딩 추가
android/app/src/main/java/com/youz2me/livith/core/auth/KakaoAuthClient.kt Kakao 로그인 래퍼 인터페이스 추가
android/app/src/main/java/com/youz2me/livith/core/auth/KakaoAuthClientImpl.kt Talk/Account 로그인 구현 및 결과 매핑 추가
android/app/src/main/java/com/youz2me/livith/core/auth/KakaoLoginResult.kt 로그인 결과 sealed 타입 추가
android/app/src/main/java/com/youz2me/livith/presentation/navigation/LivithNavHost.kt startDestination을 로그인으로 변경
android/app/src/main/java/com/youz2me/livith/presentation/login/LoginScreen.kt 최소 로그인 UI(버튼/로딩/메시지) 추가
android/app/src/main/java/com/youz2me/livith/presentation/login/LoginViewModel.kt 로그인 실행/상태 관리 및 debug 로그 추가
android/app/src/main/java/com/youz2me/livith/presentation/login/LoginUiState.kt 로그인 화면 UI 상태 모델 추가

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +17 to +19
val nativeAppKey = localProperties.getProperty("NATIVE_APP_KEY")
?.takeIf { it.isNotBlank() }
?: error("NATIVE_APP_KEY is missing or blank in android/local.properties")
Comment on lines +9 to +12
override fun onCreate() {
super.onCreate()
KakaoSdk.init(this, BuildConfig.NATIVE_APP_KEY)
}
error is ClientError && error.reason == ClientErrorCause.Cancelled ->
KakaoLoginResult.Canceled
error != null ->
KakaoLoginResult.Failure(error.message ?: "Kakao login failed")
!accessToken.isNullOrBlank() ->
KakaoLoginResult.Success(accessToken)
else ->
KakaoLoginResult.Failure("Kakao login returned empty token")
@JinUng41
JinUng41 merged commit 4b268c4 into develop Jul 12, 2026
1 check passed
@JinUng41
JinUng41 deleted the feat/9-kakao-login branch July 12, 2026 08:34
@JinUng41 JinUng41 mentioned this pull request Jul 12, 2026
10 tasks
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Feat] 카카오 로그인

2 participants