Skip to content

fix(setting): 패스키 목록·등록 호출과 실패 처리 구현분 분리 (#555) #1944

Closed

Description

@OnlyReadOneBook

작업 유형

bug — 버그·오동작

주 담당 모듈

setting — 설정

개요

#555에서 이미 구현한 클라이언트 목록·등록 호출 및 실패 처리 범위만 분리합니다. 현재 구현 PR은 #2236이며, 최종 MVI 구조를 소비한 구현·테스트·push와 PR 검증까지 완료했습니다.

기존 화면은 목록 자리표시자 1건을 고정 표시하고 로컬 자격 증명 생성만으로 등록 완료를 표시했습니다. PR #2236은 서버 목록을 조회해 로딩·실제 0건·실패를 구분하며, registerOptions → Credential Manager → register 순서와 서버 성공 후 완료 표시를 구현합니다.

이 이슈의 완료 범위:

  • setting domain/data 전용 패스키 저장소로 목록·options·등록 API 계약을 연결한다.
  • 서버 목록을 실제 값으로 표시하고 조회 실패·재시도·재진입 갱신을 처리한다.
  • 등록 취소·플랫폼 실패·서버 거절·예상 밖 응답을 분리하며 실패를 완료로 표시하지 않는다.
  • 서버 성공 뒤 캐시 실패가 재등록으로 이어지지 않게 처리한다.
  • 제어된 fixture 단위·계측 테스트로 목록/등록 분기와 실패 시 완료 차단을 검증한다.
  • PR #2236의 실제 HEAD df7a8ee7ecb05b03718b56123f0770fb50a85d2a에서 코드 CI, API30 계측 72건과 API34 접근성 계측 1건이 통과한다.
  • 선행 PR과 필요한 리뷰 조건을 충족하고 최종 develop 통합 검증 후 PR #2236을 머지한다.

실제 서버 등록 성공의 미확인 상태는 이 완료 범위에서 제외하여 부모 #555에 남깁니다. 직접 관측한 최종 응답은 HTTP 400 / code 2700이며 서버 목록은 전후 0건입니다. 거절 원인 확정, 새 options를 이용한 실제 등록 성공, 성공 직후 서버·앱 목록 갱신 및 재진입 유지, 물리 기기 생체인증 QA와 실제 증거는 #555가 계속 추적합니다. CI fixture 성공이 실서버 등록 성공을 뜻하지 않습니다.

참고

최종 구조와 실제 선행

#1502의 MVI 구조를 소비한 #708과 생체 인증 선행 PR #2202·#2226 위에서 구현합니다. 직접 base는 #2226의 fix/2200-legacy-biometric-auth (c60c993e2d2058c27b86db65a2c611e54b7937d7)이며 Navigation 3와 상태 소비 계약을 그대로 사용합니다. #2236의 신규 PassKeyListViewModel뿐 아니라 기존 PassKeyViewModel도 MviViewModel/Intent/reduce를 사용합니다. 등록 수명을 상태로 옮기며 함께 수정하는 PassKeyPasswordScreen의 PIN 입력·초기화 소비처와 AppLockSetupViewModel도 같은 PR에서 최종 MVI로 전환하여 #1805의 재작성을 제거합니다.

화면 폐기는 등록 취소 Intent로 전달하고 이전 등록의 늦은 종료가 새 등록을 중지시키지 않도록 요청 세대를 구분합니다. 서버 성공 후 캐시 실패는 성공 상태를 뒤집지 않습니다. #555의 실서버 성공·목록 반영·물리 생체인증 QA 잔여는 그대로 유지합니다.

Activity

  1. github-actions commented on Sep 7, 2026

    @github-actions
    Contributor

    bug 이슈는 사이드바 Fields > Priority 로 심각도를 지정해야 합니다. 판정 기준:

    • Urgent: 치명 — 크래시·데이터 소실·보안 무력화·핵심 경로 차단·가짜 성공
    • High: 심각 — 실패·틀린 값의 정상 위장, 핵심 기능 무동작
    • Medium: 불편 — 우회로가 있는 오동작·틀린 표시, 핵심 흐름은 유지
    • Low: 경미 — 문구·정렬·마감 품질 흠, 기능 영향 없음

    값이 비어 있어도 이슈를 닫지는 않습니다. 이 안내는 이슈당 한 번만 답니다.

  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 7, 2026
  3. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 18, 2026
  4. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 1, 2026
  5. github-actions commented on Oct 1, 2026

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2236 다 (base fix/2200-legacy-biometric-auth).

    base 가 기본 브랜치(develop)가 아니라서 GitHub 은 이 이슈의 Development 칸에
    아무것도 표시하지 않는다. 본문에 Closes #N 이 있어도 마찬가지다 — 그 링크는 기본 브랜치를
    target 하는 PR 에서만 만들어진다.

    PR 이 닫히거나 머지되면 이 이슈의 pr-open 라벨은 다음 리컨사일에서 떨어진다.

  6. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 6, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:setting설정 기능 영역bugSomething isn't working

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions