docs(creator): 커뮤니티 탭 Phase 2 검증을 기록한다
This commit is contained in:
@@ -187,7 +187,7 @@
|
||||
|
||||
### Phase 2: API/DTO/Repository/ViewModel 계약 추가
|
||||
|
||||
- [ ] **Task 2.1: 커뮤니티 탭 DTO 추가**
|
||||
- [x] **Task 2.1: 커뮤니티 탭 DTO 추가**
|
||||
- 생성:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/data/CreatorChannelCommunityTabResponse.kt`
|
||||
- 작업:
|
||||
@@ -198,8 +198,10 @@
|
||||
- `./gradlew :app:compileDebugKotlin`
|
||||
- 기대 결과:
|
||||
- 신규 DTO 추가 후 컴파일이 PASS한다.
|
||||
- 검증 기록:
|
||||
- 2026-06-21: `CreatorChannelCommunityTabResponse`, `CreatorChannelCommunityPostResponse`를 전용 `community/data` 패키지에 추가했고, `@Keep`/`@SerializedName` 기반 Gson DTO 계약을 구성했다. 최종 `./gradlew :app:compileDebugKotlin` 검증 대상으로 포함한다.
|
||||
|
||||
- [ ] **Task 2.2: 커뮤니티 탭 endpoint와 Repository method 추가**
|
||||
- [x] **Task 2.2: 커뮤니티 탭 endpoint와 Repository method 추가**
|
||||
- 수정:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelApi.kt`
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/data/CreatorChannelRepository.kt`
|
||||
@@ -211,8 +213,10 @@
|
||||
- `./gradlew :app:compileDebugKotlin`
|
||||
- 기대 결과:
|
||||
- API/Repository 추가 후 기존 Koin graph와 충돌 없이 컴파일된다.
|
||||
- 검증 기록:
|
||||
- 2026-06-21: `CreatorChannelApi.getCommunity()`에 `@GET("/api/v2/creator-channels/{creatorId}/community")`를 추가하고 query parameter는 `page`, `size`만 전달하도록 구성했다. `CreatorChannelRepository.getCommunity(creatorId, page, size, token)`도 동일 계약으로 추가했다. 최종 `./gradlew :app:compileDebugKotlin` 검증 대상으로 포함한다.
|
||||
|
||||
- [ ] **Task 2.3: ViewModel RED 테스트 작성**
|
||||
- [x] **Task 2.3: ViewModel RED 테스트 작성**
|
||||
- 생성:
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityViewModelTest.kt`
|
||||
- `app/src/test/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityPaginationTest.kt`
|
||||
@@ -233,8 +237,10 @@
|
||||
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityPaginationTest"`
|
||||
- 기대 결과:
|
||||
- production 구현 전 `CreatorChannelCommunityViewModel` 미구현으로 RED 실패한다.
|
||||
- 검증 기록:
|
||||
- 2026-06-21: production ViewModel 구현 전 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityViewModelTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityPaginationTest"` 실행 결과 `:app:compileDebugUnitTestKotlin`에서 `Unresolved reference 'CreatorChannelCommunityViewModel'`, `CreatorChannelCommunityUiState`, `CreatorChannelCommunityViewMode`로 RED 실패함을 확인했다.
|
||||
|
||||
- [ ] **Task 2.4: `CreatorChannelCommunityViewModel` 구현**
|
||||
- [x] **Task 2.4: `CreatorChannelCommunityViewModel` 구현**
|
||||
- 생성:
|
||||
- `app/src/main/java/kr/co/vividnext/sodalive/v2/creator/channel/community/CreatorChannelCommunityViewModel.kt`
|
||||
- 수정:
|
||||
@@ -252,6 +258,9 @@
|
||||
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"`
|
||||
- 기대 결과:
|
||||
- ViewModel 테스트가 GREEN이다.
|
||||
- 검증 기록:
|
||||
- 2026-06-21: `CreatorChannelCommunityViewModel`을 기존 Audio/Series 탭 패턴에 맞춰 `LiveData`, `BaseViewModel`, `requestGeneration`, pagination error consume 구조로 구현하고 `AppDI` Koin binding을 추가했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"` 실행 결과 BUILD SUCCESSFUL로 GREEN 확인했다.
|
||||
- 2026-06-21: Phase 2 코드 리뷰에서 DTO/API/Repository/ViewModel/test 변경을 `CreatorChannelAudioViewModel`, `CreatorChannelSeriesViewModel` 패턴과 대조했고, 수정이 필요한 결함은 발견하지 않았다. 추가 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*Community*"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`를 실행했으며 모두 PASS했다.
|
||||
|
||||
---
|
||||
|
||||
@@ -482,3 +491,10 @@
|
||||
|
||||
## Verification Log
|
||||
- 계획 문서 생성 단계에서는 코드 변경을 수행하지 않았다. 구현 후 통합 검증, 회귀 검증, 최종 수동 확인 기록을 이 섹션에 누적한다.
|
||||
|
||||
- 2026-06-21 Phase 2 검증:
|
||||
- RED: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityViewModelTest" --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.CreatorChannelCommunityPaginationTest"`는 production ViewModel 구현 전 `CreatorChannelCommunityViewModel`/`CreatorChannelCommunityUiState`/`CreatorChannelCommunityViewMode` 미구현으로 `:app:compileDebugUnitTestKotlin` 실패를 확인했다.
|
||||
- GREEN: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.community.*"` PASS.
|
||||
- 회귀: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*Community*"` PASS.
|
||||
- 확장 회귀: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`는 229개 중 `CreatorChannelHomeViewModelTest > 채널 후원 성공은 기존 후원 API를 호출하고 홈을 다시 로드한다` 1건 실패. 동일 테스트 단독 재실행 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeViewModelTest.채널 후원 성공은 기존 후원 API를 호출하고 홈을 다시 로드한다"`는 PASS하여 Phase 2 변경과 직접 관련 없는 비결정적 실패로 기록한다.
|
||||
- 빌드/리소스/린트: `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` PASS.
|
||||
|
||||
Reference in New Issue
Block a user