docs(content): FIRST 오디오 전체보기 제거를 기록한다

This commit is contained in:
2026-06-29 17:38:35 +09:00
parent 9fce374842
commit acbf9bb013
2 changed files with 18 additions and 23 deletions

View File

@@ -2,7 +2,7 @@
> **For agentic workers:** REQUIRED SUB-SKILL: 구현 시 `superpowers:subagent-driven-development` 또는 `superpowers:executing-plans`를 사용해 task 단위로 진행한다. 각 단계는 체크박스(`- [ ]`)로 추적하고, 완료 즉시 `- [x]`로 갱신한다. 구현 범위 변경이 생기면 이 문서를 먼저 수정한 뒤 코드에 반영한다.
**Goal:** 홈/콘텐츠 추천 섹션의 전체보기 chevron을 연결하고, 기존 콘텐츠 `전체` 탭 이동을 먼저 적용한 뒤 `New&Hot``처음부터 함께 성장!` 전용 신규 전체보기 화면을 제공한다.
**Goal:** 콘텐츠 추천 섹션의 전체보기 chevron을 연결하고, 기존 콘텐츠 `전체` 탭 이동을 먼저 적용한 뒤 `New&Hot` 전용 신규 전체보기 화면을 제공한다.
**Architecture:** 구현 순서는 `chevron 표시 -> 기존 콘텐츠 전체 탭 이동 -> 신규 전체보기 페이지/API`로 고정한다. 기존 화면 이동은 `MainV2Activity`, `ContentMainFragment`, `ContentAllTabViewModel`에 작은 public navigation contract를 추가해 처리한다. 신규 전체보기 화면은 마지막 단계에서 `kr.co.vividnext.sodalive.v2.main.content.overview` 하위 Activity/ViewModel/API/Repository/DTO/UI model/adapter로 격리한다.
@@ -13,11 +13,10 @@
## 전제와 성공 기준
- PRD: `docs/20260627_콘텐츠_전체보기/prd.md`
- 구현 순서:
- 1순위: 홈/콘텐츠 추천 섹션 chevron 표시.
- 1순위: 콘텐츠 추천 섹션 chevron 표시.
- 2순위: 신규 페이지가 필요 없는 섹션을 기존 콘텐츠 `전체` 탭으로 이동.
- 3순위: 신규 콘텐츠 전체보기 페이지/API 생성 및 신규 페이지 대상 섹션 이동.
- 전체보기 chevron 표시 섹션:
- 홈 추천 탭: `처음부터 함께 성장!`
- 콘텐츠 추천 탭: `오직 보이스온에서만!`, `새로 올라온 오디오`, `New&Hot`, `무료 오디오`, `포인트 오디오`
- 기존 콘텐츠 `전체` 탭 이동 섹션:
- `오직 보이스온에서만!` -> 콘텐츠 탭 `전체` -> `오리지널` 카테고리
@@ -25,14 +24,13 @@
- `무료 오디오` -> 콘텐츠 탭 `전체` -> `무료` 카테고리 -> `인기순`
- `포인트 오디오` -> 콘텐츠 탭 `전체` -> `포인트` 카테고리 -> `인기순`
- 신규 전체보기 페이지 이동 섹션:
- 홈 추천 탭 `처음부터 함께 성장!` -> 신규 콘텐츠 전체보기 -> `FIRST_AUDIO_CONTENT`
- 콘텐츠 추천 탭 `New&Hot` -> 신규 콘텐츠 전체보기 -> `NEW_AND_HOT_AUDIO`
- `댓글 많은 오디오`, `추천 오디오`에는 chevron을 표시하지 않는다.
- 신규 API endpoint는 `GET /api/v2/contents`이다.
- 신규 API query parameter key는 소문자 `page`, `size`, `type`만 사용한다.
- 신규 API 기본값은 `page=0`, `size=20`, `type=NEW_AND_HOT_AUDIO`다.
- 앱 구현 DTO annotation은 Gson `@SerializedName`을 사용한다.
- 신규 전체보기 화면 title은 `NEW_AND_HOT_AUDIO`일 때 `New&Hot`, `FIRST_AUDIO_CONTENT`일 때 `처음부터 함께 성장!`이다.
- 신규 전체보기 화면 title은 `NEW_AND_HOT_AUDIO`일 때 `New&Hot`이다.
- 신규 전체보기 화면은 Figma node `482:15105` 기준 2열 오디오 카드 grid를 사용한다.
- 구현 완료 후 최소 다음 명령을 실행한다.
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`
@@ -76,8 +74,6 @@
## 파일 구조
### 기존 화면 이동 선행 범위
- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt`
- `처음부터 함께 성장!` title chevron을 먼저 표시한다. 신규 페이지 이동은 Phase 7에서 연결한다.
- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentMainFragment.kt`
- 콘텐츠 추천 섹션 chevron 표시, 기존 콘텐츠 `전체` 탭 이동, 신규 페이지 이동을 단계별로 추가한다.
- Modify: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModel.kt`
@@ -88,8 +84,6 @@
- 콘텐츠 추천 섹션 chevron/routing/source를 검증한다.
- Modify: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/content/ContentAllTabViewModelTest.kt`
- 외부 type/sort 선택 API를 검증한다.
- Create: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentSourceTest.kt`
-`처음부터 함께 성장!` chevron/source를 검증한다.
- Modify: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/MainV2ActivitySourceTest.kt`
- 콘텐츠 탭 내부 `전체` type/sort routing contract를 검증한다.
@@ -710,3 +704,9 @@
- 2026-06-27 Phase 8 통합 검증 실행: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.overview.*"` 결과 PASS.
- 2026-06-27 Phase 8 빌드/리소스/린트 검증 실행: `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 결과 모두 PASS.
- 2026-06-27 Phase 8 수동 화면 검증: Android 기기/에뮬레이터를 사용할 수 없어 실제 화면 조작 검증은 BLOCKED로 남겼다. 자동 테스트와 빌드 검증은 모두 통과했다.
- 2026-06-29: 홈 추천 탭 `처음부터 함께 성장!` 섹션 제거에 따라 `FIRST_AUDIO_CONTENT` 신규 전체보기 진입을 제거했다. 회귀 검증으로 `./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` 출력 없음과 `app/src/main` production 참조 제거를 확인했다. Android 기기/에뮬레이터 접근이 없어 실제 화면 조작은 수행하지 못했다.
## 2026-06-29 변경: 홈 `처음부터 함께 성장!` 제거 반영
- 홈 추천 탭 `처음부터 함께 성장!` 섹션 제거에 따라 `FIRST_AUDIO_CONTENT` 신규 전체보기 진입도 제거한다.
- 현재 신규 전체보기 유지 대상은 콘텐츠 추천 탭 `New&Hot` -> `NEW_AND_HOT_AUDIO`뿐이다.
- 기존 Phase별 완료 로그는 당시 검증 이력으로 유지하며, 후속 구현은 이 변경 항목을 현재 계약으로 우선한다.

View File

@@ -1,7 +1,7 @@
# PRD: 콘텐츠 전체보기
## 1. Overview
홈 추천 탭과 콘텐츠 추천 탭의 일부 섹션에서 `전체보기` 진입을 제공하고, `New&Hot``처음부터 함께 성장!`은 신규 콘텐츠 전체보기 화면에서 `GET /api/v2/contents` API로 페이징 목록을 표시한다.
콘텐츠 추천 탭의 일부 섹션에서 `전체보기` 진입을 제공하고, `New&Hot`은 신규 콘텐츠 전체보기 화면에서 `GET /api/v2/contents` API로 페이징 목록을 표시한다.
작성일: 2026-06-27
@@ -9,18 +9,17 @@
## 2. Problem
- 콘텐츠 추천 탭의 섹션 타이틀 우측 chevron이 현재 전체보기 이동 정책과 연결되어 있지 않다.
- `New&Hot``처음부터 함께 성장!`은 기존 콘텐츠 탭 내부 `전체` 탭의 카테고리/정렬 조합으로 표현하지 않고, 별도 API 기반 전체보기 화면이 필요하다.
- `New&Hot`은 기존 콘텐츠 탭 내부 `전체` 탭의 카테고리/정렬 조합으로 표현하지 않고, 별도 API 기반 전체보기 화면이 필요하다.
- 그 외 콘텐츠 추천 섹션은 신규 화면을 만들지 않고 기존 `콘텐츠 탭 - 전체`의 특정 카테고리/정렬 상태로 이동해야 한다.
- 동일한 오디오 카드, 태그, 페이징 목록 UI가 이미 V2 패키지 하위에 있으므로 신규 UI를 중복 작성하지 않도록 재사용 후보를 먼저 정리해야 한다.
---
## 3. Goals
- 홈 추천 탭의 `처음부터 함께 성장!` 섹션 우측에 chevron을 표시하고 신규 콘텐츠 전체보기 화면으로 이동한다.
- 콘텐츠 추천 탭에서 전체보기가 필요한 섹션 제목 우측에 chevron을 표시한다.
- 콘텐츠 추천 탭의 `New&Hot` 섹션은 신규 콘텐츠 전체보기 화면으로 이동한다.
- 콘텐츠 추천 탭의 `오직 보이스온에서만!`, `새로 올라온 오디오`, `무료 오디오`, `포인트 오디오`는 기존 `콘텐츠 탭 - 전체`의 지정 상태로 이동한다.
- 신규 콘텐츠 전체보기 화면은 `type = NEW_AND_HOT_AUDIO` 또는 `type = FIRST_AUDIO_CONTENT``GET /api/v2/contents`를 호출한다.
- 신규 콘텐츠 전체보기 화면은 `type = NEW_AND_HOT_AUDIO``GET /api/v2/contents`를 호출한다.
- 신규 콘텐츠 전체보기 화면은 Figma node `482:15105``detail_ado_001` 구조를 기준으로 검은 배경, title bar, 2열 오디오 카드 그리드, 스크롤 페이징을 제공한다.
- V2 패키지 하위 기존 위젯 중 재사용 가능한 후보를 문서에 기록한다.
@@ -32,20 +31,18 @@
- 레거시 화면 또는 레거시 API 파일을 직접 수정하지 않는다.
- `GET /api/v2/audio/contents` API 계약은 변경하지 않는다.
- 신규 콘텐츠 전체보기 화면에 별도 정렬, 필터, 검색, pull-to-refresh, skeleton loading을 추가하지 않는다.
- `New&Hot``처음부터 함께 성장!` 외 섹션을 신규 전체보기 API로 조회하지 않는다.
- `New&Hot` 외 섹션을 신규 전체보기 API로 조회하지 않는다.
- Figma localhost asset URL을 앱 코드에 직접 의존하지 않는다.
---
## 5. Target Users
- 홈 추천 탭에서 `처음부터 함께 성장!` 콘텐츠를 더 많이 탐색하려는 사용자.
- 콘텐츠 추천 탭에서 `New&Hot`, 최신 오디오, 무료/포인트 오디오, 오리지널 콘텐츠를 섹션별로 더 보고 싶은 사용자.
- V2 메인 홈/콘텐츠 화면과 신규 전체보기 화면을 구현/유지보수하는 Android 개발자.
---
## 6. User Stories
- 사용자는 홈 추천 탭의 `처음부터 함께 성장!` 섹션 제목 우측 chevron을 눌러 같은 성격의 콘텐츠 전체 목록을 보고 싶다.
- 사용자는 콘텐츠 추천 탭의 `New&Hot` 섹션 제목 우측 chevron을 눌러 `New&Hot` 전체 목록을 보고 싶다.
- 사용자는 콘텐츠 추천 탭의 `오직 보이스온에서만!`을 누르면 콘텐츠 탭의 `전체` 내부에서 오리지널 카테고리가 선택된 화면으로 이동하길 기대한다.
- 사용자는 콘텐츠 추천 탭의 `새로 올라온 오디오`를 누르면 콘텐츠 탭의 `전체` 내부에서 오디오 카테고리가 선택된 화면으로 이동하길 기대한다.
@@ -59,7 +56,6 @@
### Feature A. 전체보기 섹션 chevron 표시
#### Requirements
- 전체보기 진입이 필요한 섹션 제목 우측에는 `view_section_title.xml``iv_section_title_chevron`을 표시한다.
- 홈 추천 탭에서는 `처음부터 함께 성장!` 섹션에 chevron을 표시하고, 클릭 시 신규 콘텐츠 전체보기 화면에 `type = FIRST_AUDIO_CONTENT`로 진입한다.
- 콘텐츠 추천 탭에서는 아래 섹션에 chevron을 표시한다.
- `오직 보이스온에서만!`
- `새로 올라온 오디오`
@@ -98,7 +94,6 @@
- 신규 화면은 기존 로직 수정이 아닌 신규 `Activity`, `ViewModel`, API, Repository, DTO, adapter/helper로 구현한다면 `kr.co.vividnext.sodalive.v2` 패키지 하위에 작성한다.
- 화면 title bar 제목은 진입 type에 따라 아래처럼 표시한다.
- `NEW_AND_HOT_AUDIO`: `New&Hot`
- `FIRST_AUDIO_CONTENT`: `처음부터 함께 성장!`
- title bar는 검은 배경, 좌측 back chevron, 22sp bold 제목 구조를 따른다.
- 콘텐츠 목록은 Figma node `482:15105` 기준으로 2열 오디오 카드 그리드로 표시한다.
- 카드에는 썸네일, 제목, 크리에이터 닉네임, 무료/포인트/FIRST/오리지널/성인 태그를 응답 값에 따라 표시한다.
@@ -152,8 +147,7 @@ data class ContentOverviewPageResponse(
)
enum class ContentOverviewType {
NEW_AND_HOT_AUDIO,
FIRST_AUDIO_CONTENT
NEW_AND_HOT_AUDIO
}
data class ContentOverviewItemResponse(
@@ -213,8 +207,6 @@ data class ContentOverviewItemResponse(
- 추천 탭의 가로 오디오 카드 바인딩 패턴을 참고할 수 있다.
- `kr.co.vividnext.sodalive.v2.main.content.ui.ContentNewAndHotAdapter`
- `New&Hot` 섹션의 리스트형 표현에는 이미 사용 중이지만, 신규 전체보기 2열 grid에는 직접 재사용보다 item mapping/tag binding 참고 후보이다.
- `kr.co.vividnext.sodalive.v2.main.home.ui.HomeFirstAudioAdapter`
-`처음부터 함께 성장!` 섹션의 FIRST/point/free 태그 바인딩 패턴 참고 후보이다.
- `kr.co.vividnext.sodalive.v2.main.content.ContentAllTabViewModel`
- page/size/hasNext 기반 페이징 상태 관리 패턴 참고 후보이다.
- `kr.co.vividnext.sodalive.v2.main.content.data.MainContentAllTabApi`
@@ -236,7 +228,6 @@ data class ContentOverviewItemResponse(
---
## 10. Metrics
- 홈 추천 탭 `처음부터 함께 성장!` chevron 클릭 수.
- 콘텐츠 추천 탭 섹션별 chevron 클릭 수.
- 신규 콘텐츠 전체보기 화면 진입 수.
- 신규 콘텐츠 전체보기 화면의 다음 페이지 로드 성공/실패 수.
@@ -246,3 +237,7 @@ data class ContentOverviewItemResponse(
## 11. Open Questions
- 기존 `ContentMainFragment` 상태를 외부에서 특정 내부 탭/카테고리/정렬로 열기 위한 public navigation contract가 충분한지 구현 계획에서 확인해야 한다.
### 2026-06-29 변경: 홈 `처음부터 함께 성장!` 전체보기 제거
- 홈 추천 탭의 `처음부터 함께 성장!` 섹션 제거에 따라 홈에서 `ContentOverviewType.FIRST_AUDIO_CONTENT`로 진입하는 경로를 제거한다.
- 신규 콘텐츠 전체보기 화면의 현재 진입 type은 콘텐츠 추천 탭 `New&Hot``NEW_AND_HOT_AUDIO`만 유지한다.