# PRD: 팬Talk 팬레터 Resource 문구 변경 ## 문서 정보 | 항목 | 내용 | |---|---| | 문서 상태 | 구현 완료 | | 작성일 | `2026-08-14` | | 최종 수정일 | `2026-08-14` | | 대상 제품 | 크리에이터 채널 FanTalk 표시 문구 | | 작성자·결정권자 | 사용자 요청 기준 | | 관련 API Contract | 없음 | | 관련 구현 계획 | `docs/20260814_팬Talk_팬레터_resource_문구_변경/plan-task.md` | | 관련 review | `docs/20260814_팬Talk_팬레터_resource_문구_변경/reviews/phase1-fan-letter-resource-review.md` | ## 1. Overview 크리에이터 채널의 FanTalk 기능명 중 사용자에게 노출되는 Android string resource 값을 `팬레터` 계열 표현으로 변경한다. 기능 구조, resource key, Kotlin class/package, layout id는 유지하고 표시 문구만 교체한다. ## 2. Problem Statement 현재 크리에이터 채널 일부 resource가 `팬Talk`, `팬톡`, `FanTalk`, `ファントーク` 표현을 사용한다. 서비스 명칭을 `팬레터`로 바꾸려면 한국어, 영어, 일본어 사용자에게 보이는 같은 기능명이 일관되게 표시되어야 한다. ## 3. Goals - 한국어 기본 resource에서 FanTalk 기능명 표현을 `팬레터`로 통일한다. - 영어 resource에서 FanTalk 기능명 표현을 `Fan Letter`로 통일한다. - 일본어 resource에서 FanTalk 기능명 표현을 `ファンレター`로 통일한다. - resource merge로 XML 문법과 placeholder 보존 여부를 확인한다. ## 4. Non-Goals - `creator_channel_*_fantalk` resource key를 rename하지 않는다. - `CreatorChannelFanTalk*` Kotlin class, package, method, layout id, drawable name을 rename하지 않는다. - 기존 PRD/plan-task의 과거 이력 문구를 일괄 치환하지 않는다. - API, DTO, repository, ViewModel 동작을 변경하지 않는다. - UI/계측 테스트, 기기·에뮬레이터 조작, 스크린샷 검증은 수행하지 않는다. ## 5. Target Users and Permissions | 사용자 | 목표 | 주요 작업 | 사용 환경 | |---|---|---|---| | 크리에이터 채널 방문자 | FanTalk 영역을 새 명칭으로 인지 | 탭/홈 섹션/오류 문구 확인 | Android 앱 | 권한 정책은 변경하지 않는다. 기존 FanTalk 조회 권한과 오류 처리는 그대로 따른다. ## 6. 기능 요구사항 | ID | 상태 | 요구사항 | 수용 기준 | 계약/Goal 연결 | |---|---|---|---|---| | `I18N-FANLETTER-001` | 확정 | 기본 한국어 resource의 FanTalk 기능명 노출 문구를 `팬레터`로 변경한다. | `app/src/main/res/values/strings.xml`에서 관련 값에 `팬Talk` 또는 `팬톡`이 남지 않는다. | `P1-T1` | | `I18N-FANLETTER-002` | 확정 | 영어 resource의 FanTalk 기능명 노출 문구를 `Fan Letter`로 변경한다. | `app/src/main/res/values-en/strings.xml`에서 관련 값에 `FanTalk`가 남지 않는다. | `P1-T1` | | `I18N-FANLETTER-003` | 확정 | 일본어 resource의 FanTalk 기능명 노출 문구를 `ファンレター`로 변경한다. | `app/src/main/res/values-ja/strings.xml`에서 관련 값에 `ファントーク`가 남지 않는다. | `P1-T1` | | `I18N-FANLETTER-004` | 확정 | resource 값 변경 외 식별자와 동작을 보존한다. | Kotlin, layout id, drawable, API 관련 파일은 수정하지 않는다. | `P1-GATE` | ## 7. 변경 대상 Resource 현재 확인된 변경 대상은 다음 string name으로 한정한다. | string name | 한국어 값 | 영어 값 | 일본어 값 | |---|---|---|---| | `creator_channel_tab_fantalk` | `팬레터` | `Fan Letter` | `ファンレター` | | `creator_channel_section_fantalk` | `팬레터` | `Fan Letter` | `ファンレター` | | `creator_channel_fantalk_error_message` | `팬레터를 불러오지 못했습니다.` | `Could not load Fan Letter.` | `ファンレターを読み込めませんでした。` | ## 8. 성공 기준 - [x] 기본/영어/일본어 resource의 변경 대상 값이 위 표와 일치한다. - [x] `app/src/main/res/values*`의 변경 대상 범위에 이전 기능명 표현이 남지 않는다. - [x] `./gradlew :app:mergeDebugResources`가 `BUILD SUCCESSFUL`로 통과한다. - [x] `git diff --check`가 공백 오류 없이 통과한다. ## 9. Open Questions | ID | 상태 | 결정 필요 사항 | 현재 권고 | 결정 주체 | 결정 기한/시점 | 영향 Goal | |---|---|---|---|---|---|---| | 없음 | 확정 | 추가 질문 없음 | 확정 범위대로 진행 | 사용자 | 2026-08-14 | `P1-T1` | ## 10. Decision Log | 날짜 | ID | 상태 | 결정 | 근거 | 영향 요구사항·계약·Goal | |---|---|---|---|---|---| | 2026-08-14 | `DEC-001` | 확정 | `팬Talk`, `팬톡`, `FanTalk`, `ファントーク`를 같은 기능명 표현으로 보고 각 언어의 팬레터 표현으로 통일한다. | 사용자 A안 선택 | `I18N-FANLETTER-001~003`, `P1-T1` | | 2026-08-14 | `DEC-002` | 확정 | 변경 범위는 string resource 값으로 한정하고 코드 식별자와 과거 문서 이력은 변경하지 않는다. | 사용자 요청이 `string resource` 변경이며 최소 변경 원칙을 적용 | `I18N-FANLETTER-004`, `P1-GATE` |