Skip to content

feat: AtchaV2 Phase 3 — CoreAuth 익명 세션 + 인증 데코레이터 + 스플래시 - #341

Merged
YuGeonHui merged 4 commits into
env/devfrom
feat/v2-phase3-core-auth
Aug 22, 2026
Merged

feat: AtchaV2 Phase 3 — CoreAuth 익명 세션 + 인증 데코레이터 + 스플래시#341
YuGeonHui merged 4 commits into
env/devfrom
feat/v2-phase3-core-auth

Conversation

@YuGeonHui

Copy link
Copy Markdown
Collaborator

개요

AtchaV2 Phase 3 — CoreAuth 익명 세션 + 인증 데코레이터 + 스플래시. AtchaData/Feature 코드 무변경으로 인증 계층을 네트워크 데코레이터로 삽입합니다.

주요 변경

CoreAuth (신규 모듈, .nonisolated, CoreNetwork+CoreStorage 의존)

  • TokenStore: 키체인 기반 액세스/리프레시 토큰 보관 (레거시 키 계약 유지)
  • AuthSessionManager(actor): 익명 부트스트랩 + GET /auth/reissue 리프레시(토큰 회전) + 401 복구 체인, single-flight
  • AuthenticatedNetworkClient: Bearer 부착 → 401 시 복구 1회 → 재시도, 공개 경로 suffix 주입, 복구 불능 시 원 401 전파

App

  • AppDIContainer 데코레이터 주입, 스플래시 단계(AppCoordinator + SplashViewController)
  • base URL 실호스트 반영 (atcha.p-e.kr / atcha.online)

검증

  • 테스트 30개 (Swift Testing): 401 체인 · 동시 401 시 리프레시 1회 · 공개 경로 예외
  • 익명 발급 엔드포인트는 스펙 미정(미확정 입력 [DESIGN] 색상 및 폰트 설정 #2) — 프로토콜+스텁, 실호출 보류

⛓️ 스택 PR: #340 머지 후 머지해주세요.

🤖 Generated with Claude Code

YuGeonHui and others added 4 commits August 22, 2026 13:11
- Domain: Place/LastRoute/AlarmInfo 엔티티, LastRouteSearchResult 정규화 enum,
  Repository·디바이스 포트 6종, UseCase 7종 (등록 순서·정규화 정책 포함)
- AtchaData: Route/Place/Alarm 엔드포인트, APIResponse envelope 해체 헬퍼,
  레거시 실측 DTO 이식(toEntity, KST 고정 파싱, mode unknown 폴백), RepositoryImpl 3종
- 테스트: Domain 정책 8개 + AtchaData 인라인 픽스처 28개 (Swift Testing)
- 미확정 입력 #3(빈 목록=serviceEnded 가정)·#4(클라 삭제 후 등록)는 TODO로 격리

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- CoreStorage 레이어 모듈 신설 (KeyValueStore 프로토콜 + Codable 헬퍼,
  UserDefaultsKeyValueStore, KeychainStore — 레거시 키체인+메모리 캐시
  패턴을 Mutex 기반 Sendable-clean으로 재작성)
- AtchaData에 RecentSearchRepositoryImpl (최대 10개, 중복 시 최신 갱신,
  최신순, 삭제 지원) + RecentSearchRecordDTO
- 테스트는 인메모리 KeyValueStore 스텁 (실 UserDefaults 미사용)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
- CoreAuth 모듈 신설(.nonisolated, CoreNetwork+CoreStorage 의존)
- TokenStore: 키체인 기반 액세스/리프레시 토큰 보관(레거시 키 계약 유지)
- AuthSessionManager(actor): 익명 부트스트랩 + GET /auth/reissue 리프레시
  (토큰 회전) + 401 복구 체인, single-flight
- AuthenticatedNetworkClient: Bearer 부착 → 401 시 복구 1회 → 재시도,
  공개 경로 suffix 주입, 복구 불능 시 원 401 전파 (AtchaData/Feature 무변경)
- App: 데코레이터 주입(AppDIContainer), 스플래시 단계(AppCoordinator +
  SplashViewController), base URL 실호스트 반영(atcha.p-e.kr / atcha.online)
- 익명 발급 엔드포인트는 스펙 미정(미확정 입력 #2) — 프로토콜+스텁, 실호출 보류
- 테스트 30개(Swift Testing): 401 체인·동시 401 리프레시 1회·공개 경로 예외

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@YuGeonHui
YuGeonHui merged commit d80cbcc into env/dev Aug 22, 2026
1 check passed
@YuGeonHui
YuGeonHui deleted the feat/v2-phase3-core-auth branch August 22, 2026 11:41
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.

1 participant