Skip to content

로그인 게이트 UI와 라우팅 추가 - #13

Merged
gnoes-ios merged 5 commits into
devfrom
feat/auth-login-gate
Aug 5, 2026
Merged

로그인 게이트 UI와 라우팅 추가#13
gnoes-ios merged 5 commits into
devfrom
feat/auth-login-gate

Conversation

@gnoes-ios

Copy link
Copy Markdown
Contributor

📌 변경 요약

  • AppCoordinator restore 기반 로그인 게이트 라우팅 추가
  • Login / OnboardingPlaceholder scene 및 delegate 전환 연결
  • 로그인 게이트 Feature 테스트와 런타임 문서 동기화

📌 변경 내용

Feature

  • Scene/Login 로그인 UI 및 AuthClient.login 연동 추가
  • Scene/OnboardingPlaceholder 온보딩 placeholder 및 로그아웃 흐름 추가
  • AppCoordinatorFeature phase를 login / onboarding / main 으로 확장
  • restore 결과와 profileCompleted 기준 진입 분기 연결
  • 로그인 성공 / 로그아웃 delegate 기반 화면 전환 연결
  • 로그인·온보딩 중 딥링크 pending 유지, main 진입 후 flush 처리

Tests

  • LoginFeature 성공/실패/취소/중복 탭 테스트 추가
  • OnboardingPlaceholder 로그아웃 성공·로컬 삭제 실패 테스트 추가
  • AppCoordinator restore 분기 및 딥링크 pending/flush 테스트 보강

Docs

  • AGENTS.md, ARCHITECTURE.md, Feature README 런타임 흐름 문서 갱신

@gnoes-ios gnoes-ios added the feat 새로운 기능 label Aug 5, 2026
@gnoes-ios gnoes-ios self-assigned this Aug 5, 2026
@coderabbitai

coderabbitai Bot commented Aug 5, 2026

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: af1fddee-13aa-40b6-a575-7d4927b2b69b

📥 Commits

Reviewing files that changed from the base of the PR and between b5724f9 and 5fff427.

📒 Files selected for processing (2)
  • Projects/Feature/Sources/AppCoordinator/AppCoordinatorFeature.swift
  • Projects/Feature/Tests/AppCoordinator/AppCoordinatorFeatureTests.swift

📝 Walkthrough

Summary by CodeRabbit

  • 새로운 기능

    • 앱 시작 시 세션 상태에 따라 로그인, 온보딩 또는 메인 화면으로 이동합니다.
    • 카카오 및 Apple 로그인을 지원합니다.
    • 온보딩 화면에서 로그아웃할 수 있습니다.
    • 로그인 및 온보딩 중 딥링크를 보류하고, 메인 화면 진입 후 처리합니다.
  • 개선 사항

    • 로그인·로그아웃 진행 상태와 오류 메시지를 화면에 표시합니다.
    • 세션 복원 실패 시 로그인 화면으로 안내합니다.

Walkthrough

부트스트랩 이후 앱 흐름을 세션 복원 결과에 따라 login, onboarding, main으로 분기하도록 변경했습니다. 로그인 및 온보딩 placeholder 화면과 인증 처리를 추가했습니다. 인증 중 딥링크는 보류하고 main 진입 후 처리합니다.

Changes

인증 게이트 라우팅

Layer / File(s) Summary
로그인 흐름
Projects/Feature/Sources/Scene/Login/*, Projects/Feature/Tests/Login/*
LoginFeature가 카카오 및 Apple 로그인, 중복 요청 차단, 오류 메시지 변환, 성공 delegate를 처리합니다. LoginView가 로그인 상태와 버튼을 표시합니다.
온보딩 로그아웃 흐름
Projects/Feature/Sources/Scene/OnboardingPlaceholder/*, Projects/Feature/Tests/OnboardingPlaceholder/*
OnboardingPlaceholderFeature가 로그아웃 상태와 오류를 처리하고 성공 시 loggedOut delegate를 전달합니다. OnboardingPlaceholderView가 안내 문구와 로그아웃 UI를 표시합니다.
세션 복원 및 앱 라우팅
Projects/Feature/Sources/AppCoordinator/*, Projects/Feature/Tests/AppCoordinator/*, Projects/Feature/README.md, docs/ARCHITECTURE.md, AGENTS.md
AppCoordinatorFeaturerestoreSession() 결과에 따라 로그인, 온보딩 또는 메인 상태로 전환합니다. 로그인 및 온보딩 store를 화면에 연결합니다. 인증 중 pending 딥링크를 보류하고 메인 진입 후 처리합니다. 문서와 테스트가 새 흐름을 반영합니다.

Estimated code review effort: 4 (Complex) | ~45 minutes

Possibly related PRs

  • TeamMozi/mozi-iOS#1: 기존 AppCoordinatorFeature 부트스트랩 및 딥링크 흐름을 확장합니다.
  • TeamMozi/mozi-iOS#10: 새 LoginView가 사용하는 SocialLoginButton과 디자인 시스템을 추가합니다.
  • TeamMozi/mozi-iOS#12: 로그인, 로그아웃, 세션 복원에 사용하는 AuthClientAuthSession을 추가합니다.

Sequence Diagram(s)

sequenceDiagram
  participant AppCoordinatorView
  participant AppCoordinatorFeature
  participant AuthClient
  participant LoginFeature
  participant OnboardingPlaceholderFeature
  AppCoordinatorView->>AppCoordinatorFeature: onAppear
  AppCoordinatorFeature->>AuthClient: restoreSession()
  AuthClient-->>AppCoordinatorFeature: AuthSession 또는 AuthError
  AppCoordinatorFeature->>AppCoordinatorFeature: login, onboarding 또는 main 상태 설정
  LoginFeature->>AuthClient: login(provider)
  AuthClient-->>LoginFeature: AuthSession 또는 AuthError
  LoginFeature-->>AppCoordinatorFeature: delegate loggedIn(AuthSession)
  OnboardingPlaceholderFeature->>AuthClient: logout()
  AuthClient-->>OnboardingPlaceholderFeature: 성공 또는 AuthError
  OnboardingPlaceholderFeature-->>AppCoordinatorFeature: delegate loggedOut
Loading
🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed 제목은 로그인 게이트 UI와 라우팅 추가라는 주요 변경 사항을 정확하고 간결하게 설명합니다.
Description check ✅ Passed 변경 요약과 변경 내용은 충실하며, 테스트와 문서 변경도 포함합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

Comment @coderabbitai help to get the list of available commands.

@coderabbitai coderabbitai Bot 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.

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@Projects/Feature/Sources/AppCoordinator/AppCoordinatorFeature.swift`:
- Around line 132-164: Update bootstrapIfNeeded and handleBootstrapResponse to
track whether restoreSession is already in progress, set that state when
starting the request, and ignore duplicate onAppear triggers while it is active.
Only apply a bootstrap response when the corresponding restore request is still
pending, then clear the pending state before transitioning to login or the main
screen; add a reducer test that sends onAppear twice before the response and
verifies restoreSession runs once.
🪄 Autofix

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 2babb9e0-aa69-4e97-98cd-9a06a8e687fd

📥 Commits

Reviewing files that changed from the base of the PR and between 0aa8ab4 and b5724f9.

📒 Files selected for processing (12)
  • AGENTS.md
  • Projects/Feature/README.md
  • Projects/Feature/Sources/AppCoordinator/AppCoordinatorFeature.swift
  • Projects/Feature/Sources/AppCoordinator/AppCoordinatorView.swift
  • Projects/Feature/Sources/Scene/Login/LoginFeature.swift
  • Projects/Feature/Sources/Scene/Login/LoginView.swift
  • Projects/Feature/Sources/Scene/OnboardingPlaceholder/OnboardingPlaceholderFeature.swift
  • Projects/Feature/Sources/Scene/OnboardingPlaceholder/OnboardingPlaceholderView.swift
  • Projects/Feature/Tests/AppCoordinator/AppCoordinatorFeatureTests.swift
  • Projects/Feature/Tests/Login/LoginFeatureTests.swift
  • Projects/Feature/Tests/OnboardingPlaceholder/OnboardingPlaceholderFeatureTests.swift
  • docs/ARCHITECTURE.md

Comment thread Projects/Feature/Sources/AppCoordinator/AppCoordinatorFeature.swift
@gnoes-ios
gnoes-ios merged commit bba51b0 into dev Aug 5, 2026
3 checks passed
@gnoes-ios
gnoes-ios deleted the feat/auth-login-gate branch August 5, 2026 11:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

feat 새로운 기능

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant