Skip to content

refactor(afternote): DetailContent.Memorial 의 MemorialDetail 래퍼를 걷어 songs·media 로 평탄화한다 #1746

Closed

Description

@1hyok

작업 유형

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

주 담당 모듈

afternote — 애프터노트

개요

DetailContent.Memorial 은 종류별 데이터를 memorial: MemorialDetail 한 겹으로 싸서 든다. MemorialDetail 은 songs: List<DetailSong> 과 media: MemorialMedia 두 필드뿐이고, 이 래퍼를 독립 타입으로 받는 소비처는 없다 — 상세 화면 매퍼와 에디터 프리필 매퍼 둘 다 content.memorial.songs · content.memorial.media.… 로 바로 풀어 쓴다.

문제

  • 동어반복. 접근 경로가 DetailContent.Memorial.memorial.songs 다. 원래 playlist: PlaylistDetail 이던 것을 용어 현행화 커밋 7c3e449 가 playlist→memorial 로 일괄 치환하면서 «추억 노트의 플레이리스트» 가 «추억의 추억» 이 됐다.
  • 형제와 모양이 다르다. SocialNetwork(credentials, processingMethods) · Gallery(processingMethods) 는 종류별 데이터를 필드로 직접 드는데 Memorial 만 한 겹 더 싼다.
  • 래퍼가 정당화될 조건이 없다. 서버의 playlist 는 «통째로 있거나 없는» 단위지만 도메인에서는 non-null 이라 그 의미가 표현되지 않는다(fix(afternote): 곡 없는 임시저장을 발행 상세와 분리해 조회한다 #1745 로 부재가 빈 값으로 낮춰지면 더욱).
  • 용어 잔재. DetailSong KDoc 이 «추억 플레이리스트의 개별 곡» 이다.

범위

  • DetailContent.Memorial(songs: List<DetailSong>, media: MemorialMedia) 로 평탄화하고 MemorialDetail 을 지운다. MemorialMedia · DetailSong 은 그대로.
  • 사용처 갱신 — AfternoteDetailMapper, FakeAfternoteRepository, AfternoteDetailSuccessMapper, AfternoteEditorFormMapper, AfternoteDetailMapperTest, AfternoteEditorFormPrefillTest.
  • DetailSong KDoc 의 플레이리스트 용어를 추억 노트 용어로 맞춘다.

회귀 검증

  • 동작 변경 없음 — 상세 화면 UI 모델과 에디터 프리필의 기존 테스트가 그대로 통과한다.
  • :feature:afternote:{domain,data,presentation} 단위 테스트 · :app:compileDebugUnitTestKotlin · :app:compileDebugAndroidTestKotlin · :konsist:test · ktlintCheck.

비범위

자식 이슈

No response

참고

Activity

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

Metadata

Metadata

Assignees

Labels

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

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions