From e717a12344acf6a9b9d037c7b03c39ae91e811a8 Mon Sep 17 00:00:00 2001 From: Yu Sung Date: Sun, 12 Jul 2026 05:10:47 +0900 Subject: [PATCH] =?UTF-8?q?fix(main):=20=EB=8C=93=EA=B8=80=20=EB=A7=8E?= =?UTF-8?q?=EC=9D=80=20=EC=98=A4=EB=94=94=EC=98=A4=20=EC=A0=9C=EB=AA=A9?= =?UTF-8?q?=EC=9D=84=20=EB=B3=80=EA=B2=BD=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SodaLive/Sources/I18n/I18n.swift | 2 +- .../plan-task.md | 24 ++++++++++++------- docs/20260705_메인_콘텐츠_내부_추천_탭/prd.md | 13 +++++----- 3 files changed, 24 insertions(+), 15 deletions(-) diff --git a/SodaLive/Sources/I18n/I18n.swift b/SodaLive/Sources/I18n/I18n.swift index 9120f8eb..4adc0683 100644 --- a/SodaLive/Sources/I18n/I18n.swift +++ b/SodaLive/Sources/I18n/I18n.swift @@ -3100,7 +3100,7 @@ If you block this user, the following features will be restricted. } static var mostCommentedAudioSectionTitle: String { - pick(ko: "최근 댓글이 많은 오디오", en: "Most commented audio", ja: "最近コメントが多いオーディオ") + pick(ko: "크리에이터의 댓글 많은 오디오", en: "Most commented audio", ja: "最近コメントが多いオーディオ") } static var recommendedAudioSectionTitle: String { diff --git a/docs/20260705_메인_콘텐츠_내부_추천_탭/plan-task.md b/docs/20260705_메인_콘텐츠_내부_추천_탭/plan-task.md index c9f1af2b..74495156 100644 --- a/docs/20260705_메인_콘텐츠_내부_추천_탭/plan-task.md +++ b/docs/20260705_메인_콘텐츠_내부_추천_탭/plan-task.md @@ -16,7 +16,7 @@ - Figma 추천 시리즈: `24:6770` (이번 범위 제외) - Figma 무료 오디오: `24:6807` - Figma 포인트 오디오: `24:6813` -- Figma 최근 댓글이 많은 오디오: `24:6820` +- Figma 크리에이터의 댓글 많은 오디오: `24:6820` - Figma 키워드의 오디오: `24:6829` (이번 범위 제외) - Figma 추천 오디오: `24:6842` @@ -42,7 +42,7 @@ - PRD `7.6 제외 대상 섹션`은 Phase 11에서 검증한다. - PRD `7.7 Tag display`는 Phase 4의 `MainContentAudioTagOverlay`를 기준으로 이후 섹션에서 재사용한다. - PRD `7.8 Navigation`은 Phase 3의 배너 callback 설계, Phase 6의 original series 탭, Phase 12의 전체 라우팅 검증에서 처리한다. -- PRD `8. UX / UI Expectations` 중 `최근 댓글이 많은 오디오` 댓글 preview bubble에는 nickname을 표시하지 않는다. +- PRD `8. UX / UI Expectations` 중 `크리에이터의 댓글 많은 오디오` 댓글 preview bubble에는 nickname을 표시하지 않는다. - PRD `10. Success Criteria`는 Phase 12의 빌드 검증과 각 Phase 검증 기준으로 확인한다. - PRD `11. Open Questions`는 현재 `미결정 사항 없음`이므로 계획 문서에 구현 보류 항목을 남기지 않는다. @@ -109,7 +109,7 @@ - `SodaLive/Sources/V2/Component/AudioContentCard.swift` - `새로 올라온 오디오`, `무료 오디오`, `포인트 오디오`, `추천 오디오` 카드 후보. 태그 overlay가 없으므로 썸네일 overlay 슬롯 추가 또는 새 wrapper 컴포넌트 검토가 필요하다. - `SodaLive/Sources/V2/CreatorChannel/Components/CreatorChannelAudioContentListItem.swift` - - `New&Hot`, `최근 댓글이 많은 오디오` list row의 크기, 태그, 가격 표시 로직 참고 후보. + - `New&Hot`, `크리에이터의 댓글 많은 오디오` list row의 크기, 태그, 가격 표시 로직 참고 후보. - `SodaLive/Sources/V2/CreatorChannel/Series/Components/CreatorChannelSeriesListItem.swift` - `ic_series_original` + `img_new_only` 기반 `ONLY` 표시 참고 후보. - `SodaLive/Resources/Assets.xcassets/v2/ic_series_original.imageset` @@ -333,13 +333,13 @@ - 실행 명령: `rg "pointAudios|포인트 오디오|isPointAvailable|MainContentAudioHorizontalCardSection" SodaLive/Sources/V2/Main/Content/Recommendation SodaLive/Sources/I18n/I18n.swift` - 기대 결과: 포인트 오디오 섹션과 포인트 태그 조건이 확인된다. -### Phase 9: 최근 댓글이 많은 오디오 섹션 +### Phase 9: 크리에이터의 댓글 많은 오디오 섹션 - [x] **Task 9.1: 댓글 카드 carousel 섹션 생성** - 대상 파일: - 생성: `SodaLive/Sources/V2/Main/Content/Recommendation/Components/MainContentMostCommentedAudioSection.swift` - 작업 내용: - - Figma `24:6820`의 `최근 댓글이 많은 오디오`를 `mostCommentedAudios`로 표시한다. + - Figma `24:6820`의 `크리에이터의 댓글 많은 오디오`를 `mostCommentedAudios`로 표시한다. - 오디오 row와 댓글 preview bubble을 하나의 카드로 묶고, 카드 단위로 가로 스크롤한다. - `latestComment`를 댓글 본문으로 표시한다. - `latestCommentWriterProfileImageUrl`을 댓글 작성자 profile image로 표시한다. @@ -587,7 +587,7 @@ - `SodaLive/Sources/V2/Main/MainView.swift` - Figma node `24:6820` - 결과: - - 최근 댓글이 많은 오디오 댓글 bubble에는 nickname을 표시하지 않는 것으로 확정했다. + - 크리에이터의 댓글 많은 오디오 댓글 bubble에는 nickname을 표시하지 않는 것으로 확정했다. - `AudioBannerResponse.link`는 deep link 우선 처리 후 외부 브라우저를 여는 것으로 확정했다. - `AudioBannerResponse.seriesId`, `OriginalSeriesResponse.seriesId`는 `seriesDetail` route로 이동하는 것으로 확정했다. - 이번 작업은 문서 보완만 수행했으므로 빌드/테스트는 실행하지 않았다. @@ -598,7 +598,7 @@ - 결과: - PRD Core Requirements와 계획 Phase의 대응 관계를 추가했다. - PRD에서 해소된 Open Questions가 계획 문서에 구현 보류 항목으로 남지 않게 정리했다. - - 최근 댓글이 많은 오디오 댓글 bubble에 nickname이 없어야 한다는 검증 기준을 분리했다. + - 크리에이터의 댓글 많은 오디오 댓글 bubble에 nickname이 없어야 한다는 검증 기준을 분리했다. - 이번 작업은 문서 보완만 수행했으므로 빌드/테스트는 실행하지 않았다. - 2026-07-06 PRD 동기화 점검 후 계획 보완: - 실행/확인: @@ -624,7 +624,7 @@ - 결과: - `.content` 탭을 신규 `MainContentView`로 교체하고 고정 title bar, 내부 `추천` tab bar, 추천 body 스크롤 구조를 구현했다. - `GET /api/v2/audio/recommendations` endpoint, repository, response model, ViewModel 상태/디코딩/I18n 문구를 추가했다. - - 배너, 오직 보이스온에서만, New&Hot, 새로 올라온 오디오, 무료 오디오, 포인트 오디오, 최근 댓글이 많은 오디오, 추천 오디오 순서로 섹션을 구현했다. + - 배너, 오직 보이스온에서만, New&Hot, 새로 올라온 오디오, 무료 오디오, 포인트 오디오, 크리에이터의 댓글 많은 오디오, 추천 오디오 순서로 섹션을 구현했다. - `추천 시리즈`, `키워드의 오디오`는 구현하지 않았고, 최근 댓글 섹션에는 nickname UI를 추가하지 않았다. - `plutil`은 `OK`, `xcodebuild`는 `BUILD SUCCEEDED`로 통과했다. - 2026-07-06 오디오 card 공용 컴포넌트 정리: @@ -651,3 +651,11 @@ - 콘텐츠 탭 title bar를 `DefaultTitleBar(title: MainTab.content.title)`로 변경해 좌측에 메인 탭명 `콘텐츠`를 고정 표시하도록 반영했다. - 우측 액션은 `ic_bar_cash`, `ic_bar_search`, `ic_bar_storage` 순서로 정리하고, `ic_bar_storage`는 `MainContentView.onTapStorage`와 `MainView.handleContentStorageTap`을 통해 `.myBox(currentTab: .orderlist)`로 이동하도록 연결했다. - 홈 탭은 기존 `HomeTitleBar`와 `ic_bar_bell` 동작을 유지한다. + +- 2026-07-12 섹션 타이틀 변경 기록: + - 실행/확인: + - `SodaLive/Sources/I18n/I18n.swift` + - `docs/20260705_메인_콘텐츠_내부_추천_탭/prd.md` + - `docs/20260705_메인_콘텐츠_내부_추천_탭/plan-task.md` + - 결과: + - 요청에 따라 `최근 댓글이 많은 오디오` 섹션 타이틀을 `크리에이터의 댓글 많은 오디오`로 변경했다. diff --git a/docs/20260705_메인_콘텐츠_내부_추천_탭/prd.md b/docs/20260705_메인_콘텐츠_내부_추천_탭/prd.md index edd94f15..f5e33b39 100644 --- a/docs/20260705_메인_콘텐츠_내부_추천_탭/prd.md +++ b/docs/20260705_메인_콘텐츠_내부_추천_탭/prd.md @@ -15,7 +15,7 @@ Figma 참조: - 추천 시리즈: `24:6770` (이번 범위 제외) - 무료 오디오: `24:6807` - 포인트 오디오: `24:6813` -- 최근 댓글이 많은 오디오: `24:6820` +- 크리에이터의 댓글 많은 오디오: `24:6820` - 키워드의 오디오: `24:6829` (이번 범위 제외) - 추천 오디오: `24:6842` @@ -33,7 +33,7 @@ Figma 참조: - `banners`, `originalSeries`, `latestAudios`, `newAndHotAudios`, `freeAudios`, `pointAudios`, `mostCommentedAudios`, `recommendedAudios`를 응답 모델에 반영한다. - `오직 보이스온에서만!` 섹션에는 `originalSeries`를 사용하고, `ic_series_original` + `img_new_only` 조합으로 `ONLY` 표시를 노출한다. - `새로 올라온 오디오`, `무료 오디오`, `포인트 오디오`, `추천 오디오`는 기존 `AudioContentCard` 재사용 또는 최소 보완을 우선 검토한다. -- `New&Hot`, `최근 댓글이 많은 오디오`는 기존 `CreatorChannelAudioContentListItem`의 row/태그 표시 규칙을 참고한다. +- `New&Hot`, `크리에이터의 댓글 많은 오디오`는 기존 `CreatorChannelAudioContentListItem`의 row/태그 표시 규칙을 참고한다. - 오디오 item 탭 시 기존 content detail 진입 guard 흐름을 재사용한다. ## 4. Non-Goals @@ -57,7 +57,7 @@ Figma 참조: - 사용자는 `New&Hot` 오디오를 리스트 형태로 빠르게 훑어보고 싶다. - 사용자는 보이스온에서만 제공되는 오리지널 시리즈를 `ONLY` 표시로 구분하고 싶다. - 사용자는 무료 오디오와 포인트 사용 가능 오디오를 별도 섹션으로 탐색하고 싶다. -- 사용자는 최근 댓글이 많은 오디오와 최신 댓글 작성자 프로필을 함께 보고 싶다. +- 사용자는 크리에이터의 댓글 많은 오디오와 최신 댓글 작성자 프로필을 함께 보고 싶다. - 사용자는 추천 오디오를 2열 grid로 탐색하고 마음에 드는 콘텐츠 상세로 이동하고 싶다. ## 7. Core Requirements @@ -104,7 +104,7 @@ Swift 모델은 기존 V2 관례에 맞춰 `Decodable` 구조체로 선언한다 - 새로 올라온 오디오: `latestAudios` - 무료 오디오: `freeAudios` - 포인트 오디오: `pointAudios` -- 최근 댓글이 많은 오디오: `mostCommentedAudios` +- 크리에이터의 댓글 많은 오디오: `mostCommentedAudios` - 추천 오디오: `recommendedAudios` ### 7.6 제외 대상 섹션 @@ -137,8 +137,8 @@ Swift 모델은 기존 V2 관례에 맞춰 `Decodable` 구조체로 선언한다 - 배너는 Figma `24:6741` 기준으로 가로 carousel과 `01 / 20` page indicator를 표시한다. - 일반 오디오 카드 섹션은 가로 스크롤 카드 목록으로 표시한다. - `New&Hot`은 3개 row를 한 묶음으로 구성하고 묶음 단위로 가로 스크롤한다. -- `최근 댓글이 많은 오디오`는 오디오 row와 댓글 preview bubble을 하나의 카드로 묶어 가로 스크롤한다. -- `최근 댓글이 많은 오디오`의 댓글 preview bubble에는 nickname을 표시하지 않는다. Figma `24:6820` 기준으로 `latestCommentWriterProfileImageUrl`과 `latestComment` 댓글 텍스트 영역만 사용한다. +- `크리에이터의 댓글 많은 오디오`는 오디오 row와 댓글 preview bubble을 하나의 카드로 묶어 가로 스크롤한다. +- `크리에이터의 댓글 많은 오디오`의 댓글 preview bubble에는 nickname을 표시하지 않는다. Figma `24:6820` 기준으로 `latestCommentWriterProfileImageUrl`과 `latestComment` 댓글 텍스트 영역만 사용한다. - `추천 오디오`는 2열 grid로 표시한다. - 텍스트가 길면 한 줄 또는 Figma 기준 line limit로 말줄임 처리한다. - 카드/row의 루트 레이아웃은 가능한 부모 width, grid column, aspect ratio 기반으로 구성한다. @@ -176,3 +176,4 @@ Swift 모델은 기존 V2 관례에 맞춰 `Decodable` 구조체로 선언한다 - 2026-07-05: 최초 문서 작성 시 `plan-task.md`만 작성되어 신규 기능 문서 정책과 맞지 않았다. 본 PRD를 추가해 정책 누락을 보완한다. - 2026-07-05: 사용자 확인으로 댓글 preview bubble에는 nickname을 표시하지 않고, 배너 `link`는 deep link 우선 후 외부 브라우저로 열며, `seriesId`는 `seriesDetail` route로 이동하도록 확정했다. - 2026-07-08: Figma `24:6738` 기준으로 콘텐츠 탭 title bar가 홈 탭 로고/bell 구성이 아니라 좌측 고정 title `콘텐츠`와 우측 `ic_bar_cash`/`ic_bar_search`/`ic_bar_storage` 구성을 사용하도록 요구사항을 보완했다. +- 2026-07-12: 요청에 따라 `최근 댓글이 많은 오디오` 섹션 타이틀을 `크리에이터의 댓글 많은 오디오`로 변경했다.