Files
sodalive-backend-spring-boot/docs/20260612_크리에이터_채널_홈_API/reviews/phase-6-review.md

5.5 KiB

Phase 6 코드 리뷰 보고서

1. 리뷰 정보

항목 내용
리뷰 대상 Phase 6 / Task 6.1~6.3
기준 commit 또는 working tree f1c2e6c5 + 2026-07-30 working tree
리뷰 일자 2026-07-30
리뷰어 Codex
기준 문서 prd.md, plan-task.md, 홈 API 구조 정렬 후속 문서, docs/agent-guides/*.md
리뷰 상태 판정 완료

2. 목적과 범위

  • Task 6.1이 요구한 “PRD의 홈 전체 섹션이 한 요청에서 조립” 증거와 실제 테스트 계층/빈 경로를 대조했다.
  • 추천 enum 회귀와 기존 검증 기록의 존재도 정적 확인했다.
  • 사용자 지시에 따라 컴파일·테스트는 실행하지 않았다.

3. 검토 근거

  • CreatorChannelHomeControllerTest.kt:46-52@WebMvcTest와 mock CreatorChannelHomeFacade를 사용한다.
  • DefaultCreatorChannelHomeQueryRepositoryTest.kt:178-275shouldFindCreatorChannelHomeIntegratedSections는 동일 fixture로 repository method를 각각 직접 호출한다.
  • 해당 repository 통합 시나리오는 후속 구조 정렬에서 공용 커뮤니티 service로 이동한 notices/communities를 포함하지 않는다.
  • CreatorChannelHomeEndToEndTest 또는 같은 역할의 실제 홈 endpoint 통합 테스트는 존재하지 않는다.

4. 발견 사항

ID 심각도 상태 제목 소유 Task 후속 goal
REV-P6-001 Low 완료 한 HTTP 요청의 홈 전체 조립을 증명하는 통합 테스트가 없다 Task 6.4 P6-R1

REV-P6-001 — 한 HTTP 요청의 홈 전체 조립을 증명하는 통합 테스트가 없다

  • 심각도: Low
  • 상태: 확정
  • 관련 요구사항: Task 6.1 기대 결과
  • 소유 Task: Task 6.4 / P6-R1

관찰 내용

현재 증거는 “mock facade가 만든 domain을 controller가 JSON으로 변환”하는 테스트와 “한 fixture에서 repository method를 각각 호출”하는 테스트로 분리되어 있다. 따라서 controller→facade→service→repository/공용 서비스→JSON이 한 요청에서 연결되는지는 직접 증명되지 않는다.

영향

개별 계층 테스트가 통과해도 bean wiring, facade의 커뮤니티 조회 호출, 시간/context 전달, 전체 mapping 중 누락을 한 번에 검출하지 못한다. 이는 실행 결함 확정이 아니라 Task 6.1 완료 증거의 공백이다.

권장 조치

실제 Spring bean과 DB fixture를 사용해 인증된 단일 홈 요청을 보내고, 13개 상위 섹션의 대표 필드를 검증하는 통합 테스트를 추가한다.

판정 기록

  • 2026-07-30 — 테스트 annotation, mock 경계, repository 호출 범위, E2E 파일 부재를 정적 대조해 확정.
  • 2026-07-30 — CreatorChannelHomeEndToEndTest를 추가해 실제 bean 단일 HTTP 요청으로 전체 대표 섹션 JSON을 검증하고 완료.

5. plan·goal 전환

  • plan-task.md Phase 6에 Task 6.4 / P6-R1을 추가했다.
  • 통합 테스트가 바로 통과하면 생산 코드는 변경하지 않도록 범위를 제한했다.

6. 리뷰 종료 판정

판정 항목 결과 근거
리뷰 범위 전체 확인 충족 controller·repository 통합 증거 대조
후보 항목 판정 완료 충족 REV-P6-001 확정
확정 항목 plan 반영 충족 Task 6.4 / P6-R1
검증 명령과 결과 기록 충족 정적 검토만 실행, 테스트 미실행 사유 기록

최종 결론: 수정 goal 완료.

남은 항목: 없음.

7. 2차 리뷰 — 2026-07-30

  • 대상: 신규 CreatorChannelHomeEndToEndTest가 실제 bean 경로와 13개 섹션의 대표 응답을 연결하는지 확인했다.
  • 방법: fixture 생성 시각, HTTP 호출, JSON assertion과 기존 focused test 경계를 정적 대조했다. 사용자 지시에 따라 테스트·컴파일·ktlint은 실행하지 않았다.
  • 결과: Phase 6 자체의 신규 확정 발견 사항은 없다. E2E가 JVM 기본 timezone과 같은 LocalDateTime.now()를 사용해 UTC 오류를 가릴 수 있는 점은 원인 소유 Phase 4의 REV-P4-003 / Task 4.5로 전환했으며 중복 Task를 만들지 않았다.
  • 남은 항목: Phase 6 없음. Task 4.5 완료 후 E2E 직접 영향만 재확인한다.

8. 3차 리뷰 — 2026-07-31

  • 대상: 실제 controller→facade→service→repository/공용 community 경로의 단일 HTTP 요청 통합 증거와 추천 enum 회귀 범위.
  • 방법: CreatorChannelHomeEndToEndTest의 UTC fixture·대표 13개 섹션 assertion, repository/service/controller 테스트 경계와 Task 6.1~6.4를 정적 대조했다. 사용자 지시에 따라 테스트·컴파일·ktlint은 실행하지 않았다.
  • 결과: REV-P6-001과 Phase 4 UTC 후속 수정 반영을 포함해 신규 확정 발견 사항 없음. Phase 6 후속 Task를 추가하지 않는다.
  • 남은 항목: 없음.

9. 4차 리뷰 — 2026-07-31

  • 대상: 단일 인증 HTTP 요청의 실제 bean 경로, UTC fixture, 홈 13개 섹션 대표 assertion과 추천 enum 회귀 증거.
  • 방법: E2E·repository·service·controller 테스트의 계층 경계와 현재 생산 코드 wiring을 Task 6.1~6.4와 정적 대조했다. 사용자 지시에 따라 테스트·컴파일·ktlint은 실행하지 않았다.
  • 결과: 기존 REV-P6-001 및 UTC 보정이 유지되며 신규 확정 발견 사항 없음. Phase 6 후속 Task를 추가하지 않는다.
  • 남은 항목: 없음.