5.3 KiB
5.3 KiB
Phase 12 전체 empty 상태 리뷰
1. 리뷰 정보
| 항목 | 내용 |
|---|---|
| 리뷰 대상 | Phase 12 / Task 12.1~12.4 |
| 기준 commit 또는 working tree | f600d10e8b63b6fdc812b18a874b077dfe072ca8 + 2026-07-31 working tree |
| 리뷰 일자 | 2026-07-31 |
| 리뷰어 | Codex |
| 기준 문서 | 대상 prd.md, plan-task.md |
| 리뷰 상태 | 수정 검증 완료 |
2. 리뷰 목적과 범위
목적
- Empty에서만 중앙 문구를 표시하고 Content/LoginRequired/Error에서는 숨기는지 확인한다.
- 한국어·영어·일본어 문구와 resource merge를 확인한다.
포함 범위
fragment_v2_main_home.xml,HomeMainFragmentempty/content binding, 3개 locale string, mapper Empty 조건과 source test.
제외 범위
- 로그인 유도 문구·CTA와 실기기 typography 시각 대조.
3. 판정 기준
- PRD의 전체 section empty 조건, fillViewport surface, locale별 문구와 visibility 분기를 기준으로 판정했다.
4. 검토한 근거
HomeFollowingUiState.kt:8-23HomeFollowingMappers.kt:18-35fragment_v2_main_home.xml:237-277HomeMainFragment.kt:397-419,503-524HomeFollowingFragmentSourceTest.kt:104-147
실행한 검증
| 명령 | 결과 | 핵심 증거 |
|---|---|---|
| mapper/source/팔로잉 전체 회귀 | 성공 | 관련 테스트 실패 0 |
| resource merge/compile/ktlint/diff | 성공 | 모두 PASS |
5. 발견 사항 요약
| ID | 심각도 | 상태 | 제목 | 소유 Task | 후속 goal |
|---|---|---|---|---|---|
REV-P12-001 |
Low | 수정 완료 | empty source test가 금지된 크기·정렬·visibility 표현을 고정함 | Task 12.4 | P12-R1 완료 |
6. 발견 사항 상세
모든 표시 section이 비었을 때만 mapper가 Empty를 만들고, Fragment는 empty 문구를 표시하면서 adapter와 section을 비운다. Content/LoginRequired/Error의 숨김 경로와 세 locale 문구도 요구사항과 일치한다.
REV-P12-001 — empty source test가 UI 표현 속성 정책을 위반함
- 심각도: Low
- 상태: 수정 완료
- 관련 요구사항:
docs/agent-guides/code-style.md테스트 관례 - 소유 Task: Task 12.4
관찰 내용
following empty state shows centered reusable empty string only for all empty content 테스트는 XML width/height/gravity/textAlignment/visibility와 Fragment의 직접 View.VISIBLE/GONE 문자열을 assertion한다. 이 테스트는 UI 크기·constraint·visibility 테스트 금지 규칙이 추가된 뒤 생성되었다.
근거
- 테스트:
HomeFollowingFragmentSourceTest.kt:107-150 - 가이드:
docs/agent-guides/code-style.md:42-43 - 이력: 가이드 규칙
566f76df이후 테스트2c609836, locale 문자열 assertiondadf3a51추가
영향
mapper의 Empty 판정과 locale 문구라는 유효한 계약에 UI 배치 구현 문자열이 섞여 있어, 디자인 조정이 기능 회귀처럼 실패하고 현재 테스트 정책과 불일치한다.
권장 조치
mapper Empty 조건·locale 문구·상태 분기 검증은 유지하고 width/height/정렬/직접 visibility assertion만 제거한다. 중앙 배치는 정적 대조와 Task 5.3 실기기 확인으로 검증한다.
판정 기록
- 2026-07-30 — 테스트 추가 시점과 assertion 범위를 현행 가이드와 대조해 확정.
- 2026-07-30 — 구현 전 Phase 12 Task 12.4 /
P12-R1로 전환. - 2026-07-30 — Task 12.4에서 UI 표현 source assertion만 제거하고 locale 문구와 상태 분기 검증을 유지했다.
7. 확정 항목의 plan·goal 전환
- Phase 12에 Task 12.4 /
P12-R1을 추가해 완료했다.
8. 리뷰 종료 판정
| 판정 항목 | 결과 | 근거 |
|---|---|---|
| 리뷰 범위 전체 확인 | 충족 | mapper→layout→binding→resource 추적 |
| 후보 항목 판정 완료 | 충족 | REV-P12-001 확정 |
| 확정 항목 plan 반영 | 충족 | Task 12.4 |
| 검증 명령과 결과 기록 | 충족 | focused/통합 PASS |
최종 결론: 확정 발견 사항 모두 수정 완료
남은 항목: 실기기 중앙 정렬 대조는 Phase 5 Task 5.3에 포함
9. 수정 후 검증 기록
- 2026-07-30: Task 12.4로 empty source test명을 한글화하고 width/height/gravity/textAlignment/visibility 및 직접
View.VISIBLE/GONE문자열 assertion을 제거했다. 3개 locale 문구와HomeFollowingUiState.Empty상태 분기 검증은 유지했다. focused test, 팔로잉 전체 회귀, resource merge, Kotlin compile, ktlint PASS. - 2026-07-31 재점검: Empty mapper/state/locale 회귀를 포함한 Phase 1~13 focused 113개 test, resource merge, Kotlin compile, ktlint PASS. 연결 기기가 없어 중앙 정렬 실기기 확인은 Task 5.3에 유지했다.
- 2026-07-31 최종 검증: empty state·locale 회귀를 포함한 통합 20개 suite·306개 test와 resource merge, Kotlin compile, ktlint가 PASS했다. 추가 확정 수정 사항은 없고 실기기 중앙 정렬 확인은 Phase 5 Task 5.3에 유지한다.
- 2026-07-31 이번 리뷰 재검증: 전체 section empty mapper 조건, 세 locale 문구와 상태별 표시 분기를 다시 대조했다. 통합 16개 suite·120개 test, resource merge, Kotlin compile, ktlint가 PASS해
REV-P12-001수정 완료 판정을 유지하고 중앙 정렬 시각 대조는 Phase 5 Task 5.3에 유지한다.