You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2 #1064
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() 로만 돌아가는 초기 판이다.
@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 로 고친다. 이 이슈에 같이 넣는다.
@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
1hyok commentedon Aug 24, 2026
담당 모듈 경계(설정 = @koongmai)에 따라 어사인을 넘깁니다. 본문의 참조 0건 실측(
efbb1256c기준, setting presentation top-level 선언 72개 전수)과LabelCheckoutboxRow.kt파일명 정정 건은 그대로 유효합니다.덧붙여 #1088(설정 presentation 패키지 구조 이관)이 이 이슈를
blocked_by로 겁니다 — 죽은 파일 5개를 먼저 지우면 새 구조로 옮길 파일이 그만큼 줄기 때문입니다.fix(mindrecord): 본문 이미지 크기가 EXIF 회전을 반영한다
[-]refactor(setting): 참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2[/-][+]참조 0건 잔재 5파일 삭제 — 도달 불가 화면 1 · 대체된 ViewModel 1 · 죽은 컴포넌트 2[/+]