Skip to content

참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2 #1064

Closed

Description

@1hyok

feature/setting/presentation 에 정의 파일 밖 참조가 0건인 선언이 5개 남아 있다. 전부 후속 구현으로 대체된 뒤 호출부만 지워지고 파일이 남은 잔재다. #941(core:model 죽은 타입 6개)과 같은 유형이고, #945 의 setting 이관 선행으로 처리하면 옮길 파일이 그만큼 줄어든다.

실측 기준: efbb1256c (origin/develop, 2026-08-24). setting presentation 의 top-level 선언 72개를 전수로 훑어 정의 파일 밖 참조 수를 셌다. 아래 5개만 0이었다.

삭제 대상

1. screen/RecipientSetScreen.kt — 도달 불가 화면

SettingNavGraph 에 등록돼 있지 않고, 레포 어디서도 호출하지 않는다(파일 안 Preview :160 만 자기 자신을 부른다). 수신인 설정은 ReceiverListScreen · ReceiverRegisterScreen · ReceiverEditScreen 3종이 맡고 있고 그쪽만 SettingNavGraph.kt:111·125·132 에 연결돼 있다. 이 화면은 상태 로직 없이 rememberTextFieldState() 로만 돌아가는 초기 판이다.

2. viewmodel/InsertPasswordViewModel.kt · viewmodel/InsertPasswordUiState.kt — 대체된 ViewModel

@HiltViewModel 인데 주입받는 곳이 없다. 내용은 4자리 비밀번호 입력 상태(onDigitInput · onDelete)인데, AppLockSetupViewModel 이 같은 이름·같은 시그니처로 같은 일을 한다(AppLockSetupViewModel.kt:18·29). InsertPasswordUiState 는 이 ViewModel 안에서만 쓰인다.

살아 있는 건 컴포넌트 쪽인 component/InsertPasswordContent.kt 다 — AppLockSetupScreen.kt:90 · PassKeyPasswordScreen.kt:64 가 쓴다. 이 파일은 지우지 않는다.

3. component/DatePickerBottomSheet.kt — 호출부 제거 후 잔존

fe09b4fbb(사후전달조건 기능 추가)로 들어왔다가 4779b66ab(timeletter 및 setting API 명세 동기화)에서 DeliveryConditionScreen 의 호출이 빠졌는데 파일만 남았다.

옛 브랜치 11개(feat/369·fix/422 등)에 아직 호출부가 있지만, 그중 열려 있는 #967 · #987 은 DeliveryConditionScreen.kt 를 변경하지 않는다(merge-base 대비 0건). 머지돼도 develop 쪽 상태가 유지되므로 되살아나지 않는다.

4. component/SettingSourceItem.kt — 참조 0

SettingSourceItem · SettingSourceItemData 둘 다 밖에서 참조 0건이고 파일 안 Preview 만 있다.

삭제하지 않는 것

component/LabelCheckoutboxRow.kt 는 살아 있다. 파일명으로 검색하면 참조가 안 잡히는데, 안에 든 심볼 이름이 LabeledCheckboxRow 라서 그렇다(DeviceAlarmOffSection.kt:36·41·46 이 3번 쓴다). 파일명 쪽이 오타(Checkoutbox → Checkbox)이자 심볼명 불일치이므로 파일명만 LabeledCheckboxRow.kt 로 고친다. 이 이슈에 같이 넣는다.

#635 에 미치는 영향

@koongmai — #635 의 setting 1번 항목(RecipientSetScreen.kt:134 의 ReadOnlyField 를 core AfternoteFieldContainer 로 수렴)은 화면째 삭제되면 사라진다. 죽은 화면을 core 로 수렴하는 작업이 되므로, 이 이슈를 먼저 처리하고 #635 에서는 그 항목을 빼는 쪽이 맞다고 본다. setting 나머지 3건(드롭다운 앵커 · PassKeyViewModel DataStore 직참 · 셰브론 아이콘)은 영향 없다.

#635 가 SettingSourceItem · LabelCheckoutboxRow 를 검토했다가 기각한 근거는 "core 대체가 부적합" 이었고, 참조 0건 여부는 다루지 않았다. 겹치는 판정이 아니다.

검증

  • 삭제 후 :feature:setting:presentation:compileDebugKotlin · compileDebugUnitTestKotlin 통과
  • 시각 변경 없음(도달 불가 화면·미사용 컴포넌트라 렌더되는 화면이 바뀌지 않는다). SettingSourceItem 의 Preview 가 사라지므로 screenshotTest baseline 에 그 항목이 있으면 같이 정리

Activity

  1. self-assigned this
    on Aug 24, 2026
  2. assigned and unassigned on Aug 24, 2026
  3. 1hyok commented on Aug 24, 2026

    @1hyok
    CollaboratorAuthor

    담당 모듈 경계(설정 = @koongmai)에 따라 어사인을 넘깁니다. 본문의 참조 0건 실측(efbb1256c 기준, setting presentation top-level 선언 72개 전수)과 LabelCheckoutboxRow.kt 파일명 정정 건은 그대로 유효합니다.

    덧붙여 #1088(설정 presentation 패키지 구조 이관)이 이 이슈를 blocked_by 로 겁니다 — 죽은 파일 5개를 먼저 지우면 새 구조로 옮길 파일이 그만큼 줄기 때문입니다.

  4. changed the title [-]refactor(setting): 참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2[/-] [+]참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2[/+] on Aug 28, 2026
  5. added
    refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업
    and removed on Aug 28, 2026
  6. assigned and unassigned on Sep 6, 2026
  7. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 13, 2026
  8. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Sep 19, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

area:setting설정 기능 영역refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions