From 2a2315ecbc7284dfc194f2c6f1b8995cb62cdd97 Mon Sep 17 00:00:00 2001 From: klaus Date: Fri, 10 Jul 2026 10:38:59 +0900 Subject: [PATCH] =?UTF-8?q?docs(home):=20=EC=BB=A4=EB=AE=A4=EB=8B=88?= =?UTF-8?q?=ED=8B=B0=20=EC=83=81=EC=84=B8=20=EC=9D=B4=EB=8F=99=20=EC=9A=94?= =?UTF-8?q?=EA=B5=AC=EB=A5=BC=20=EA=B8=B0=EB=A1=9D=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plan-task.md | 30 +++++++++++++++++++ .../prd.md | 7 +++++ 2 files changed, 37 insertions(+) diff --git a/docs/20260601_메인_홈_추천_UI와_API_연동/plan-task.md b/docs/20260601_메인_홈_추천_UI와_API_연동/plan-task.md index 679fe3f1..4543fa5c 100644 --- a/docs/20260601_메인_홈_추천_UI와_API_연동/plan-task.md +++ b/docs/20260601_메인_홈_추천_UI와_API_연동/plan-task.md @@ -734,5 +734,35 @@ - 수정: `app/src/main/res/values/strings.xml`, `values-en/strings.xml`, `values-ja/strings.xml` - 검증 기록: 2026-06-29 `ContentOverviewType.FIRST_AUDIO_CONTENT`와 `home_recommendation_section_first_audio_contents` production 참조를 제거하고, `NEW_AND_HOT_AUDIO` 경로는 유지했다. +### Phase 13: 커뮤니티 상세 라우팅 변경 + +- [x] **Task 13.1: 방금 활동한 크리에이터 COMMUNITY 라우팅 변경** + - 수정: `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` + - 구현 내용: + - `CreatorActivityType.Community` route의 `targetId`를 커뮤니티 게시글 `postId`로 해석한다. + - `CreatorActivityType.Community` route intent는 `CreatorChannelCommunityDetailActivity.newIntent(context, postId)`로 생성한다. + - `targetId`가 없거나 0 이하이면 기존처럼 이동하지 않는다. + - 검증: + - `HomeMainFragmentLayoutTest`에서 COMMUNITY route intent component와 `extra_post_id` 전달을 확인한다. + - 검증 기록: + - 2026-07-10: `HomeMainFragmentLayoutTest`의 최근 활동 COMMUNITY intent 기대값을 `CreatorChannelCommunityDetailActivity`와 `extra_post_id`로 먼저 변경해 기존 `CreatorCommunityAllActivity` 구현에서 RED 실패를 확인했다. 이후 `HomeRecommendationRecentlyActiveCreatorRoute.Community`의 `targetId`를 `postId`로 해석하고 `CreatorChannelCommunityDetailActivity.newIntent(context, postId)`를 생성하도록 수정했다. + +- [x] **Task 13.2: 인기 커뮤니티 item 라우팅 변경** + - 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt` + - 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLoginGuardSourceTest.kt` + - 구현 내용: + - 인기 커뮤니티 item 클릭 시 `FeedItem.Community.postId`를 사용해 `CreatorChannelCommunityDetailActivity`로 이동한다. + - 기존 `CreatorCommunityAllActivity`와 `EXTRA_COMMUNITY_CREATOR_ID`, `EXTRA_COMMUNITY_POST_ID`, `EXTRA_COMMUNITY_EXIST_ORDERED` 전달을 제거한다. + - `postId`가 없거나 숫자로 변환되지 않으면 기존처럼 이동하지 않는다. + - 검증: + - `HomeMainFragmentLoginGuardSourceTest`에서 invalid `postId` return이 로그인 가드보다 먼저 유지되는지 확인한다. + - `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route creates expected intents" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLoginGuardSourceTest"`를 실행한다. + - 검증 기록: + - 2026-07-10: `HomeMainFragmentLoginGuardSourceTest`에 인기 커뮤니티가 `CreatorChannelCommunityDetailActivity.newIntent(requireContext(), postId)`를 사용하고 기존 `CreatorCommunityAllActivity`/커뮤니티 목록 extra를 쓰지 않는 source 검증을 추가했다. 기존 구현에서 RED 실패를 확인한 뒤 `HomeMainFragment.openPopularCommunityPost()`가 `postId`만 검증하고 상세 Activity를 열도록 수정했다. + - 2026-07-10: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest.home recent activity route creates expected intents" --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLoginGuardSourceTest"` 실행 결과 BUILD SUCCESSFUL을 확인했다. + ## Verification Log +- 2026-07-10: Phase 13 코드 리뷰 및 검증을 재수행했다. 리뷰 범위는 최근 활동 COMMUNITY route가 `targetId`를 `postId`로 해석해 `CreatorChannelCommunityDetailActivity.newIntent(context, postId)`를 생성하는지, 인기 커뮤니티 item이 `FeedItem.Community.postId` 기반으로 상세 Activity를 여는지, 기존 `CreatorCommunityAllActivity`/커뮤니티 목록 extra 제거 여부, 로그인 가드 전 invalid return 유지 여부다. 코드 리뷰 결과 blocking finding은 없었다. 검증으로 Phase 13 targeted test, `HomeMainFragmentLayoutTest` 전체, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --cached --check`가 모두 통과했고, `rg`로 v2 home production 코드에 기존 커뮤니티 목록 라우팅 참조가 남지 않았음을 확인했다. +- 2026-07-10: 커뮤니티 상세 라우팅 변경 회귀 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLoginGuardSourceTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`를 실행했고 모두 통과했다. `ktlintCheck` 최초 실행은 이번에 수정한 source test 파일의 기존 긴 assertion 줄 때문에 실패했으며, 동작 변경 없이 줄바꿈과 긴 문자열 분리만 적용한 뒤 재실행해 BUILD SUCCESSFUL을 확인했다. `rg`로 v2 home production 코드에 `CreatorCommunityAllActivity`와 기존 커뮤니티 전체목록 extra 참조가 남지 않았고, 해당 문자열은 금지 조건 source test에만 남아 있음을 확인했다. - 2026-06-29: `처음부터 함께 성장!` 제거 회귀 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*" --tests "kr.co.vividnext.sodalive.v2.main.content.overview.*" :app:mergeDebugResources :app:compileDebugKotlin :app:ktlintCheck`를 실행했고 BUILD SUCCESSFUL을 확인했다. `git diff --check` 출력 없음도 확인했다. Android 기기/에뮬레이터 접근이 없어 실제 화면 조작은 수행하지 못했으며, `rg`로 `app/src/main`의 first audio/FIRST_AUDIO_CONTENT production 참조 제거를 확인했다. 리뷰 게이트에서 차단 이슈 없이 승인받았다. diff --git a/docs/20260601_메인_홈_추천_UI와_API_연동/prd.md b/docs/20260601_메인_홈_추천_UI와_API_연동/prd.md index 7b105af6..cfcc4ebc 100644 --- a/docs/20260601_메인_홈_추천_UI와_API_연동/prd.md +++ b/docs/20260601_메인_홈_추천_UI와_API_연동/prd.md @@ -379,6 +379,7 @@ HomeRecommendation 화면 --- ## 12. 검증 기록 +- 2026-07-10: 사용자 요청에 따라 `방금 활동한 크리에이터` 섹션의 `activityType == COMMUNITY` 클릭과 `인기 커뮤니티` 섹션 item 클릭을 커뮤니티 전체 목록이 아니라 `CreatorChannelCommunityDetailActivity`로 이동하도록 요구사항과 구현을 반영했다. 최근 활동 COMMUNITY의 `targetId`는 커뮤니티 게시글 `postId`로 해석하고, 인기 커뮤니티는 `HomePopularCommunityPostItem.postId`를 상세 화면 식별 값으로 사용한다. - 2026-06-29: 사용자 추가 요청에 따라 `최근 데뷔한 크리에이터` item을 기존 `205dp x 259dp` 비율로 축소한 `185dp x 234dp`로 표시하고, 이미지 단독이 아니라 item root 전체에 `14dp` rounded clipping을 적용해야 한다는 요구사항을 PRD에 반영했다. Figma `24:5534`, `24:5537` design context와 screenshot을 확인했다. - 2026-06-23: 기존 `CreatorChannelFanTalkFragmentLayoutTest.kt:78` ktlint 줄바꿈 위반을 동작 변경 없이 수정한 뒤 `./gradlew :app:testDebugUnitTest`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`가 모두 BUILD SUCCESSFUL임을 재확인했다. `adb devices` 결과 연결된 Android 기기가 없어 실제 기기 수동 확인은 수행하지 못했고, 해당 수동 확인은 환경 차단으로 계획 문서에 남겼다. - 2026-06-23: Phase 12 검증으로 `./gradlew :app:testDebugUnitTest`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`는 BUILD SUCCESSFUL을 확인했다. `./gradlew :app:ktlintCheck`는 이번 변경 범위 밖의 `CreatorChannelFanTalkFragmentLayoutTest.kt:78` 기존 줄 길이/인자 줄바꿈 위반으로 실패했으며, 해당 파일은 이번 diff에 포함되지 않음을 확인했다. @@ -416,3 +417,9 @@ HomeRecommendation 화면 - `GET /api/v2/home/recommendations` 응답 계약에서 `firstAudioContents`와 `HomeFirstAudioContentItem`을 제거한다. - UI model, mapper, Fragment binding, adapter, item layout, section title string도 함께 제거한다. - 다른 섹션(`recentDebutCreators`, `aiCharacters`, `genreCreators`, `cheerCreators`, `popularCommunityPosts`)의 노출/매핑 계약은 유지한다. + +### 2026-07-10 변경: 커뮤니티 상세 라우팅 +- `방금 활동한 크리에이터` 섹션에서 `activityType == COMMUNITY`인 item을 터치하면 커뮤니티 전체 목록이 아니라 `CreatorChannelCommunityDetailActivity`로 이동한다. +- `activityType == COMMUNITY`인 `HomeActiveCreatorItem.targetId`는 커뮤니티 게시글 `postId`로 해석해 상세 화면에 전달한다. +- `인기 커뮤니티` 섹션 item을 터치하면 커뮤니티 전체 목록이 아니라 `CreatorChannelCommunityDetailActivity`로 이동한다. +- `인기 커뮤니티` 섹션은 기존 `HomePopularCommunityPostItem.postId`를 상세 화면 식별 값으로 사용한다.