Skip to content

refactor(app): 홈·수신자 홈 화면 feature 모듈 이전 — app 잔존 presentation 정리 #546

Closed

Description

@OnlyReadOneBook

Note

(2026-08-23) 구현 PR 존재 — 이 이슈는 PR #917 이 아래 원 범위 그대로(발신자 홈 → :feature:home:presentation 신설 + 수신자 홈 → :feature:receiver:presentation) 구현해 리뷰 대기 중이다. 같은 날 있었던 이 이슈의 범위 축소 편집(수신자 홈만 남기고 발신자 홈을 #926 로 위임)은 그 PR 존재를 확인하지 않은 채 이뤄진 것이라 되돌렸다. 홈 담당 이관(정일혁 → @Sadturtleman, 수신자 홈 화면 포함)에 따른 후속 정비(소셜 아이콘·getIconResForType → core:ui 등)는 #926 으로 진행한다.

📜 Overview (Required)

app 모듈에 홈 화면 구현이 그대로 남아 있다. 다른 기능은 모두 feature/<도메인>/presentation 으로 분리돼 있는데 홈만 com.afternote.afternote_fe.screen 아래에 있고, 그 패키지에는 presentation 계층 이름조차 없다.

실측(2026-07-27):

  • 수신자 홈 13개 파일(screen/receiver/**). 갈 자리인 :feature:receiver:presentation 은 2026-05-27 "수신자 기능 모듈 분리 및 관련 도메인 로직 이전" 커밋에서 등록됐지만 소스 0개다(build.gradle.kts + AndroidManifest.xml 뿐). compose·navigation·hilt 의존까지 이미 선언돼 있어 화면을 받을 준비는 끝나 있다 — 그 커밋이 domain 만 옮기고 멈춘 상태.
  • 발신자 홈 3개 파일(HomeTabScreen·HomeTabViewModel·WeeklySummaryGrid) + usecase/GetHomeSummaryUseCase. 2026-04-10 생성으로 모듈 분리 체계보다 앞서고, 받을 모듈이 아직 없다.
  • app 안에서의 외부 참조는 navigation/AppNavigation.kt·AppNavigationActions.kt 2곳뿐이다.
  • app/src/screenshotTest 의 9개 테스트가 전부 이 화면들을 대상으로 한다 — 함께 이동하며 baseline 경로가 바뀐다.

이 구조가 실제로 만든 비용:

  • "모든 기록 내려받기" 가 두 벌 구현돼 있다 — ReceiverHomeViewModel.downloadAll()(app) 과 ReceiverDownloadAllViewModel.handleConfirmDownload()(feature) 가 downloadAllReceived() → saveReceivedExportToFile() 를 같은 순서로 호출한다.
  • 그래서 feat(core): non-fatal 오류 계측 확대 — 홈·애프터노트 흐름의 handled 실패 기록 #544 계측에서 같은 값(received_export_download·received_export_save)이 home_stage·afternote_stage 두 키에 각각 생겼다. 콘솔에서 한 기능의 실패를 보려면 키 두 개를 봐야 한다.
  • 계측 규격 파일도 HomeFailureReporting.kt(app) 과 AfternoteFailureReporting.kt(feature:afternote) 로 두 벌이다.

작업 내용:

  • 수신자 홈 13개 파일 + 대응 screenshotTest 8개를 :feature:receiver:presentation 으로 이전. feature:afternote domain·presentation 의존을 추가한다(현재 app 이 지고 있는 의존을 그대로 물려받는다).
  • 발신자 홈은 받을 모듈을 정한 뒤 이전한다 — :feature:home:presentation 신설 vs 마인드레코드 편입(홈 카드가 일기 TOTAL·수신인 지정 배지라 소관이 갈린다). 결정 근거를 PR 에 남긴다.
  • navigation/ 은 app 에 남긴다 — NavGraph·BottomNav 조합은 app 의 역할이다.
  • 이전에 딸린 계측 규격(HomeFailureReporting.kt)도 같이 옮기고, 두 벌이 된 내려받기 stage 를 한쪽으로 정리한다.
  • 파일 이동은 git 이 rename(R)으로 인식하도록 한다.
  • screenshot baseline 은 이동 후 CI 와 같은 docker 사이클로 재생성한다.

📍 Note (Optional)

Activity

  1. changed the title [-]refactor(app): 홈·수신자 홈 화면 feature 모듈 이전 — app 잔존 presentation 정리[/-] [+]refactor(app): 수신자 홈 화면 :feature:receiver:presentation 이전 — app 잔존 presentation 정리[/+] on Aug 23, 2026
  2. changed the title [-]refactor(app): 수신자 홈 화면 :feature:receiver:presentation 이전 — app 잔존 presentation 정리[/-] [+]refactor(app): 홈·수신자 홈 화면 feature 모듈 이전 — app 잔존 presentation 정리[/+] on Aug 23, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

enhancementNew feature or request

Type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions