feat(creator): 일본어 보기 방식 label을 숨긴다

This commit is contained in:
2026-08-14 19:20:42 +09:00
parent 60df86f899
commit 80a8cd1d2b
5 changed files with 127 additions and 0 deletions
@@ -572,7 +572,35 @@
- 검증 기록:
- 2026-07-12: RED로 `CreatorChannelCommunityMapperTest.유료 미구매 타인 게시글은 reaction 현황과 댓글을 숨긴다`를 추가했고, production 변경 전 `showReaction` 미구현 컴파일 실패를 확인했다. 이후 UI 모델/mapper/list adapter에 `showReaction`과 잠금 조건을 반영했다.
---
### Phase 8: 일본어 보기 방식 label 숨김 후속
- [x] **Task 8.1: 일본어 커뮤니티 보기 방식 label 숨김**
- 대상 파일:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityFragment.kt`
- `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityFragmentLayoutTest.kt`
- 작업:
- `LanguageManager.getEffectiveLanguage(requireContext()) == LanguageManager.LANG_JA`이면 `tvCreatorChannelCommunityViewModeLabel`을 숨긴다.
- 일본어가 아니면 기존처럼 보기 방식 label을 표시한다.
- 전체 count, 보기 방식 icon, 토글 버튼 동작은 유지한다.
- 검증 계획:
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityFragmentLayoutTest"`
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"`
- `./gradlew :app:mergeDebugResources :app:compileDebugKotlin`
- `git diff --check`
- 수동 확인:
- 일본어 설정에서 커뮤니티 탭 전체 개수 우측 끝의 `リスト`/`グリッド` label이 보이지 않는지 사용자가 직접 확인한다.
- 한국어/영어 설정에서는 기존 label 표시가 유지되는지 사용자가 직접 확인한다.
- 검증 기록:
- 2026-08-14: RED로 `CreatorChannelCommunityFragmentLayoutTest``LanguageManager.getEffectiveLanguage(requireContext())`, `LanguageManager.LANG_JA`, `tvCreatorChannelCommunityViewModeLabel.isVisible =` source 계약을 추가했고, production 변경 전 `커뮤니티 fragment source는 pagination view mode owner padding과 상세 이동 계약을 사용한다``CreatorChannelCommunityFragmentLayoutTest.kt:159` assertion으로 실패함을 확인했다.
- 2026-08-14: `CreatorChannelCommunityFragment.bindContent()`에서 `LanguageManager.getEffectiveLanguage(requireContext()) != LanguageManager.LANG_JA`일 때만 보기 방식 label을 표시하도록 변경했다. 전체 count, 보기 방식 icon, 토글 버튼 동작은 변경하지 않았다.
- 2026-08-14: GREEN으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityFragmentLayoutTest"` PASS, 회귀로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"` PASS를 확인했다. 최초 GREEN 실행 1회는 테스트 결과 출력 전 120초 timeout으로 중단되어 300초 제한으로 동일 명령을 재실행했다.
- 2026-08-14: `./gradlew :app:mergeDebugResources :app:compileDebugKotlin` PASS, `git diff --check` PASS를 확인했다. `./gradlew :app:mergeDebugResources :app:compileDebugKotlin :app:ktlintCheck`는 기존 변경 범위 밖의 `CreatorChannelActivitySourceTest.kt:1320`, `CreatorChannelFanTalkFragmentLayoutTest.kt:85/88/89/223` line length/argument formatting 위반으로 FAIL했고, 이번 변경 파일의 ktlint 위반은 보고되지 않았다. `.editorconfig disabled_rules` deprecation 경고는 기존 설정 경고다.
- 2026-08-14: 리뷰 보고서 `docs/20260621_크리에이터_채널_커뮤니티_탭/reviews/phase8-japanese-view-mode-label-review.md`를 작성했고, 차단 이슈와 확정 발견 사항 없음으로 판정했다.
## Verification Log
- 2026-08-14: Phase 8 일본어 커뮤니티 보기 방식 label 숨김을 완료했다. RED는 `CreatorChannelCommunityFragmentLayoutTest` source 계약 실패로 확인했고, 구현 후 focused layout test와 community 패키지 회귀 테스트가 `BUILD SUCCESSFUL`로 PASS했다. `mergeDebugResources``compileDebugKotlin`, `git diff --check`도 PASS했다. visual-qa와 실제 화면 조작은 사용자 요청에 따라 실행하지 않았으며, 일본어/한국어/영어 설정의 실제 화면 표시는 사용자 수동 확인 항목으로 남겼다. `ktlintCheck`는 기존 변경 범위 밖 테스트 파일의 line length/argument formatting 위반으로 FAIL했다. 리뷰 보고서 `reviews/phase8-japanese-view-mode-label-review.md`는 차단 이슈 없음으로 종료했다.
- 2026-07-12: Phase 7 유료 미구매 리스트형 게시글 reaction/comment 숨김 변경을 완료했다. RED는 `CreatorChannelCommunityMapperTest.유료 미구매 타인 게시글은 reaction 현황과 댓글을 숨긴다``showReaction` 미구현 컴파일 실패로 확인했고, 구현 후 focused 테스트, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"`, `./gradlew :app:mergeDebugResources :app:compileDebugKotlin :app:ktlintCheck`가 모두 `BUILD SUCCESSFUL`로 PASS했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고는 기존 설정 경고다.
- 계획 문서 생성 단계에서는 코드 변경을 수행하지 않았다. 구현 후 통합 검증, 회귀 검증, 최종 수동 확인 기록을 이 섹션에 누적한다.
@@ -139,6 +139,7 @@ Sort-bar는 전체 커뮤니티 게시글 수와 현재 보기 방식을 표시
- 썸네일형 label은 `썸네일형`이며 icon은 `ic_new_grid`를 사용한다.
- 우측 보기 방식 영역을 터치하면 `리스트형 -> 썸네일형 -> 리스트형` 순서로 토글한다.
- 보기 방식 label은 한국어/영어/일본어 다국어 문자열 리소스로 관리한다.
- 일본어로 설정된 경우에는 우측 보기 방식 label(`リスト`/`グリッド`)을 표시하지 않고 icon과 토글 동작은 유지한다.
- 보기 방식 변경 시 스크롤 위치 유지 여부는 구현 계획 단계에서 기존 탭 목록 상태 정책을 확인해 결정한다.
#### Edge Cases
@@ -0,0 +1,92 @@
# Phase 8 일본어 보기 방식 Label 숨김 리뷰
## 1. 리뷰 정보
| 항목 | 내용 |
|---|---|
| 리뷰 대상 | Phase 8 / Task 8.1 |
| 기준 commit 또는 working tree | working tree 변경분 |
| 리뷰 일자 | 2026-08-14 |
| 리뷰어 | Sisyphus-Junior |
| 기준 문서 | `docs/20260621_크리에이터_채널_커뮤니티_탭/prd.md`, `docs/20260621_크리에이터_채널_커뮤니티_탭/plan-task.md` |
| 리뷰 상태 | 판정 완료 |
## 2. 리뷰 목적과 범위
### 목적
- 일본어 설정에서 커뮤니티 탭 Sort-bar 우측 보기 방식 label만 숨기는지 확인한다.
- 전체 count, 보기 방식 icon, 토글 동작이 유지되는지 확인한다.
- 기존 문서와 검증 기록이 변경 범위를 정확히 반영하는지 확인한다.
### 포함 범위
- 코드: `CreatorChannelCommunityFragment.kt`
- 테스트: `CreatorChannelCommunityFragmentLayoutTest.kt`
- 문서: Phase 8 요구사항, Task, Verification Log
### 제외 범위
- visual-qa와 실제 기기 화면 조작. 사용자가 수동으로 진행한다.
- 커뮤니티 탭 레이아웃, icon, 토글 로직의 시각적 재설계.
## 3. 판정 기준
| 심각도 | 기준 |
|---|---|
| Blocker | 일본어 label이 계속 표시되거나 비일본어 label이 숨겨지는 문제 |
| High | count, icon, toggle 동작 회귀 |
| Medium | 문서·검증 기록 누락으로 완료 판단이 어려운 문제 |
| Low | 비차단 유지보수성 또는 테스트 강도 개선 의견 |
## 4. 검토한 근거
### 문서와 코드
- 요구사항: `prd.md`의 일본어 `リスト`/`グリッド` label 숨김 요구.
- 계획: `plan-task.md` Phase 8 / Task 8.1.
- 코드: `CreatorChannelCommunityFragment.bindContent()``LanguageManager.getEffectiveLanguage(requireContext()) != LanguageManager.LANG_JA` visibility 조건.
- 테스트: `CreatorChannelCommunityFragmentLayoutTest`의 source 계약.
### 실행한 검증
| 명령 또는 수동 검증 | 결과 | 핵심 증거 |
|---|---|---|
| `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityFragmentLayoutTest"` | 성공 | GREEN 재실행 `BUILD SUCCESSFUL` |
| `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"` | 성공 | community 패키지 회귀 `BUILD SUCCESSFUL` |
| `./gradlew :app:mergeDebugResources :app:compileDebugKotlin` | 성공 | resource merge, Kotlin compile `BUILD SUCCESSFUL` |
| `git diff --check` | 성공 | 출력 없음 |
| `./gradlew :app:mergeDebugResources :app:compileDebugKotlin :app:ktlintCheck` | 실패 | 변경 범위 밖 기존 테스트 파일 line length/argument formatting 위반 |
| visual-qa / 실제 화면 조작 | 제외 | 사용자 수동 진행 요청 |
## 5. 발견 사항 요약
확정 발견 사항 없음.
| ID | 심각도 | 상태 | 제목 | 소유 Task | 후속 goal |
|---|---|---|---|---|---|
| - | - | - | 확정 발견 사항 없음 | - | 전환 항목 없음 |
## 6. 발견 사항 상세
확정 발견 사항 없음.
비차단 관찰: 테스트는 source 문자열 계약이므로 조건 연산자 자체를 깊게 실행 검증하지는 않는다. 다만 실제 diff의 `!= LanguageManager.LANG_JA` 조건이 요구사항을 충족하고, 기존 테스트 파일이 같은 source-contract 방식을 사용하므로 이번 변경의 차단 이슈는 아니다.
## 7. 확정 항목의 plan·goal 전환
전환 항목 없음.
## 8. 리뷰 종료 판정
| 판정 항목 | 결과 | 근거 |
|---|---|---|
| 리뷰 범위 전체 확인 | 충족 | 코드, 테스트, 문서 변경분 확인 |
| 후보 항목 판정 완료 | 충족 | 확정 발견 사항 없음 |
| 확정 항목 plan 반영 | 해당 없음 | 전환 항목 없음 |
| 보류 항목의 담당·재개 조건 기록 | 해당 없음 | 보류 항목 없음 |
| 검증 명령과 결과 기록 | 충족 | Phase 8 검증 기록에 RED/GREEN/회귀/빌드/공백/ktlint 결과 기록 |
**최종 결론:** 확정 발견 사항 없음.
**남은 항목:** visual-qa와 실제 일본어/한국어/영어 화면 확인은 사용자 수동 QA로 진행한다.