Skip to content

refactor(setting): 수신자 저장·전달조건 정책을 UseCase로 분리한다 #1691

Closed

Description

@OnlyReadOneBook

작업 유형

refactor — 동작 변경 없는 구조·책임·경계 개선

주 담당 모듈

setting — 설정

개요

현재 ReceiverEditViewModel과 DeliveryConditionViewModel에 있는 확정된 저장 정책을 setting domain UseCase로 분리한다. 선행 #1429, #1739의 좁은 저장소 계약을 적용한 PR #2123 위에서 현재 소비자를 직접 연결한다.

구현 범위

  • UpdateReceiverInfoUseCase가 기본정보 저장 후 인사말을 저장하고 성공, 기본정보 요청 실패, 기본정보 성공 후 인사말 요청 실패를 구분한다.
  • 기존 Throwable 실패 범위와 원인 객체 및 취소 전파를 보존한다. 두 쓰기 사이 취소를 확인해 취소된 작업이 인사말 저장을 시작하지 않게 한다.
  • UpdateTimeLetterDeliveryConditionUseCase가 다른 콘텐츠의 조건과 기존 상태·시각 정보를 보존하며 TIME_LETTER 수정, 누락 시 ACTIVE 생성, RECEIVER_REQUEST의 기간 제거를 수행한다.
  • 두 UseCase는 UserReceiverRepository만 사용하고 현재 ViewModel은 로딩, 입력 검증, 중복 저장 방지, 오류 문구, 성공 이벤트를 유지한다.
  • 저장 순서, 부분 실패, 취소, Throwable 범위, 조건 보존을 domain 회귀 테스트와 기존 presentation 테스트로 검증한다.

병합 및 의존 순서

#1429와 #1739를 함께 끝내는 PR #2123가 선행 변경이다. 이 이슈의 PR은 해당 브랜치를 실제 base로 사용하며 #2123 병합 후 병합한다. 실제 blocked_by는 대표 선행 이슈 #1429로 연결한다.

닫힌 미병합 PR #1967에서 저장 정책만 참고하고 현재 코드에 맞춰 반영한다. 취소된 MVI나 네비게이션 전환은 복원하지 않는다. 이 이슈는 새 후속 PR의 병합으로 완료한다.

Activity

  1. added
    refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업
    on Aug 31, 2026
  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 13, 2026
  3. OnlyReadOneBook commented on Sep 13, 2026

    @OnlyReadOneBook
    CollaboratorAuthor

    이 이슈를 맡은 PR 은 #1967 이다 (base codex/1695-setting-nav3). 본문에서 UpdateReceiverInfoUseCase 가 기본정보에서 인사말로 이어지는 저장 순서와 부분 성공을, UpdateTimeLetterDeliveryConditionUseCase 가 다른 콘텐츠 보존·TIME_LETTER 합성·기간 정규화를 소유한다고 적고 있다. UI 문구·로딩·중복 탭은 ViewModel 에 남긴다.

    pr-open 라벨을 손으로 붙였다. #1967 은 제목이 (#1502) 로 끝나고 본문에서 네 이슈를 닫는데, 라벨러가 제목의 대표 이슈 하나만 읽어 나머지 셋에는 라벨도 링크 코멘트도 가지 않았다(#2082).

    base 가 기본 브랜치가 아니라서 GitHub 의 Development 칸도 비어 있다. 이 이슈만 보면 아무도 손대지 않은 것으로 읽힌다.

    이 코멘트에는 라벨러의 마커를 넣어 두어, #2082 수정이 머지돼도 같은 내용이 한 번 더 달리지 않는다. 라벨은 수정 전까지 배포본 리컨사일러가 도로 떼어 가므로 라벨이 없을 수 있다.

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

    @github-actions
    Contributor

    이 이슈를 맡은 PR 은 #2124 다 (base refactor/1429-setting-repositories).

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

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

  7. 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설정 기능 영역refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions