docs(chat): 수신자 선택 리뷰를 기록한다

This commit is contained in:
2026-09-14 22:05:20 +09:00
parent 4f6b235d60
commit a6c63b71b9
@@ -0,0 +1,55 @@
# Phase 4 수신자 선택 UI 리뷰
## 1. 리뷰 정보
| 항목 | 내용 |
|---|---|
| 리뷰 대상 | Phase 4 / `P4-T1` |
| 기준 commit 또는 working tree | uncommitted working tree |
| 리뷰 일자 | `2026-09-14` |
| 리뷰어 | Oracle read-only review |
| 기준 문서 | `prd.md`, `plan-task.md` |
| 리뷰 상태 | 수정 검증 완료 |
## 2. 리뷰 목적과 범위
- Figma 수신자 선택/검색 결과 UI 정합성과 기존 DM 흐름 회귀를 확인한다.
- 완료 체크박스, 실제 코드, test, 검증 기록이 일치하는지 확인한다.
포함 범위는 `DmRecipientPickerActivity`, `DmRecipientPickerViewModel`, 수신자 XML layout, recipient/chat source tests, PRD와 plan 문서다. 기기·에뮬레이터 UI 조작, screenshot, visual QA, `androidTest`는 저장소 지침에 따라 제외했다.
## 3. 발견 사항 요약
| ID | 심각도 | 상태 | 제목 | 소유 Task | 후속 goal |
|---|---|---|---|---|---|
| `REV-P4-001` | Medium | 수정 완료 | 검색 empty 문구가 남은 콘텐츠 영역 중앙이 아니라 섹션 아래에 배치됨 | `P4-T1` | `P4-R1` |
| `REV-P4-002` | Medium | 수정 완료 | 레이아웃 치수 assertion이 저장소 테스트 정책과 충돌 | `P4-T1` | `P4-R1` |
| `REV-P4-003` | Medium | 수정 완료 | `ChatMainFragment` view 재생성 시 resume guard가 초기화되지 않음 | `P3-T1` | `P4-R1` |
| `REV-P4-004` | Low | 수정 완료 | PRD/계획 문서 상태가 구현 완료 상태와 불일치 | 문서 | `P4-R1` |
## 4. 수정 후 검증 기록
### 1차 수정 검증 — 2026-09-14
- 무엇을: `REV-P4-001`~`REV-P4-004`를 `P4-R1`로 전환해 수정했다.
- 왜: `DM-010`, `DM-020`, `DM-021`과 저장소 테스트 정책을 동시에 만족하기 위해서다.
- 어떻게:
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.chat.recipient.DmRecipientPickerSourceTest" --tests "kr.co.vividnext.sodalive.v2.main.chat.ChatMainFragmentLayoutTest"` — RED 실패 확인 후 GREEN 성공.
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.chat.recipient.DmRecipientPickerSourceTest" --tests "kr.co.vividnext.sodalive.v2.main.chat.recipient.DmRecipientPickerViewModelTest" --tests "kr.co.vividnext.sodalive.v2.main.chat.ChatMainFragmentLayoutTest" --tests "kr.co.vividnext.sodalive.v2.main.chat.recipient.*" --tests "kr.co.vividnext.sodalive.v2.main.chat.dm.DmChatRepositoryTest" :app:assembleDebug :app:ktlintCheck` — `BUILD SUCCESSFUL`.
- `git diff --check` — 출력 없음.
- 검색 empty/list를 `recipient_content_container` 안에서 전환하도록 수정했다.
- `ChatMainFragment.onViewCreated()`에서 resume guard를 초기화했다.
- 레이아웃 치수 직접 assertion을 제거하고 구조·상태 contract 검증만 유지했다.
- 남은 항목: 없음.
## 5. 리뷰 종료 판정
| 판정 항목 | 결과 | 근거 |
|---|---|---|
| 리뷰 범위 전체 확인 | 충족 | Oracle read-only review 결과 반영 |
| 후보 항목 판정 완료 | 충족 | 4건 모두 `P4-R1`로 전환 |
| 확정 항목 plan 반영 | 충족 | `plan-task.md` Task 4.2 추가 |
| 보류 항목의 담당·재개 조건 기록 | 해당 없음 | 보류 항목 없음 |
| 검증 명령과 결과 기록 | 충족 | focused RED/GREEN, Phase 4 Gate 재실행, `git diff --check` 기록 |
**최종 결론:** 수정 검증 완료. 남은 항목 없음.