Skip to content

feat(mobile): 카카오 소셜 로그인 구현#43

Merged
hijjoy merged 18 commits intomainfrom
feature/kakao-login
Jan 20, 2026
Merged

feat(mobile): 카카오 소셜 로그인 구현#43
hijjoy merged 18 commits intomainfrom
feature/kakao-login

Conversation

@hijjoy
Copy link
Member

@hijjoy hijjoy commented Jan 19, 2026

📋 개요

카카오 소셜 로그인 기능 구현 및 모바일 앱 기반 아키텍처 구축

🏷️ 변경 유형

  • feat - 새로운 기능 추가
  • 🐛 fix - 버그 수정
  • ♻️ refactor - 코드 리팩토링
  • 📝 docs - 문서 수정

📦 영향 범위

  • apps/api - NestJS 백엔드
  • apps/mobile - Expo 모바일 앱
  • packages/validators - Zod 스키마
  • packages/errors - 에러 패키지

📝 변경 내용

API

  • Expo Go exp:// scheme redirect URI 허용

Mobile

  • HeroUI 설정 및 테마/폰트 적용 (feat(mobile): HeroUI 설정 및 테마/폰트 적용 #26)
  • Text 컴포넌트 구현 수정 - tone관련 에러 수정(feat(mobile): Text 컴포넌트 구현 #30)
  • Layout 관련 컴포넌트 구현 수정 padding, margin 추가 - 레이아웃 컴포넌트 spacing props 지원(Box, Flex, HStack, VStack) (feat(mobile): Layout 관련 컴포넌트 구현 #35)
  • core 폴더를 src/core로 이동
  • Ky & Zod 패키지 추가
  • SVG 아이콘 지원 설정 및 소셜 로그인 아이콘 추가
  • UI 컴포넌트 사용 가이드 문서 추가
  • 카카오 로그인 기능 구현
  • Button 컴포넌트 추가 - fill/weak variant, primary/danger/dark color, 다양한 size 지원
  • TextButton 컴포넌트 추가 - clear/underline/arrow variant 지원
  • Spacing 컴포넌트 추가 - 컴포넌트 간 간격 유틸리티
  • 로그인 화면 컴포넌트 정리

Packages

  • @aido/errors 패키지 추가
  • @aido/validators 스키마 업데이트

🧪 테스트

테스트 결과

스크린샷 2026-01-20 17 14 46

✅ 체크리스트

작성자 확인

  • 코드가 프로젝트의 코딩 컨벤션을 따릅니다
  • 커밋 메시지가 Conventional Commits 규칙을 따릅니다

📸 스크린샷 (UI 변경 시)

스크린샷 2026-01-20 17 11 53 스크린샷 2026-01-19 12 28 35

버튼 UI 확인 (머지X)
Simulator Screenshot - iPhone 16e - 2026-01-19 at 22 43 17

💬 추가 정보

  • 많은 컴포넌트들이 같이 들어가게되어 리뷰가 좀 복잡해졌습니다.
    체리픽해서 나눠서 하려고했는데 폴더이동이 이 브랜치에 포함되어있기도해서 많은 부분꼬일 것 같아서 이번만 같이올립니다 🧎🏻‍♀️‍➡️

@hijjoy hijjoy linked an issue Jan 19, 2026 that may be closed by this pull request
@hijjoy hijjoy changed the title feat: 카카오 소셜 로그인 구현 및 모바일 앱 기반 구축 feat(mobile): 카카오 소셜 로그인 구현 Jan 19, 2026
@hijjoy hijjoy self-assigned this Jan 19, 2026
@gemini-code-assist
Copy link

Summary of Changes

Hello @hijjoy, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

이 Pull Request는 Aido 모바일 애플리케이션의 초기 기반을 다지고 핵심 인증 기능을 도입하는 데 중점을 둡니다. 카카오 소셜 로그인 기능을 완벽하게 통합하여 사용자 인증 경험을 제공하며, 견고하고 확장 가능한 모바일 아키텍처를 구축하여 향후 기능 개발을 위한 안정적인 토대를 마련합니다. 또한, 개발 편의성을 높이기 위한 UI 컴포넌트 시스템과 스타일링 가이드라인을 확립하고, 필요한 패키지들을 추가하여 개발 환경을 최적화했습니다.

Highlights

  • 카카오 소셜 로그인 구현: 모바일 앱에 클린 아키텍처 기반의 카카오 소셜 로그인 기능이 추가되었습니다. Expo WebBrowser를 활용하여 OAuth 인증 흐름을 처리하고, 백엔드 API와 연동하여 토큰을 교환하고 저장합니다.
  • 모바일 앱 기반 아키텍처 구축: Expo Router를 활용한 인증/비인증 라우팅 구조, Ky 기반의 HTTP 클라이언트, React Query를 활용한 상태 관리, SecureStore를 이용한 토큰 저장소 등 모바일 앱의 핵심 아키텍처가 구축되었습니다.
  • API OAuth 보안 강화 및 Expo Go 지원: 백엔드 OAuth 서비스에 Expo Go 개발 환경(exp:// 스킴)을 위한 리다이렉트 URI가 허용되어 모바일 개발 편의성이 향상되었습니다.
  • UI 컴포넌트 및 스타일링 가이드라인 확립: HeroUI와 Tailwind CSS를 기반으로 하는 Box, Flex, HStack, VStack, Text 등 핵심 UI 컴포넌트가 재정의 및 개선되었으며, 일관된 UI 개발을 위한 사용 가이드 문서가 추가되었습니다.
  • SVG 아이콘 지원 및 소셜 로그인 아이콘 추가: Metro Bundler에 SVG 트랜스포머가 설정되어 SVG 아이콘을 직접 사용할 수 있게 되었고, Apple, Google, Kakao, Naver 소셜 로그인 아이콘이 추가되었습니다.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이 PR은 카카오 소셜 로그인 기능 구현과 함께 모바일 앱의 클린 아키텍처 기반을 구축하는 중요한 변경 사항을 담고 있습니다. 전반적으로 코드 구조가 잘 잡혀있고, 특히 KyHttpClient의 토큰 갱신 로직과 expo-secure-store를 사용한 토큰 관리 등 보안과 안정성을 고려한 구현이 돋보입니다. Expo Go 환경을 위한 리다이렉트 URI 허용 등 개발 편의성을 높이는 변경도 적절합니다. 새로 추가된 UI 컴포넌트 가이드라인을 잘 준수하고 있으나, 한 곳에서 가이드라인을 따르지 않은 부분이 있어 수정을 제안합니다. 훌륭한 작업입니다!

@hijjoy hijjoy requested a review from dydals3440 January 19, 2026 03:47
@hijjoy hijjoy added type: feat 🚀 신규 기능 - 사용자에게 새로운 비즈니스 가치를 제공하는 작업 type: chore ⚙️ 기타 작업 - 빌드 시스템, 의존성 관리, 설정 변경 등 생산성 향상을 위한 작업 scope: api 🌐 API - NestJS 서버 로직, DB 스키마 및 백엔드 인프라 관련 scope: mobile 📱 모바일 - Expo 기반 모바일 앱 UI/UX 및 클라이언트 로직 관련 labels Jan 19, 2026
@hijjoy hijjoy force-pushed the feature/kakao-login branch from fed3e89 to 2c45473 Compare January 19, 2026 03:50
@hijjoy hijjoy added the status: in progress 🏗️ 작업 중 - 현재 담당자가 할당되어 활발히 구현이 진행 중인 상태 label Jan 19, 2026
BREAKING CHANGE: import 경로 변경

- auth feature에 Clean Architecture 레이어 적용 (domain/data/application/presentation)
- barrel export(index.ts) 15개 제거로 빌드 성능 개선
- shared 폴더로 공통 모듈 통합 (api, storage, ui, testing)
- 테스트 인프라를 src/shared/testing/으로 재구성
@dydals3440
Copy link
Contributor

요 작업 한번 마무리되면 머지해주세요!!

- fill/weak variant
- primary/danger/dark color
- small/medium/large/xlarge size
- 6b1b0b1 폴더 구조 이동으로 인한  변경 적용
- 폴더 변경으로 인한 문서 수정
- 컴포넌트 추가 반영
@hijjoy
Copy link
Member Author

hijjoy commented Jan 20, 2026

/gemini review

@hijjoy
Copy link
Member Author

hijjoy commented Jan 20, 2026

요 작업 한번 마무리되면 머지해주세요!!

@dydals3440 변경사항이 많아 gemini 리뷰 한번만 받구,
ci test는 오류나는데 현 브랜치와 관련없던 main에 깨져있는 API 테스트라 이것은 신경안쓰고 머지하겠습니다 🧎🏻‍♀️‍➡️
(변경사항에 대해 다시 리뷰 주셔도 좋슴미다 이부분은 남겨두시면 머지 후 해당 부분 fix로 만들어서 수정하는 부분으로 진행하겠습니다)

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

이번 PR은 카카오 소셜 로그인 기능 구현과 함께 모바일 앱의 아키텍처를 대대적으로 개선하는 중요한 변경사항을 담고 있습니다. 의존성 주입(DI)을 위한 컨테이너와 프로바이더 도입, 계층형 아키텍처(도메인, 애플리케이션, 데이터, 프레젠테이션) 적용 등은 매우 훌륭한 방향성이며 장기적인 유지보수성과 테스트 용이성을 크게 향상시킬 것입니다. 또한, tailwind-variants를 활용한 UI 컴포넌트 시스템 구축과 명확한 가이드 문서 추가도 인상적입니다. 전반적으로 매우 높은 품질의 코드이며, 아키텍처에 대한 깊은 고민이 엿보입니다. 몇 가지 아쉬운 점에 대해 중급(medium) 심각도의 의견을 남겼습니다. 하나는 SVG 파일에 비트맵 이미지를 내장하여 벡터 이미지의 장점을 활용하지 못한 점이고, 다른 하나는 HttpClient 인스턴스가 중복으로 생성되는 구조에 대한 개선 제안입니다. 이 부분들을 개선하면 더욱 완성도 높은 코드가 될 것입니다. 훌륭한 작업입니다!

Copy link
Contributor

@dydals3440 dydals3440 left a comment

Choose a reason for hiding this comment

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

코드 리뷰 이후에 코드를 보니 최대한 스크린내에서 해당 스크린이 어떤 역할을 하는 화면인지 더 맥락이 잘보여서 좋은 것 같습니다..!

공부하면서 더욱 더 깔끔한 코드를 잘 적어보는것으로..!

</Stack>
</HeroUINativeProvider>
</GestureHandlerRootView>
<AppProviders>
Copy link
Contributor

Choose a reason for hiding this comment

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

그리고 차후에 Provider들의 역할을 분리해보는 것도 좋아보입니다!
아키텍처 관점에서 관심사를 명확히 나누면 좋을 것 같아요.

  • core/provider (AppProvider): 테마, 설정 등 앱 실행 및 UI 전반에 필요한 Context 관리
  • core/di (FeatureProvider): 의존성 주입(Dependency Injection)을 위한 인터페이스/구현체 주입 관리

이렇게 분리하면 '앱을 구동하는 설정'과 '비즈니스 로직을 연결하는 주입기'의 역할이 명확해져서 나중에 코드 규모가 커져도 유지보수하기 훨씬 수월할 것 같아요!

@dydals3440
Copy link
Contributor

크게 이상 없으면 머지 한번 해주세요..! CI는 제가 서버 코드 수정한 부분이 있어서 추후에 한번 잡아볼게요~!

@hijjoy hijjoy merged commit b131dfb into main Jan 20, 2026
2 of 3 checks passed
@dydals3440 dydals3440 added the priority: high 🟠 높음 - 핵심 지표나 MVP 기능에 직접적 영향을 주며 이번 스프린트 내 완료 필수 label Jan 20, 2026
@dydals3440 dydals3440 changed the title feat(mobile): 카카오 소셜 로그인 구현 feat(mobile): 카카오 소셜 로그인 구현 Jan 20, 2026
@hijjoy hijjoy deleted the feature/kakao-login branch January 23, 2026 08:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

priority: high 🟠 높음 - 핵심 지표나 MVP 기능에 직접적 영향을 주며 이번 스프린트 내 완료 필수 scope: api 🌐 API - NestJS 서버 로직, DB 스키마 및 백엔드 인프라 관련 scope: mobile 📱 모바일 - Expo 기반 모바일 앱 UI/UX 및 클라이언트 로직 관련 status: in progress 🏗️ 작업 중 - 현재 담당자가 할당되어 활발히 구현이 진행 중인 상태 type: chore ⚙️ 기타 작업 - 빌드 시스템, 의존성 관리, 설정 변경 등 생산성 향상을 위한 작업 type: feat 🚀 신규 기능 - 사용자에게 새로운 비즈니스 가치를 제공하는 작업

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(mobile): 카카오 소셜 로그인 연동

2 participants