Skip to content

[#56] 동시 401 요청의 토큰 개싱을 단일화한다 - #62

Merged
opficdev merged 7 commits into
developfrom
feat/#56
Aug 23, 2026
Merged

opficdev merged 7 commits into
developfrom
feat/#56

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

📝 작업 내용

📌 요약

  • 동시 401 요청의 refresh Task 단일화
  • NXAPIClient 값 복사본과 NXRequestBuilder 복사본의 refresh coordinator 공유
  • refresh 성공·실패·nil 결과·호출자 취소 회귀 검증
  • DocC와 README.md·README.ko.md 동작 문서화

🔍 상세

  • NXAuthTokenProvider 공개 요구 사항과 NXAuthInterceptor의 최대 한 번 재전송 계약 유지
  • 동시 50건 요청의 refresh 1회, client 값 복사본 공유, 실패 결과 공유, nil 결과의 원래 401 보존, 호출자 취소 격리 검증
  • 실제 refresh 한 번당 NXAuthRefreshLog 한 건과 refresh 시작 요청 식별자 기록

검증

  • swift build 통과
  • swift test 105개·24개 suite 통과
  • swiftlint lint --config .swiftlint.yml 0개 위반
  • git diff --check origin/develop...HEAD 통과
  • App·Simulator 실행 미수행

📸 영상 / 이미지 (Optional)

flowchart LR
    request[authorized 요청] --> auth[NXAuthInterceptor]
    auth --> initial[기존 토큰 첫 전송]
    initial --> unauthorized[401 응답]

    unauthorized --> coordinator[NXAuthRefreshCoordinator]
    coordinator -->|생성 또는 대기| refreshTask[공유 refresh Task]
    refreshTask -->|갱신 호출| provider[NXAuthTokenProvider]
    provider -->|결과 전달| refreshTask
    refreshTask -->|결과 기록| logger[NXLogger]
    refreshTask -->|새 토큰| replay[한 번 재전송]
    refreshTask -->|nil 결과| original[원래 401 반환]
    replay --> success[정상 응답]

    unauthorized -. 직접 갱신 호출 .-> provider
    provider -. 요청별 결과 기록 .-> logger
    logger -. 재전송 연결 .-> replay
    provider -. nil 결과 .-> original
Loading
  • 실선: NXAuthRefreshCoordinator와 공유 Task 기반 현재 흐름
  • 점선: 요청마다 NXAuthTokenProvider를 직접 호출하던 제거 경로

@opficdev opficdev self-assigned this Aug 23, 2026

@chatgpt-codex-connector chatgpt-codex-connector 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.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f61115004c

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread Sources/Runtime/NXAuthRefreshCoordinator.swift Outdated
Comment thread Tests/NXAuthRefreshConcurrencyTests.swift Outdated
@opficdev
opficdev merged commit 973ef56 into develop Aug 23, 2026
4 checks passed
@opficdev
opficdev deleted the feat/#56 branch August 23, 2026 12:18
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.

동시 401 요청의 토큰 갱신을 단일화한다

1 participant