Skip to content

refactor(afternote): author/navigation 의 «NavGraph» 6개는 실은 화면 조립부 — 기능 폴더로 이관해 수신자 규칙과 통일 #1514

Closed

Description

@OnlyReadOneBook

작업 유형

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

주 담당 모듈

afternote — 애프터노트

개요

feature:afternote:presentation 안에서 작성자와 수신자가 서로 다른 규칙을 쓴다. 같은 «상세 화면» 인데 조립부(Route)의 자리가 다르다.

조립부 위치 기능 폴더
수신자 receiver/detail/ReceivedAfternoteDetailRoute.kt receiver/detail/ 에 Route·Screen·VM·UiState·매퍼가 모여 있다
작성자 author/navigation/AfternoteNavGraphDetail.kt author/detail/ 에는 Screen·VM·UiState·매퍼만 — 조립부만 다른 폴더

그래서 작성자 상세를 한 번 고치려면 author/detail/ 와 author/navigation/ 을 오간다. #945 가 없애려던 증상(«화면 하나 고치려고 폴더를 오간다»)인데, #945 본문은 afternote 를 이미 «기능별 묶음(B군)» 으로 분류해 두어 이 갈래가 어느 이슈에도 안 걸려 있다.

이름이 내용과 다르다 — 전수 실측

기준 리비전 1bc422bb0 (origin/develop). author/navigation/ 의 파일 9개 중 실제로 NavGraphBuilder 확장을 가진 것은 2개뿐이다.

파일 top-level 선언 NavGraphBuilder 실체
AfternoteNavGraph.kt 5 O 진짜 NavGraph (afternoteNavGraph)
AfternoteNavGraphTheme.kt 2 O afternoteComposable 공용 헬퍼
AfternoteNavGraphDetail.kt 17 X 상세 Route + 실패·미구현·오버레이 컴포넌트 + 부수 핸들러
AfternoteNavGraphEditor.kt 6 X 에디터 Route + 헬퍼 4종(messageResId·tryApplyReceiverSelectionFromSavedState·buildOnRegisterClick·shouldDeferEditorBaselineCapture)
AfternoteNavGraphHome.kt 2 X 홈 Route
AfternoteNavGraphAddSong.kt 2 X 곡 추가 Route
AfternoteNavGraphSelectReceiver.kt 2 X 수신자 선택 Route
AfternoteNavGraphFingerprint.kt 2 X 지문 로그인 Route
AfternoteNavActions.kt 0 X 내비 액션 홀더

즉 6개가 «NavGraph» 라는 이름을 달고 있지만 내용은 화면 조립부다. 수신자 쪽은 같은 역할을 …Route.kt 로 부른다.

공용 컴포넌트가 남의 패키지에 산다

DetailLoadErrorContent · DesignPendingDetailContent 는 author/navigation/AfternoteNavGraphDetail.kt 에 정의돼 있는데, 수신자 화면 3곳이 import 해서 쓴다 — receiver/detail/ReceivedAfternoteDetailRoute.kt(2종), receiver/navigation/ReceivedAfternoteNavGraph.kt(1종). 공용 자원이 한쪽 기능의 내비게이션 폴더에 얹혀 있는 형태다.

작업 범위

목표 형태는 수신자 쪽이다(#945 의 «기능별 묶음» 방향과 일치).

  1. Route 6개를 기능 폴더로 옮기고 …Route.kt 로 개명한다. 이동 대상 폴더는 이미 다 존재한다.

    현재 이동 후
    AfternoteNavGraphDetail.kt author/detail/AfternoteDetailRoute.kt
    AfternoteNavGraphHome.kt author/home/AfternoteHomeRoute.kt
    AfternoteNavGraphEditor.kt author/editor/AfternoteEditorRoute.kt (헬퍼 4종은 editor 안 적절한 파일로)
    AfternoteNavGraphAddSong.kt author/editor/memorial/playlist/AddSongRoute.kt
    AfternoteNavGraphSelectReceiver.kt author/editor/receiver/select/SelectReceiverRoute.kt
    AfternoteNavGraphFingerprint.kt shared/fingerprint/FingerprintLoginRoute.kt
  2. 공용 컴포넌트 DetailLoadErrorContent · DesignPendingDetailContent 는 shared/detail/ 로 옮긴다(이미 shared/detail/ 에 InfoCard·ReceiversCard 등 공용 조각이 있다).

  3. author/navigation/ 에는 진짜 NavGraph 2개와 model/, AfternoteNavActions.kt 만 남긴다.

완료 조건

  • author/navigation/ 에 NavGraphBuilder 확장이 없는 파일이 남지 않는다.
  • 작성자·수신자 양쪽에서 «상세 화면 한 벌» 이 한 폴더에서 읽힌다.
  • 수신자 화면이 author.navigation 을 import 하지 않는다.
  • 순수 이동·개명이므로 동작 변경이 없고 기존 테스트가 그대로 통과한다.

자식 이슈

No response

참고

Activity

  1. added
    refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업
    area:afternote애프터노트 기능 영역
    on Aug 29, 2026
  2. added
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Aug 29, 2026
  3. removed
    pr-open이 이슈를 구현하는 PR 이 열려 있다 — base 가 기본 브랜치가 아니어도 드러낸다
    on Aug 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

area:afternote애프터노트 기능 영역refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions