docs(creator): 채널 홈 최종 검증을 기록한다

This commit is contained in:
2026-06-15 22:40:53 +09:00
parent 40679a624b
commit fcb198c8a8
2 changed files with 20 additions and 3 deletions

View File

@@ -880,26 +880,32 @@
- 2026-06-15: `UserProfileActivity` 진입 호출부를 확인한 결과, Phase 7 범위에서는 `v2/main/home`의 홈 추천/랭킹/크리에이터 카드처럼 이미 `creatorId`를 직접 보유한 확정 진입점만 신규 화면으로 전환했다. `HomeRecommendationBannerRoute.Creator``CreatorChannelHomeActivity.newIntent(context, creatorId)`를 반환하도록 변경하고, `HomeMainFragment.openCreatorProfile(creatorId)``CreatorChannelHomeActivity.newIntent(requireContext(), creatorId)`를 사용하도록 변경했다. 딥링크/알림/기존 프로필 화면 내부와 같이 정책 범위가 넓거나 다른 식별자 의미가 섞일 수 있는 호출부는 변경하지 않았다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`가 PASS했다.
- 2026-06-15: 사용자 피드백에 따라 Task 7.3 의도를 재확인했고, 기존 크리에이터 채널인 `UserProfileActivity`로 이동하던 프로덕션 진입점을 신규 `CreatorChannelHomeActivity`로 전환하는 것이 요구사항임을 확인했다. RED로 `CreatorChannelHomeActivitySourceTest``app/src/main/java`에서 `UserProfileActivity::class.java``UserProfileActivity` import가 남으면 실패하는 검증을 추가했고, 기존 구현에서 실패함을 확인했다. 이후 딥링크/메인/홈/라이브/탐색/검색/팔로잉/알림설정/마이페이지/오디오 콘텐츠/시리즈/오디션/라이브 상세의 기존 채널 진입점을 모두 `CreatorChannelHomeActivity.newIntent(..., creatorId)`로 전환했다. 수정 후 동일 RED 테스트가 PASS했고, `rg``app/src/main/java`에 외부 `UserProfileActivity` 직접 진입점이 남지 않음을 확인했다.
- 2026-06-15: 후속 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeActivitySourceTest"`, `./gradlew :app:compileDebugKotlin`, `git diff --check`가 PASS했다. `rg -n "Intent\([^\n]*UserProfileActivity|UserProfileActivity::class\.java|import kr\.co\.vividnext\.sodalive\.explorer\.profile\.UserProfileActivity" app/src/main/java`는 match 없이 종료되어 프로덕션 직접 진입점이 제거되었음을 확인했다. `./gradlew :app:ktlintCheck``audio_content` 패키지명 underscore 기존 규칙 위반 4건(`AudioContentNewAllActivity.kt`, `AudioContentAllByThemeActivity.kt`, `AudioContentDetailActivity.kt`, `SeriesDetailActivity.kt`)으로 실패했다. 패키지명 변경은 범위 밖이고 전역 ktlint rule 변경은 기존 전체 lint 부채를 노출해 범위를 크게 늘리므로 적용하지 않았다.
- 2026-06-15: 코드 리뷰에서 `AuditionRoleDetailActivity`의 지원자 닉네임 클릭은 `GetAuditionRoleApplicantItem.memberId`만 보유하고 `creatorId`/크리에이터 여부를 판별할 수 없어 신규 크리에이터 채널 홈으로 이동하면 잘못된 ID로 홈 API를 호출할 수 있음을 확인했다. RED로 `CreatorChannelHomeActivitySourceTest`에 오디션 지원자 `memberId` 프로필은 기존 `UserProfileActivity`로 이동한다는 계약을 추가해 실패를 확인했고, `AuditionRoleDetailActivity`의 해당 경로만 `UserProfileActivity`로 복구했다. 현재 API 응답만으로는 이 클릭에서 크리에이터 여부를 분기할 수 없으므로, 크리에이터 지원자만 신규 화면으로 보내려면 서버 응답에 `creatorId` 또는 `isCreator` 등 판별 필드가 추가되어야 한다.
- 2026-06-15: 후속 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeActivitySourceTest.오디션 지원자 memberId 프로필은 기존 UserProfileActivity로 이동한다"`, `./gradlew :app:compileDebugKotlin`, `git diff --check`가 PASS했다.
---
### Phase 8: 최종 검증과 문서 기록
- [ ] **Task 8.1: 단위 테스트 실행**
- [x] **Task 8.1: 단위 테스트 실행**
- 실행:
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.common.*"`
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*"`
- 기대 결과:
- 신규 공용 타입, 크리에이터 채널 홈, 기존 홈 추천 관련 테스트가 모두 `BUILD SUCCESSFUL`로 통과한다.
- 검증 기록:
- 2026-06-15: Phase 8 최종 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.common.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*"`를 순차 실행했다. 세 명령 모두 `BUILD SUCCESSFUL`로 통과했다.
- [ ] **Task 8.2: 리소스/컴파일/린트 검증**
- [x] **Task 8.2: 리소스/컴파일/린트 검증**
- 실행:
- `./gradlew :app:mergeDebugResources`
- `./gradlew :app:compileDebugKotlin`
- `./gradlew :app:ktlintCheck`
- 기대 결과:
- 모든 명령이 `BUILD SUCCESSFUL`로 통과한다.
- 검증 기록:
- 2026-06-15: Phase 8 최종 검증으로 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행했다. 세 명령 모두 `BUILD SUCCESSFUL`로 통과했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- [ ] **Task 8.3: 수동 화면 검증**
- 확인:
@@ -911,8 +917,11 @@
- 홈 API 응답의 각 section이 홈 탭에 표시된다.
- 기대 결과:
- PRD Metrics 항목을 모두 만족한다.
- 검증 기록:
- 2026-06-15: Figma `296:14890`, `296:14892`, `296:14287`, `296:14288`, `296:14289` 스크린샷을 확인해 전체 화면, 크리에이터 이미지 영역, 팔로우 상태별 title-bar 기준을 재확인했다. 구현 근거로 `activity_creator_channel_home.xml`의 status bar 뒤 header/overlay title-bar/tab-bar/RecyclerView 구조, `CreatorChannelHomeActivity.kt`의 title-bar 상태 bind/버튼 표시 조합/sticky tab/title-bar black 전환, `CreatorChannelTitleBarState.kt`, `CreatorChannelScrollState.kt`, `CreatorChannelHomeSectionAdapter.kt`, `CreatorChannelHomeActivitySourceTest.kt`를 대조했다.
- 2026-06-15: 실제 기기 표면 검증을 위해 `adb devices`에서 연결 기기 `2cec640c34017ece`가 한 차례 표시됨을 확인하고 `./gradlew :app:assembleDebug`를 실행해 `BUILD SUCCESSFUL`을 확인했다. 이어서 `adb install -r "app/build/outputs/apk/debug/app-debug.apk"`를 실행했으나 설치 시점에 `adb: no devices/emulators found`로 실패했고, 재확인한 `adb devices`에서도 연결 기기가 없어 실제 전면 화면 캡처와 스크롤/클릭 육안 검증은 완료하지 못했다. 기기 재연결 후 이 Task를 이어서 확인해야 한다.
- [ ] **Task 8.4: 검증 기록 누적**
- [x] **Task 8.4: 검증 기록 누적**
- 수정:
- `docs/20260611_크리에이터_채널_홈_탭/plan-task.md`
- `docs/20260611_크리에이터_채널_홈_탭/prd.md`
@@ -921,6 +930,8 @@
- 실패 후 수정한 명령이 있다면 실패 기록을 삭제하지 않고 후속 성공 기록을 추가한다.
- 기대 결과:
- 문서 하단에 구현 후 검증 이력이 남는다.
- 검증 기록:
- 2026-06-15: Phase 8.1, 8.2의 성공 기록과 Phase 8.3의 Figma/source 대조 및 실제 기기 연결 차단 기록을 `plan-task.md``prd.md`에 누적했다. 기존 검증 기록은 삭제하거나 덮어쓰지 않았다.
---
@@ -1000,3 +1011,6 @@
- 2026-06-15: 사용자 요청에 따라 기존 `UserProfileActivity`로 이동하던 크리에이터 채널 진입점을 신규 `CreatorChannelHomeActivity`로 전환하는 작업을 Phase 7의 `Task 7.3`으로 추가했다. 이번 단계는 계획 문서 추가만 수행했으며 해당 진입점 전환 구현/빌드/테스트는 아직 실행하지 않았다.
- 2026-06-15: Phase 6 reviewer gate에서 sticky tab-bar가 `RecyclerView`보다 앞선 sibling이라 draw order상 컨텐츠에 가려질 수 있다는 blocking issue를 확인했다. `horizontal_tab_scroll_view``android:elevation="1dp"`를 추가해 sticky tab-bar가 홈 컨텐츠 위에 그려지도록 수정하고 source test 계약을 보강했다.
- 2026-06-15: Phase 6 reviewer gate 차단 이슈 수정 후 `CreatorChannelHomeActivitySourceTest`, `CreatorChannelScrollStateTest`, `:app:mergeDebugResources`, `:app:compileDebugKotlin`, `:app:ktlintCheck`, `git diff --check`를 재실행해 모두 `BUILD SUCCESSFUL` 또는 출력 없음으로 PASS했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- 2026-06-15: Phase 8 최종 단위 테스트로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.common.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*"`를 순차 실행해 모두 `BUILD SUCCESSFUL`을 확인했다.
- 2026-06-15: Phase 8 리소스/컴파일/린트 검증으로 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행해 모두 `BUILD SUCCESSFUL`을 확인했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- 2026-06-15: Phase 8 수동 화면 검증 준비로 Figma `296:14890`, `296:14892`, `296:14287`, `296:14288`, `296:14289` 스크린샷을 확인하고, `CreatorChannelHomeActivity.kt`, `activity_creator_channel_home.xml`, `CreatorChannelTitleBarState.kt`, `CreatorChannelScrollState.kt`, `CreatorChannelHomeSectionAdapter.kt`, `CreatorChannelHomeActivitySourceTest.kt`를 대조했다. `./gradlew :app:assembleDebug``BUILD SUCCESSFUL`이었으나, 설치/실행 시점에 연결 기기가 사라져 `adb install -r "app/build/outputs/apk/debug/app-debug.apk"``adb: no devices/emulators found`로 실패했다. 재확인한 `adb devices`에도 기기가 없어 실제 전면 화면 캡처와 스크롤/클릭 육안 검증은 미완료로 남겼다.

View File

@@ -477,3 +477,6 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
- 2026-06-13: 사용자 추가 요청에 따라 신규 크리에이터 채널 홈 패키지를 `kr.co.vividnext.sodalive.v2.creatorchannel`에서 `kr.co.vividnext.sodalive.v2.creator.channel`로 변경했다.
- 2026-06-13: 사용자 확인에 따라 백엔드 `CreatorActivityType` 원본 enum과 동일한 대문자 code 계약을 API 계약/기술 제약에 명시했다. 이후 코드리뷰에서는 별도 서버 계약 변경 근거가 없는 한 크리에이터 채널 홈 DTO의 `CreatorActivityType` 직접 사용과 Gson enum TypeAdapter 부재를 대소문자 대응 문제로 제기하지 않는다. 이번 단계는 문서 수정만 수행했으며 빌드/테스트는 실행하지 않았다.
- 2026-06-15: 사용자 요청에 따라 탭 바 아래 홈 컨텐츠를 기존 동적 조립 UI에서 Figma `296:14895``SectionTitle`, `Contents`, `Feed`, `ListComment`, `SNS` 컴포넌트 기반 UI로 전면 재구성하는 요구사항을 추가했다. 이번 단계는 문서 수정만 수행했으며 구현/빌드/테스트는 실행하지 않았다.
- 2026-06-15: Phase 8 최종 단위 테스트로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.common.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*"`를 순차 실행해 모두 `BUILD SUCCESSFUL`을 확인했다.
- 2026-06-15: Phase 8 리소스/컴파일/린트 검증으로 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행해 모두 `BUILD SUCCESSFUL`을 확인했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- 2026-06-15: Phase 8 수동 화면 검증 준비로 Figma `296:14890`, `296:14892`, `296:14287`, `296:14288`, `296:14289` 스크린샷을 확인하고 구현 소스와 source test를 대조했다. `./gradlew :app:assembleDebug``BUILD SUCCESSFUL`이었으나, 설치/실행 시점에 연결 기기가 사라져 `adb install -r "app/build/outputs/apk/debug/app-debug.apk"``adb: no devices/emulators found`로 실패했다. 재확인한 `adb devices`에도 기기가 없어 실제 전면 화면 캡처와 스크롤/클릭 육안 검증은 미완료로 남겼다.