docs(home): 최근 활동 이동 검증을 기록한다
This commit is contained in:
@@ -523,16 +523,33 @@
|
|||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
### Phase 11: 최종 검증과 문서 기록
|
### Phase 11: 방금 활동한 크리에이터 터치 액션 연결
|
||||||
|
|
||||||
- [ ] **Task 11.1: 단위 테스트와 빌드 검증**
|
- [x] **Task 11.1: 방금 활동한 크리에이터 클릭 라우팅 구현**
|
||||||
|
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/HomeMainFragment.kt`
|
||||||
|
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/model/HomeRecommendationUiModels.kt`
|
||||||
|
- 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt`
|
||||||
|
- 구현 내용:
|
||||||
|
- `Live`는 터치 액션 없음.
|
||||||
|
- `LiveReplay`, `Audio`는 `AudioContentDetailActivity`로 이동하고 `Constants.EXTRA_AUDIO_CONTENT_ID`에 `targetId`를 전달한다.
|
||||||
|
- `Community`는 `CreatorCommunityAllActivity`로 이동하고 `Constants.EXTRA_COMMUNITY_CREATOR_ID`에 `targetId`를 전달한다.
|
||||||
|
- `activityType`이 unknown이거나 `targetId`가 없거나 0 이하이면 이동하지 않는다.
|
||||||
|
- 검증:
|
||||||
|
- `HomeMainFragmentLayoutTest`에 activity type별 route와 Intent extra 계약 회귀 테스트를 추가한다.
|
||||||
|
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route maps activity type to target destination" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route ignores live unknown and missing target" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route creates expected intents"`로 RED/GREEN을 확인한다.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### Phase 12: 최종 검증과 문서 기록
|
||||||
|
|
||||||
|
- [ ] **Task 12.1: 단위 테스트와 빌드 검증**
|
||||||
- 실행: `./gradlew :app:testDebugUnitTest`
|
- 실행: `./gradlew :app:testDebugUnitTest`
|
||||||
- 실행: `./gradlew :app:compileDebugKotlin`
|
- 실행: `./gradlew :app:compileDebugKotlin`
|
||||||
- 실행: `./gradlew :app:mergeDebugResources`
|
- 실행: `./gradlew :app:mergeDebugResources`
|
||||||
- 실행: `./gradlew :app:ktlintCheck`
|
- 실행: `./gradlew :app:ktlintCheck`
|
||||||
- 기대 결과: 모두 성공.
|
- 기대 결과: 모두 성공.
|
||||||
|
|
||||||
- [ ] **Task 11.2: 수동 확인**
|
- [ ] **Task 12.2: 수동 확인**
|
||||||
- 확인 항목:
|
- 확인 항목:
|
||||||
- 추천 tab 선택 상태
|
- 추천 tab 선택 상태
|
||||||
- tab 전환은 글자 터치로만 동작하고 swipe 전환은 없음
|
- tab 전환은 글자 터치로만 동작하고 swipe 전환은 없음
|
||||||
@@ -542,13 +559,14 @@
|
|||||||
- 빈 리스트 섹션 숨김
|
- 빈 리스트 섹션 숨김
|
||||||
- 첫 오디오 태그 조건
|
- 첫 오디오 태그 조건
|
||||||
- activity type 다국어 문자열
|
- activity type 다국어 문자열
|
||||||
|
- 방금 활동한 크리에이터 목적지별 클릭 이동
|
||||||
- 모두 팔로우 success 후 완료 상태
|
- 모두 팔로우 success 후 완료 상태
|
||||||
- 배너 목적지별 클릭 이동
|
- 배너 목적지별 클릭 이동
|
||||||
- 인기 커뮤니티 유료/무료/구매 완료 이미지 상태
|
- 인기 커뮤니티 유료/무료/구매 완료 이미지 상태
|
||||||
- 사업자 정보 더보기/접기
|
- 사업자 정보 더보기/접기
|
||||||
- 기대 결과: PRD Metrics 항목 충족.
|
- 기대 결과: PRD Metrics 항목 충족.
|
||||||
|
|
||||||
- [ ] **Task 11.3: 검증 기록 누적**
|
- [ ] **Task 12.3: 검증 기록 누적**
|
||||||
- 수정: `docs/20260601_메인_홈_추천_UI와_API_연동/plan-task.md`
|
- 수정: `docs/20260601_메인_홈_추천_UI와_API_연동/plan-task.md`
|
||||||
- 수정: `docs/20260601_메인_홈_추천_UI와_API_연동/prd.md`
|
- 수정: `docs/20260601_메인_홈_추천_UI와_API_연동/prd.md`
|
||||||
- 구현 내용: 실행 명령, 결과, 실패 시 원인과 후속 조치를 문서 하단 `검증 기록`에 누적한다.
|
- 구현 내용: 실행 명령, 결과, 실패 시 원인과 후속 조치를 문서 하단 `검증 기록`에 누적한다.
|
||||||
@@ -565,6 +583,8 @@
|
|||||||
---
|
---
|
||||||
|
|
||||||
## 검증 기록
|
## 검증 기록
|
||||||
|
- 2026-06-06: 사용자 요청에 따라 `Phase 11: 방금 활동한 크리에이터 터치 액션 연결`을 추가하고 기존 `Phase 11: 최종 검증과 문서 기록`을 `Phase 12`로 뒤로 밀었다. 구현으로 최근 활동 카드 클릭 시 `Live`는 no-op, `LiveReplay`/`Audio`는 `AudioContentDetailActivity` + `Constants.EXTRA_AUDIO_CONTENT_ID = targetId`, `Community`는 `CreatorCommunityAllActivity` + `Constants.EXTRA_COMMUNITY_CREATOR_ID = targetId`로 이동하도록 연결했다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route maps activity type to target destination" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route ignores live unknown and missing target" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route creates expected intents"`에서 `HomeRecommendationRecentlyActiveCreatorRoute`, `toHomeRecommendationRecentlyActiveCreatorRoute()`, `toHomeRecommendationRecentlyActiveCreatorIntent()` 미정의 컴파일 실패로 확인했다. 구현 후 동일 명령은 BUILD SUCCESSFUL을 확인했다.
|
||||||
|
- 2026-06-06: Task 11.1 회귀 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다. `ktlintCheck`에서는 기존 `.editorconfig`의 `disabled_rules` 속성 deprecation warning만 출력되었고 신규 실패는 없었다. 변경 파일 4개로 리뷰 게이트를 수행했고, `Live` no-op, `LiveReplay`/`Audio`/`Community` 목적지 및 extra 계약, invalid target no-op, Fragment callback 연결, Phase 11/12 문서 이동, 테스트 커버리지에 대해 blocking finding 없음으로 승인받았다.
|
||||||
- 2026-06-05: Task 10.1 구현으로 홈 추천 배너 클릭 라우팅을 연결했다. `eventItem`은 `EventDetailActivity` + `Constants.EXTRA_EVENT`, `creatorId`는 `UserProfileActivity` + `Constants.EXTRA_USER_ID`, `seriesId`는 `SeriesDetailActivity` + `Constants.EXTRA_SERIES_ID`, `link`는 `Intent.ACTION_VIEW`로 실행한다. 여러 대상이 함께 내려오면 `eventItem` → `creatorId` → `seriesId` → `link` 순서로 우선 처리한다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route uses event creator series link priority"`에서 `HomeRecommendationBannerRoute`, `toHomeRecommendationBannerRoute()` 미정의 컴파일 실패로 확인했다. 구현 후 동일 테스트는 최초 `:app:kspDebugKotlin`의 `java.io.EOFException`으로 중단되었고, `--rerun-tasks` 재실행에서 BUILD SUCCESSFUL을 확인했다. 이후 내부 딥링크 판별 누락 지적에 따라 `BuildConfig.APPSCHEME` custom scheme과 `https://${BuildConfig.APPSCHEME}.onelink.me` app link만 내부 딥링크로 인정하고, `mailto:` 같은 외부 custom scheme은 이동하지 않도록 보강했다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route maps creator series web and internal deeplink" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route ignores blank malformed and scheme-less links"`에서 2개 테스트 실패로 확인했고, 수정 후 동일 명령은 BUILD SUCCESSFUL을 확인했다.
|
- 2026-06-05: Task 10.1 구현으로 홈 추천 배너 클릭 라우팅을 연결했다. `eventItem`은 `EventDetailActivity` + `Constants.EXTRA_EVENT`, `creatorId`는 `UserProfileActivity` + `Constants.EXTRA_USER_ID`, `seriesId`는 `SeriesDetailActivity` + `Constants.EXTRA_SERIES_ID`, `link`는 `Intent.ACTION_VIEW`로 실행한다. 여러 대상이 함께 내려오면 `eventItem` → `creatorId` → `seriesId` → `link` 순서로 우선 처리한다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route uses event creator series link priority"`에서 `HomeRecommendationBannerRoute`, `toHomeRecommendationBannerRoute()` 미정의 컴파일 실패로 확인했다. 구현 후 동일 테스트는 최초 `:app:kspDebugKotlin`의 `java.io.EOFException`으로 중단되었고, `--rerun-tasks` 재실행에서 BUILD SUCCESSFUL을 확인했다. 이후 내부 딥링크 판별 누락 지적에 따라 `BuildConfig.APPSCHEME` custom scheme과 `https://${BuildConfig.APPSCHEME}.onelink.me` app link만 내부 딥링크로 인정하고, `mailto:` 같은 외부 custom scheme은 이동하지 않도록 보강했다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route maps creator series web and internal deeplink" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route ignores blank malformed and scheme-less links"`에서 2개 테스트 실패로 확인했고, 수정 후 동일 명령은 BUILD SUCCESSFUL을 확인했다.
|
||||||
- 2026-06-05: Task 10.1 최종 회귀 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다. `ktlintCheck`에서는 기존 `.editorconfig`의 `disabled_rules` 속성 deprecation warning만 출력되었고 신규 실패는 없었다.
|
- 2026-06-05: Task 10.1 최종 회귀 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다. `ktlintCheck`에서는 기존 `.editorconfig`의 `disabled_rules` 속성 deprecation warning만 출력되었고 신규 실패는 없었다.
|
||||||
- 2026-06-05: Task 10.1 리뷰 반려 대응으로 라우팅 결정 테스트에 더해 실제 `Intent` 생성 계약 테스트를 추가했다. `HomeRecommendationBannerRoute.toHomeRecommendationBannerIntent(context)`를 추가해 `EventDetailActivity`/`UserProfileActivity`/`SeriesDetailActivity` component와 `Constants.EXTRA_EVENT`/`Constants.EXTRA_USER_ID`/`Constants.EXTRA_SERIES_ID` extra, `Intent.ACTION_VIEW` link data를 검증하도록 했다. 또한 `creatorId + seriesId + link`, `seriesId + link` 조합 우선순위 테스트를 추가했다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route creates activity and link intents with expected extras"`에서 `toHomeRecommendationBannerIntent()` 미정의 컴파일 실패로 확인했고, 구현 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route creates activity and link intents with expected extras" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route uses creator over series and series over link priority"`는 BUILD SUCCESSFUL을 확인했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 재실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
- 2026-06-05: Task 10.1 리뷰 반려 대응으로 라우팅 결정 테스트에 더해 실제 `Intent` 생성 계약 테스트를 추가했다. `HomeRecommendationBannerRoute.toHomeRecommendationBannerIntent(context)`를 추가해 `EventDetailActivity`/`UserProfileActivity`/`SeriesDetailActivity` component와 `Constants.EXTRA_EVENT`/`Constants.EXTRA_USER_ID`/`Constants.EXTRA_SERIES_ID` extra, `Intent.ACTION_VIEW` link data를 검증하도록 했다. 또한 `creatorId + seriesId + link`, `seriesId + link` 조합 우선순위 테스트를 추가했다. RED 검증은 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route creates activity and link intents with expected extras"`에서 `toHomeRecommendationBannerIntent()` 미정의 컴파일 실패로 확인했고, 구현 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route creates activity and link intents with expected extras" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home banner route uses creator over series and series over link priority"`는 BUILD SUCCESSFUL을 확인했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 재실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||||
|
|||||||
Reference in New Issue
Block a user