docs(content-ranking): 랭킹 API 구현 기록을 갱신한다
This commit is contained in:
@@ -224,7 +224,7 @@ data class AudioRankingSnapshotRecord(
|
||||
|
||||
### Phase 1: API 계약과 DTO
|
||||
|
||||
- [ ] **Task 1.1: `AudioRankingType`과 응답 DTO 작성**
|
||||
- [x] **Task 1.1: `AudioRankingType`과 응답 DTO 작성**
|
||||
- Files:
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingType.kt`
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRanking.kt`
|
||||
@@ -236,7 +236,7 @@ data class AudioRankingSnapshotRecord(
|
||||
- REFACTOR: 공개 DTO가 persistence/entity를 import하지 않도록 확인한다.
|
||||
- 기대 결과: PRD의 Response data class 계약이 테스트로 고정된다.
|
||||
|
||||
- [ ] **Task 1.2: facade 변환 계층 작성**
|
||||
- [x] **Task 1.2: facade 변환 계층 작성**
|
||||
- Files:
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/api/content/ranking/application/AudioRankingFacade.kt`
|
||||
- Test: `src/test/kotlin/kr/co/vividnext/sodalive/v2/api/content/ranking/application/AudioRankingFacadeTest.kt`
|
||||
@@ -246,7 +246,7 @@ data class AudioRankingSnapshotRecord(
|
||||
- REFACTOR: facade에 점수 계산, 스냅샷 조회, fallback 로직을 두지 않는다.
|
||||
- 기대 결과: API 조립 계층과 도메인 조회 계층 의존 방향이 고정된다.
|
||||
|
||||
- [ ] **Task 1.3: 비회원 허용 controller 작성**
|
||||
- [x] **Task 1.3: 비회원 허용 controller 작성**
|
||||
- Files:
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/api/content/ranking/adapter/in/web/AudioRankingController.kt`
|
||||
- Test: `src/test/kotlin/kr/co/vividnext/sodalive/v2/api/content/ranking/adapter/in/web/AudioRankingControllerTest.kt`
|
||||
@@ -258,7 +258,7 @@ data class AudioRankingSnapshotRecord(
|
||||
|
||||
### Phase 2: 기간/노출/점수 정책
|
||||
|
||||
- [ ] **Task 2.1: KST 주간 집계 기간과 UTC 변환 정책 작성**
|
||||
- [x] **Task 2.1: KST 주간 집계 기간과 UTC 변환 정책 작성**
|
||||
- Files:
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingPeriodPolicy.kt`
|
||||
- Test: `src/test/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingPeriodPolicyTest.kt`
|
||||
@@ -268,7 +268,7 @@ data class AudioRankingSnapshotRecord(
|
||||
- REFACTOR: 서버 기본 timezone에 의존하지 않고 `ZoneId.of("Asia/Seoul")`을 명시한다.
|
||||
- 기대 결과: 모든 랭킹 타입의 집계 기준 기간이 동일하게 계산된다.
|
||||
|
||||
- [ ] **Task 2.2: 09:00 노출 전환 정책 작성**
|
||||
- [x] **Task 2.2: 09:00 노출 전환 정책 작성**
|
||||
- Files:
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingSchedulePolicy.kt`
|
||||
- Test: `src/test/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingSchedulePolicyTest.kt`
|
||||
@@ -278,7 +278,7 @@ data class AudioRankingSnapshotRecord(
|
||||
- REFACTOR: scheduler 실행 시각과 공개 노출 시각을 별도 함수로 분리한다.
|
||||
- 기대 결과: 계산 완료와 공개 노출 전환이 분리된다.
|
||||
|
||||
- [ ] **Task 2.3: 주간 인기/지금 뜨는 중 점수 정책 작성**
|
||||
- [x] **Task 2.3: 주간 인기/지금 뜨는 중 점수 정책 작성**
|
||||
- Files:
|
||||
- Create: `src/main/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingScorePolicy.kt`
|
||||
- Test: `src/test/kotlin/kr/co/vividnext/sodalive/v2/content/ranking/domain/AudioRankingScorePolicyTest.kt`
|
||||
@@ -479,3 +479,7 @@ data class AudioRankingSnapshotRecord(
|
||||
## 검증 기록
|
||||
|
||||
- 작성 시점: PRD 기반 구현 계획 문서를 신규 생성했다. 아직 구현 전이므로 task별 검증 기록은 없다.
|
||||
- 2026-06-24 Phase 1, 2 구현: `AudioRankingType`, 응답 DTO, facade, 비회원 허용 controller, KST 주간 기간 정책, 09:00 KST 노출 전환 정책, 주간 인기/지금 뜨는 중 점수 정책을 추가했다.
|
||||
- 2026-06-24 RED/GREEN: 각 task는 대상 테스트를 먼저 추가한 뒤 미구현 참조 또는 컨트롤러 미존재 실패를 확인하고 최소 구현으로 GREEN 전환했다.
|
||||
- 2026-06-24 검증: `./gradlew test --tests kr.co.vividnext.sodalive.v2.api.content.ranking.dto.AudioRankingResponseTest --tests kr.co.vividnext.sodalive.v2.api.content.ranking.application.AudioRankingFacadeTest --tests kr.co.vividnext.sodalive.v2.api.content.ranking.adapter.in.web.AudioRankingControllerTest --tests kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingPeriodPolicyTest --tests kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingSchedulePolicyTest --tests kr.co.vividnext.sodalive.v2.content.ranking.domain.AudioRankingScorePolicyTest` 통과.
|
||||
- 2026-06-24 검증: `./gradlew ktlintCheck` 통과.
|
||||
|
||||
Reference in New Issue
Block a user