Skip to content

fix(setting): ViewModel 저장소 호출의 취소 전파 잔여를 마무리한다 (#661 후속) #1501

Closed

Description

@OnlyReadOneBook

작업 유형

bug — 버그·오동작

주 담당 모듈

setting — 설정

개요

설정 ViewModel이 저장소 suspend 호출을 stdlib runCatching으로 감싸 CancellationException을 일반 실패로 처리하는 현재 잔여를 수정한다. 좁은 저장소 계약을 적용한 PR #2123과 저장 정책 추출 PR #2124를 포함한 현재 코드가 기준이다.

현재 범위

  • ConnectedAccountsViewModel의 계정 조회, 연결, 해제 3곳
  • SettingViewModel의 프로필 조회 1곳
  • PushNotificationViewModel의 마케팅 동의 조회 1곳

위 5곳에 기존 core:common runCatchingCancellable을 적용한다. 이미 취소를 전파하는 수신자·전달조건 저장과 알림 토글 저장, 계정 탈퇴 처리는 유지한다. 취소를 제외한 Throwable의 기존 실패 처리와 성공 동작, 상태·이벤트 갱신 순서는 보존한다.

닫힌 미병합 #1967, #1925, #1930, #2043에 있던 취소 수정은 develop에 반영된 결과가 아니다. 과거 설정 11곳이라는 수치는 역사적 실측이며 현재 수정 개수로 사용하지 않는다. 프로필 조회·수정 2곳의 취소 전파는 #2179의 MVI 선행에 포함되어 이 이슈의 코드 변경에서 빠진다. 그 종료 회귀 검증은 유지한다. 타임레터 몫은 #2041에서 별도로 다룬다.

완료 조건

  • 현재 설정 presentation의 실제 저장소 suspend 호출에서 취소를 일반 실패로 소비하는 stdlib runCatching 잔여가 없다.
  • 실제 ViewModelStore 종료로 진행 중인 7개 호출(이번 5곳과 선행 #2179의 프로필 2곳)을 취소하는 회귀 테스트에서 취소 도달, 상태 유지와 실패 이벤트 부재를 확인한다.
  • 마케팅 동의 조회 취소 후 ErrorReporter 기록과 실패 Logcat이 모두 0건임을 확인한다.
  • 기존 성공·일반 실패 계약을 유지하며 관련 단위 테스트, ktlint, 앱 컴파일과 Konsist 검사를 통과한다.

병합 순서

실제 선형 스택은 #2123, #2173, #2180, #2124, 이 이슈의 PR 순서다. #2124의 브랜치를 실제 base로 사용해 선행 변경이 이 PR diff에 섞이지 않도록 한다. #2123의 좁은 저장소 계약을 소비하며 #2124 뒤의 순서는 같은 설정 작업의 스택 통합을 위한 것이다.

Activity

  1. github-actions commented on Aug 29, 2026

    @github-actions
    Contributor

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

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

    등록 후 24시간이 지나도 비어 있으면 자동으로 닫습니다. 닫힌 뒤에는 값을 지정하고 다시 열어 주세요.

  2. changed the title [-]fix(setting,timeletter): ViewModel 이 저장소 suspend 를 감싼 runCatching 으로 취소를 삼킨다 — #661 의 presentation 잔여 20곳[/-] [+]fix(setting): ViewModel 저장소 호출의 취소 전파 잔여를 마무리한다 (#661 후속)[/+] on Sep 13, 2026
  3. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 13, 2026
  4. github-actions commented on Sep 13, 2026

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2043 다 (base fix/963-setting-error-reporting).

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

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

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

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2128 다 (base refactor/1691-setting-save-usecases).

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

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

  8. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Oct 5, 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