Conversation
- Presentation 모듈에 Auth 케이스 추가 - 테스트 소스 경로 매개변수화 - swift-testing, dependencies, custom-dump 패키지 추가
- DirectionRepository 및 RouteUseCase 종합 테스트 추가 - SocialType enum 구현 (Apple/Google 로그인 지원) - 테스트 태그 시스템 및 Mock 객체 구성 - 스플래시 화면 지연 시간 조정 (0.3초 → 2초) - 프로젝트 모듈 설정 개선
- TCA 앱 라우터에 Auth 상태 및 액션 추가 - Apple/Google 소셜 로그인 버튼 구현 - 스플래시 화면 애니메이션 효과 개선 - 커스텀 모달 시스템 구현 (드래그, 애니메이션) - 로그인 화면에 소셜 로그인 및 게스트 옵션 추가
- 온보딩 각 단계별 로고 이미지 3개 추가 - OnBoardingView에 이미지 표시 기능 구현 - ImageAsset에 onBoardingLogo1-3 케이스 추가 - 구글맵 이미지 파일명 오타 수정 (goolgeMap → googleMap)
로그인, 온보딩, 홈 모듈 간 OAuth 인증 상태 연동 개선 위치 권한 관리자 리팩토링 및 에러 핸들링 강화 약관 동의 및 소셜 로그인 버튼 UI 업데이트
## 수정된 이슈들 ### 🚨 Critical & High Priority Issues - TCACoordinators 중첩 네비게이션 문제 해결 (AuthCoordinator) - MainActor 동시성 안전성 개선 (HomeReducer) ### 💡 Medium Priority Issues - Magic Number 제거: Constants enum으로 지연시간 관리 - 에러 핸들링 개선: Task.sleep do-catch 패턴 적용 - 매직 스트링 제거: SharedKeys enum으로 키 관리 ### ✅ Code Quality Improvements - 동시성 안전성: @mainactor 명시적 지정 - 코드 중복 제거: 공통 Constants 사용 - 유지보수성 향상: 하드코딩된 값들 상수화 ## 기술적 변경사항 ### AuthCoordinator.swift - OnBoarding route push를 MainActor.run으로 안전 처리 - NavigationRequestObserver 다중 업데이트 에러 해결 ### OnBoardingCoordinator.swift - withNavigation: false → true 변경 - 중첩 네비게이션 구조 개선 ### HomeReducer.swift - Task 클로저에 @mainactor 명시적 지정 - 동시성 위반 가능성 제거 ### AppReducer.swift - Constants enum 추가 (splashTransitionDelay: 2초) - Magic number 제거로 유지보수성 향상 ### SplashReducer.swift - Constants enum 추가 (tokenCheckDelay: 1.5초) - Task.sleep do-catch 에러 처리 추가 ### OnBoardingFeature.swift - SharedKeys enum 추가 ("UserSession" 키 관리) - 매직 스트링 제거로 타입 안전성 향상
Roy-wonji
added a commit
that referenced
this pull request
Apr 2, 2026
* refactor: 파일이름 변경 및 싱글톤 제거 * feat: Auth 모듈 설정 및 테스트 인프라 추가 - Presentation 모듈에 Auth 케이스 추가 - 테스트 소스 경로 매개변수화 - swift-testing, dependencies, custom-dump 패키지 추가 * feat: 디자인 시스템 구현 #2 * feat: test infrastructure 및 소셜 로그인 기반 구축 #3 - DirectionRepository 및 RouteUseCase 종합 테스트 추가 - SocialType enum 구현 (Apple/Google 로그인 지원) - 테스트 태그 시스템 및 Mock 객체 구성 - 스플래시 화면 지연 시간 조정 (0.3초 → 2초) - 프로젝트 모듈 설정 개선 * feat: 로그인 화면 및 TCA 기반 인증 모듈 구현 * refactor: 디자인 시스템 색상 표준화 및 컴포넌트 업데이트 #2 * feat: 인증 플로우 통합 및 소셜 로그인 UI 구현 #3 - TCA 앱 라우터에 Auth 상태 및 액션 추가 - Apple/Google 소셜 로그인 버튼 구현 - 스플래시 화면 애니메이션 효과 개선 - 커스텀 모달 시스템 구현 (드래그, 애니메이션) - 로그인 화면에 소셜 로그인 및 게스트 옵션 추가 * feat: 디자인 시스템 구현 #2 * feat: 약관 동의 화면 및 디자인 시스템 버튼 컴포넌트 구현 #2, #3 * feat: 온보딩 모듈 및 Firebase 연동 구현 #4 * refactor: 온보딩 스텝 네비게이션 개선 및 애니메이션 추가 #4 * feat: 온보딩 외부 지도 앱 선택 기능 구현 #4 * feat: 온보딩 외부 지도 앱 선택 기능 구현 #4 * feat: 온보딩 외부 지도 앱 선택 기능 구현 및 url sceheme 추가 #4 * feat: 온보딩 로고 이미지 추가 및 UI 연동 #4 - 온보딩 각 단계별 로고 이미지 3개 추가 - OnBoardingView에 이미지 표시 기능 구현 - ImageAsset에 onBoardingLogo1-3 케이스 추가 - 구글맵 이미지 파일명 오타 수정 (goolgeMap → googleMap) * feat: 온보딩시 지도 로고 수정 #4 * feat: profile 모듈 추가 #5 * feat: google , apple oauth 로그인 추가 #3 * feat: OAuth 인증 시스템 구현 및 Apple/Google 로그인 연동 #3 * feat: OAuth 인증 플로우 개선 및 상태 관리 최적화 #3 로그인, 온보딩, 홈 모듈 간 OAuth 인증 상태 연동 개선 위치 권한 관리자 리팩토링 및 에러 핸들링 강화 약관 동의 및 소셜 로그인 버튼 UI 업데이트 * feat: OAuth 인증 완성 및 앱 아이콘 업데이트 #3 * feat: 스플래시 화면에 토큰 검증 및 자동 라우팅 로직 구현 #3 * feat: 온보딩 완료 후 메인 화면 라우팅 및 네비게이션 완성 #3 * fix: 코드 리뷰 이슈 해결 - 성능, 보안, 품질 개선 ## 수정된 이슈들 ### 🚨 Critical & High Priority Issues - TCACoordinators 중첩 네비게이션 문제 해결 (AuthCoordinator) - MainActor 동시성 안전성 개선 (HomeReducer) ### 💡 Medium Priority Issues - Magic Number 제거: Constants enum으로 지연시간 관리 - 에러 핸들링 개선: Task.sleep do-catch 패턴 적용 - 매직 스트링 제거: SharedKeys enum으로 키 관리 ### ✅ Code Quality Improvements - 동시성 안전성: @mainactor 명시적 지정 - 코드 중복 제거: 공통 Constants 사용 - 유지보수성 향상: 하드코딩된 값들 상수화 ## 기술적 변경사항 ### AuthCoordinator.swift - OnBoarding route push를 MainActor.run으로 안전 처리 - NavigationRequestObserver 다중 업데이트 에러 해결 ### OnBoardingCoordinator.swift - withNavigation: false → true 변경 - 중첩 네비게이션 구조 개선 ### HomeReducer.swift - Task 클로저에 @mainactor 명시적 지정 - 동시성 위반 가능성 제거 ### AppReducer.swift - Constants enum 추가 (splashTransitionDelay: 2초) - Magic number 제거로 유지보수성 향상 ### SplashReducer.swift - Constants enum 추가 (tokenCheckDelay: 1.5초) - Task.sleep do-catch 에러 처리 추가 ### OnBoardingFeature.swift - SharedKeys enum 추가 ("UserSession" 키 관리) - 매직 스트링 제거로 타입 안전성 향상
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🚀 OAuth 인증 시스템 및 온보딩 플로우 구현
iOS TCA 기반 멀티모듈 아키텍처로 구축된 완전한 인증 및 온보딩 시스템 구현
📋 Summary
이번 PR은 TimeSpot iOS 앱의 핵심 인증 시스템과 사용자 온보딩 경험을 완전히 구현합니다. Google/Apple OAuth 인증, 4단계 온보딩 플로우, 자동 로그인 기능, 그리고 확장 가능한 디자인 시스템까지 포괄적인 사용자 경험을 제공합니다.
🔗 Related Issues
✨ 주요 변경사항
🔐 OAuth 인증 시스템
📱 4단계 온보딩 플로우
🎨 디자인 시스템 2.0
🏗️ 아키텍처 개선
🔧 기술적 구현 세부사항
OAuth 인증 플로우
자동 로그인 시스템
URL Schemes 지원
timespot://- 앱 내부 Deep Linkgoogle-oauth://- Google OAuth 콜백google-maps://- Google Maps 연동naver-maps://- Naver Map 연동네비게이션 구조
📊 성능 최적화
메모리 관리
네트워크 최적화
🧪 테스트 커버리지
단위 테스트
통합 테스트
🔒 보안 강화
데이터 보호
인증 보안
🎯 사용자 경험 개선
접근성
성능 체감
📱 테스트 시나리오
인증 플로우 테스트
온보딩 테스트
자동 로그인 테스트
🛠️ 개발 도구 및 환경
빌드 설정
의존성 라이브러리
🔄 향후 확장 계획
Phase 2 (v1.1.0)
Phase 3 (v1.2.0)
📈 성과 지표
기술적 성과
사용자 경험 성과
🎉 Special Thanks
팀 협업
🚨 Breaking Changes
None - 이번 PR은 새로운 기능 구현으로 기존 코드에 영향 없음
📚 문서화