docs(home): 랭킹 순위 정렬 검증을 기록한다

This commit is contained in:
2026-06-09 14:56:04 +09:00
parent 6b0232b7e4
commit ea076a5ac7
2 changed files with 40 additions and 0 deletions

View File

@@ -277,6 +277,37 @@
- 기존 Verification Log는 삭제하거나 덮어쓰지 않는다. - 기존 Verification Log는 삭제하거나 덮어쓰지 않는다.
- 검증: PRD와 plan-task의 완료 상태와 실제 구현 상태가 일치한다. - 검증: PRD와 plan-task의 완료 상태와 실제 구현 상태가 일치한다.
---
### Phase 7: 순위 텍스트 고정 박스 정렬 보정
- [x] **Task 7.1: 순위 텍스트 박스 정렬 RED 테스트 추가**
- 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingAdapterLayoutTest.kt`
- 구현 내용:
- Large, Compact medium, Compact small, Horizontal variant의 순위 영역 박스 크기/위치와 내부 중앙 정렬을 검증한다.
- Figma margin 값을 임의로 추가하지 않고 기존 박스 크기 안의 정렬만 검증한다.
- 검증 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`
- 기대 결과: production 수정 전 중앙 정렬 assertion이 실패한다.
- [x] **Task 7.2: 순위 텍스트 박스 내부 정렬 보정**
- 수정: `app/src/main/res/layout/view_creator_ranking_large_card.xml`
- 수정: `app/src/main/res/layout/view_creator_ranking_compact_card.xml`
- 수정: `app/src/main/res/layout/view_creator_ranking_horizontal_card.xml`
- 구현 내용:
- 기존 Kotlin 코드의 고정 박스 크기/left/top 계산은 유지한다.
- 순위 TextView가 박스 내부에서 중앙 정렬되도록 최소 속성만 추가한다.
- 검증 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`
- 기대 결과: RED 테스트가 `BUILD SUCCESSFUL`로 전환된다.
- [x] **Task 7.3: 후속 검증과 문서 기록 누적**
- 실행:
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`
- `./gradlew :app:mergeDebugResources`
- 수정: `docs/20260608_크리에이터_랭킹_페이지/prd.md`
- 수정: `docs/20260608_크리에이터_랭킹_페이지/plan-task.md`
- 기대 결과: 모두 `BUILD SUCCESSFUL`, Verification Log 누적.
--- ---
## Verification Log ## Verification Log
@@ -293,3 +324,7 @@
- 2026-06-08: Phase 6.1 targeted test로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingMapperTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. - 2026-06-08: Phase 6.1 targeted test로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingMapperTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다.
- 2026-06-08: Phase 6.2 통합 검증으로 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다. - 2026-06-08: Phase 6.2 통합 검증으로 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다.
- 2026-06-08: Phase 6.3으로 PRD와 plan-task 문서의 Verification Log를 누적하고 Phase 6 체크박스를 완료 처리했다. 이번 Phase 6에서는 신규 production code 변경이 없어 별도 RED 테스트 추가 없이 기존 targeted test와 build/lint 검증으로 완료했다. - 2026-06-08: Phase 6.3으로 PRD와 plan-task 문서의 Verification Log를 누적하고 Phase 6 체크박스를 완료 처리했다. 이번 Phase 6에서는 신규 production code 변경이 없어 별도 RED 테스트 추가 없이 기존 targeted test와 build/lint 검증으로 완료했다.
- 2026-06-09: 사용자 확인에 따라 순위 숫자에 별도 left margin을 추가하지 않고, Figma의 고정 텍스트 박스 내부 중앙 정렬을 맞추는 Phase 7 후속 작업을 추가했다.
- 2026-06-09: Phase 7.1 RED로 `CreatorRankingAdapterLayoutTest`에 Large/Compact medium/Compact small/Horizontal 순위 박스 검증을 추가하고 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`를 실행했다. Large/Compact medium/Compact small 3건이 `Gravity.CENTER` assertion에서 실패해 순위 TextView 내부 정렬 미반영을 확인했다.
- 2026-06-09: Phase 7.2로 `view_creator_ranking_large_card.xml`, `view_creator_ranking_compact_card.xml`, `view_creator_ranking_horizontal_card.xml`의 순위 TextView에 `android:gravity="center"`를 추가했다. 동일 `CreatorRankingAdapterLayoutTest``BUILD SUCCESSFUL`로 전환됐다.
- 2026-06-09: Phase 7.3 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"``./gradlew :app:mergeDebugResources`를 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다.

View File

@@ -149,6 +149,8 @@
- TitleBar와 Text Tab bar는 Figma `24:5654` 및 기존 홈 추천 구현과 동일한 위치/스타일을 유지한다. - TitleBar와 Text Tab bar는 Figma `24:5654` 및 기존 홈 추천 구현과 동일한 위치/스타일을 유지한다.
- Capsule Tab bar를 제거한 상태에서도 Text Tab bar 아래 여백이 과도하게 남지 않아야 한다. - Capsule Tab bar를 제거한 상태에서도 Text Tab bar 아래 여백이 과도하게 남지 않아야 한다.
- 랭킹 목록 좌우 margin과 item gap은 기존 `CreatorRankingAdapter`와 Figma 목록 폭을 기준으로 맞춘다. - 랭킹 목록 좌우 margin과 item gap은 기존 `CreatorRankingAdapter`와 Figma 목록 폭을 기준으로 맞춘다.
- 순위 숫자는 Figma의 시각적 margin을 임의로 추가하지 않고, variant별 고정 텍스트 박스 크기 안에서 중앙 정렬해 표시한다.
- 1위, 2~7위, 8~10위, 11위 이후 순위 영역의 고정 박스 크기와 위치는 기존 Figma 기준 계산값을 유지한다.
- `랭킹` 탭 선택 상태가 흰색 텍스트로 명확히 드러나야 한다. - `랭킹` 탭 선택 상태가 흰색 텍스트로 명확히 드러나야 한다.
- 1위~20위까지 응답이 내려오면 Figma 예시처럼 20위까지 자연스럽게 스크롤로 확인할 수 있어야 한다. - 1위~20위까지 응답이 내려오면 Figma 예시처럼 20위까지 자연스럽게 스크롤로 확인할 수 있어야 한다.
- 긴 닉네임은 기존 위젯의 ellipsize/line 제한 정책을 따른다. - 긴 닉네임은 기존 위젯의 ellipsize/line 제한 정책을 따른다.
@@ -171,6 +173,7 @@
- `랭킹` 탭 선택 시 `GET /api/v2/home/rankings/creators` 응답 item이 `CreatorRankingAdapter`에 전달된다. - `랭킹` 탭 선택 시 `GET /api/v2/home/rankings/creators` 응답 item이 `CreatorRankingAdapter`에 전달된다.
- Figma `24:5654`의 Capsule Tab bar는 화면에 존재하지 않는다. - Figma `24:5654`의 Capsule Tab bar는 화면에 존재하지 않는다.
- 1위, 2~7위, 8~10위, 11위 이후 variant가 기존 위젯 정책과 일치한다. - 1위, 2~7위, 8~10위, 11위 이후 variant가 기존 위젯 정책과 일치한다.
- 순위 숫자는 고정 텍스트 박스 내부에서 중앙 정렬되어 Figma와 동일한 시각적 좌측 여백으로 보인다.
- `isNew=true` item은 New badge로 표시된다. - `isNew=true` item은 New badge로 표시된다.
- `isNew=false && (rankChange=null || rankChange=0)` item은 유지 상태로 표시된다. - `isNew=false && (rankChange=null || rankChange=0)` item은 유지 상태로 표시된다.
- `rankChange > 0` item은 상승, `rankChange < 0` item은 하락으로 표시된다. - `rankChange > 0` item은 상승, `rankChange < 0` item은 하락으로 표시된다.
@@ -203,3 +206,5 @@
- 2026-06-08: 사용자 추가 제공 정보에 따라 `rankChange`의 양수/음수/0 매핑, `showRankChange=false` 시 rank-num 완전 숨김, 클라이언트 `rank` 재정렬, `creatorId=0` 차단 관계 및 클릭 불가 정책을 반영했다. - 2026-06-08: 사용자 추가 제공 정보에 따라 `rankChange`의 양수/음수/0 매핑, `showRankChange=false` 시 rank-num 완전 숨김, 클라이언트 `rank` 재정렬, `creatorId=0` 차단 관계 및 클릭 불가 정책을 반영했다.
- 2026-06-08: 사용자 추가 제공 정보에 따라 랭킹 item 터치 시 `UserProfileActivity` 이동 외 별도 analytics/logging을 추가하지 않는 것으로 확정하고 Open Questions를 없음으로 정리했다. - 2026-06-08: 사용자 추가 제공 정보에 따라 랭킹 item 터치 시 `UserProfileActivity` 이동 외 별도 analytics/logging을 추가하지 않는 것으로 확정하고 Open Questions를 없음으로 정리했다.
- 2026-06-08: 최종 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingMapperTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다. - 2026-06-08: 최종 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingMapperTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다.
- 2026-06-09: 사용자 확인에 따라 Figma상 순위 숫자의 margin 값 자체를 추가하지 않고, 기존 고정 텍스트 박스 크기 안에서 텍스트 정렬을 맞추는 후속 보정 요구사항을 추가했다.
- 2026-06-09: 순위 TextView 내부 중앙 정렬 보정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:mergeDebugResources`가 모두 `BUILD SUCCESSFUL`로 통과했다.