Skip to content

refactor(afternote): 담당 모듈 화면 노출 문자열 33건 리소스화 — 절반이 「이미 있는 리소스의 미사용」 #1469

Closed

Description

@OnlyReadOneBook

작업 유형

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

주 담당 모듈

afternote — 애프터노트

개요

내 담당 모듈(core · afternote · receiver · onboarding)에서 화면에 노출되는 문자열이 리소스를 거치지 않고 코드에 박혀 있다. TalkBack 이 낭독하는 contentDescription 과 화면에 그려지는 Text 는 성격이 같으므로 함께 다룬다.

실측 기준 리비전: 2429e0823 (origin/develop)

규모 — 33건

갈래 건수
contentDescription 6
화면 노출 텍스트(Text · title · label · prefix/suffix · Toast) 27
합계 33

모듈별로는 core:ui 2 · afternote 11 · receiver 14 · onboarding 6 이다.

절반 가까이가 신설이 아니라 「이미 있는 리소스의 미사용」이다

이 이슈의 핵심 발견이다. 리소스가 멀쩡히 있는데 같은 문구를 코드에 다시 적어 둔 곳이 계속 나온다.

문구 이미 있던 키 하드코딩돼 있던 곳
영상 재생 content_description_video_play 추억 노트 상세 · 수신 추억 노트 상세
장례식에 남길 영상 afternote_editor_funeral_video_label 추억 노트 상세 · 수신 상세(LABEL_VIDEO_SECTION 상수)
추억 플레이리스트 afternote_editor_playlist_screen_title 추억 노트 상세 · MemorialPlaylist 기본값 · 수신 상세
영상을 재생할 수 있는 앱이 없습니다. receiver_memorial_video_no_app 수신 상세 Toast

약관 상세는 더 노골적이다 — 본문 6개는 onboarding_terms_detail_section_N 리소스인데 제목 6개만 코드에 남아 있었다.

값 자체를 다시 본 건 3개

기계적으로 옮기면 잘못된 값이 고착되므로 성격부터 판정했다.

  • "Play" → null. 수신 상세에서 영상이 없을 때만 그리는 else 분기 플레이스홀더다. clickable 이 없어 재생 액션이 실제로 없는데 "Play" 로 읽히면 없는 어포던스를 알린다. 맥락은 바로 위 섹션 헤더가 이미 읽어 준다.
  • nav_afternote 는 참조 0건인 죽은 키였다. 값이 같은 키를 새로 만드는 대신 afternote_home_title 로 리네임해 실제 쓰이게 했다 — 키 수는 늘지 않는다.
  • MemorialPlaylist(label = "추억 플레이리스트") 는 인자를 지웠다. 기본값이 이미 그 리소스라 같은 값을 다시 넘기고 있었다.

제외한 것 — 노출 문자열이 아니다

대상 제외 근거
SaveAfternotePayloadBuilder.MEMORIAL_DEFAULT_TITLE 서버로 보내는 serviceName 값. 리소스로 옮기면 로케일에 따라 전송값이 바뀐다
AfternoteService.displayKey 21건 enum 이 stringResId 를 따로 갖고 있다. 표시는 그쪽이 하고 이건 카탈로그 매칭용 식별자 — Text 로 그려지는 곳 0건
BaseResponse.fallbackMessage 등 KDoc 이 «클라이언트 진단 문구» 로 규정. 사용자 노출은 serverMessage 가 맡는다
TextFieldShort.kt:403 · MemorialDetailScreen 의 "서영" @Preview 인자·프리뷰 데이터
label = "IndicatorOffset" 류 animateFloatAsState 의 디버그 라벨. UI 노출 아님
core/ui/PlusBadgeButton.kt 의 "Plus Button" @Preview 인자. develop 에선 #1434 로 이미 삭제됨

신규 키는 afternote_ 프리픽스로 만든다

#1079 가 이 모듈 리소스를 afternote_ 로 통일하고 resourcePrefix 를 걸기로 정해 놓았다. 신규 키를 무접두로 만들면 그 이슈 대상만 늘어나므로 처음부터 규약을 따른다. 기존 무접두 키의 리네임은 하지 않는다 — #1079 의 일괄 처리 몫이고 지금 손대면 충돌한다.

참고

완료 조건

  • 33건 전부 리소스 참조 또는 (장식이면) null 로 전환
  • 이미 있는 리소스는 신설하지 말고 연결
  • 신규 키는 afternote_ 프리픽스 준수
  • ktlintCheck · :app:compileDebugUnitTestKotlin · :app:compileDebugAndroidTestKotlin 통과
  • 결합 문구(건수 문장)의 공백 보존을 기존 테스트로 확인

Activity

  1. added
    refactor동작 변경 없이 코드 구조·책임·경계를 개선하는 작업
    area:afternote애프터노트 기능 영역
    on Aug 29, 2026
  2. changed the title [-]refactor(afternote): 담당 모듈 contentDescription 하드코딩 6건 리소스화 — 「영상 재생」은 리소스가 있는데 미사용[/-] [+]refactor(afternote): 담당 모듈 화면 노출 문자열 33건 리소스화 — 절반이 「이미 있는 리소스의 미사용」[/+] on Aug 29, 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