From 998dd103114d7fd420d31e18698d6c11d104dcb5 Mon Sep 17 00:00:00 2001 From: Klaus Date: Sat, 20 Jun 2026 06:23:50 +0900 Subject: [PATCH] =?UTF-8?q?docs(creator-channel):=20=EC=8B=9C=EB=A6=AC?= =?UTF-8?q?=EC=A6=88=20=ED=83=AD=20Phase=205=20=EA=B8=B0=EB=A1=9D=EC=9D=84?= =?UTF-8?q?=20=EA=B0=B1=EC=8B=A0=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../plan-task.md | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/docs/20260620_크리에이터_채널_시리즈_탭_API/plan-task.md b/docs/20260620_크리에이터_채널_시리즈_탭_API/plan-task.md index 23443b90..7fa91c95 100644 --- a/docs/20260620_크리에이터_채널_시리즈_탭_API/plan-task.md +++ b/docs/20260620_크리에이터_채널_시리즈_탭_API/plan-task.md @@ -423,7 +423,7 @@ data class CreatorChannelSeriesRecord( ### Phase 5: API 통합 검증 -- [ ] **Task 5.1: End-to-End 테스트 추가** +- [x] **Task 5.1: End-to-End 테스트 추가** - Files: - Create: `src/test/kotlin/kr/co/vividnext/sodalive/v2/api/creator/channel/series/adapter/in/web/CreatorChannelSeriesEndToEndTest.kt` - Verify: `src/main/kotlin/kr/co/vividnext/sodalive/v2/api/creator/channel/series/adapter/in/web/CreatorChannelSeriesController.kt` @@ -437,8 +437,12 @@ data class CreatorChannelSeriesRecord( - GREEN: controller, facade, service, repository wiring 누락을 보완한다. - 통과 확인: `./gradlew test --tests kr.co.vividnext.sodalive.v2.api.creator.channel.series.adapter.in.web.CreatorChannelSeriesEndToEndTest` - REFACTOR: API 응답 필드명이 PRD와 다르면 PRD 또는 코드를 먼저 맞춘 뒤 테스트를 갱신한다. + - 구현 기록(2026-06-20): `CreatorChannelSeriesEndToEndTest`를 추가해 실제 Spring context에서 controller-service-repository 경로를 검증했다. + - 검증 시나리오: 인증 회원의 전체 응답 필드, invalid `sort`/음수 `page`/작은 `size` fallback, 비크리에이터 구매 통계 정수 비율, creator 본인 구매 통계 `null` 응답을 확인했다. + - RED/GREEN: 신규 E2E 테스트 파일 추가 후 `./gradlew test --tests kr.co.vividnext.sodalive.v2.api.creator.channel.series.adapter.in.web.CreatorChannelSeriesEndToEndTest` 실행 결과 기존 wiring이 계약을 만족해 `BUILD SUCCESSFUL`을 확인했다. + - 보완: controller/facade/service/repository production code 수정은 필요하지 않았다. -- [ ] **Task 5.2: 회귀 검증과 문서 검증 기록** +- [x] **Task 5.2: 회귀 검증과 문서 검증 기록** - Files: - Modify: `docs/20260620_크리에이터_채널_시리즈_탭_API/plan-task.md` - Verify: `docs/20260620_크리에이터_채널_시리즈_탭_API/prd.md` @@ -454,6 +458,18 @@ data class CreatorChannelSeriesRecord( - 통과 확인: `./gradlew test` - REFACTOR: Kotlin 포맷 검증은 `./gradlew ktlintCheck`로 확인한다. - 문서 기록: 구현 완료 시 각 task 아래에 실행 명령, 성공/실패 결과, 수정 내용을 한국어로 누적 기록한다. + - 검증 기록(2026-06-20): 문서 계약 검색과 Phase 5 focused 회귀를 실행했다. + - 문서 계약 검색: `rg -n "CreatorChannelHome.kt에 있는 CreatorChannelSeries|purchasedPaidContentRate|GET /api/v2/creator-channels/.*/series|PRICE_LOW|RANDOM" docs/20260620_크리에이터_채널_시리즈_탭_API` 실행으로 PRD/plan의 endpoint, 구매 통계, `PRICE_LOW`, `RANDOM` 계약 기재를 확인했다. + - 통과: `./gradlew test --tests kr.co.vividnext.sodalive.v2.creator.channel.series.domain.CreatorChannelSeriesQueryPolicyTest` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. + - 통과: `./gradlew test --tests kr.co.vividnext.sodalive.v2.creator.channel.series.application.CreatorChannelSeriesQueryServiceTest` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. + - 통과: `./gradlew test --tests kr.co.vividnext.sodalive.v2.creator.channel.series.adapter.out.persistence.DefaultCreatorChannelSeriesQueryRepositoryTest`는 병렬 실행 중 XML 결과 파일 동시 쓰기 실패가 발생했으나, 동일 명령 순차 재실행 결과 `BUILD SUCCESSFUL`을 확인했다. + - 통과: `./gradlew test --tests kr.co.vividnext.sodalive.v2.api.creator.channel.series.adapter.in.web.CreatorChannelSeriesControllerTest` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. + - 통과: `./gradlew test --tests kr.co.vividnext.sodalive.v2.api.creator.channel.series.adapter.in.web.CreatorChannelSeriesEndToEndTest` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. + - OOM 원인 보완: 기본 `./gradlew test`에서 test worker가 `-Xmx512m`로 실행되어 full Spring context 누적 시 `Gradle Test Executor`의 `Java heap space` 실패가 발생했다. `build.gradle.kts`의 `tasks.withType`에 `maxHeapSize = "1536m"`를 명시해 test worker heap을 1.5g로 고정했다. + - context 재사용 보완: `CreatorChannelSeriesEndToEndTest`의 H2 datasource URL을 기존 creator-channel E2E와 같은 `creator-channel-live-e2e`로 맞춰 `audio/live/series` E2E가 Spring context를 공유하도록 했다. + - 통과: `./gradlew test --tests kr.co.vividnext.sodalive.v2.api.creator.channel.audio.adapter.in.web.CreatorChannelAudioEndToEndTest --tests kr.co.vividnext.sodalive.v2.api.creator.channel.live.adapter.in.web.CreatorChannelLiveEndToEndTest --tests kr.co.vividnext.sodalive.v2.api.creator.channel.series.adapter.in.web.CreatorChannelSeriesEndToEndTest --info` 실행 결과 test worker가 `-Xmx1536m`로 실행되고 `HikariPool-1`만 생성되는 것을 확인했으며 `BUILD SUCCESSFUL`을 확인했다. + - 통과: 기본 `./gradlew test` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. + - 통과: `./gradlew ktlintCheck` 실행 결과 `BUILD SUCCESSFUL`을 확인했다. ---