Files
sodalive-backend-spring-boot/docs/20260625_메인_홈_팔로잉_탭_API/reviews/phase-2-review.md

2.7 KiB

Phase 2 코드 리뷰 보고서

1. 리뷰 정보

항목 내용
리뷰 대상 Phase 2 / Task 2.1~2.2
기준 commit 또는 working tree e6f56f24 + 2026-07-30 working tree
리뷰 일자 2026-07-30
리뷰어 Codex
기준 문서 prd.md, plan-task.md, create-home-following-news-inbox-table.sql
리뷰 상태 판정 완료

2. 목적과 범위

  • inbox entity/JPA repository/adapter와 MySQL DDL의 컬럼·유니크 키·인덱스·비활성화 정책을 정적으로 대조했다.
  • 중복 충돌 retry, 활성 follower 조회, 테스트 격리와 기존 통합 테스트 범위를 확인했다.
  • 사용자의 지시에 따라 컴파일과 테스트는 실행하지 않았다.

3. 검토 근거

  • entity와 DDL은 member_id/news_type/source_key 유니크 정책, timestamp, 길이, 활성 상태 컬럼이 일치한다.
  • adapter는 입력 중복 제거 후 기존 수신 회원을 일괄 조회하고 saveAll/flush하며, unique 충돌 시 새 트랜잭션으로 한 번 재시도한다.
  • 언팔로우 비활성화 쿼리와 활성 follower 조회 쿼리는 계획의 키 조건을 사용한다.
  • 통합 테스트는 실제 unique 충돌 후 트랜잭션 사용 가능 여부, 비활성화, 활성 follower 조회를 포함한다.

4. 발견 사항

확정 발견 사항 없음.

5. plan·goal 전환

전환 항목 없음.

6. 리뷰 종료 판정

판정 항목 결과 근거
리뷰 범위 전체 확인 충족 entity/repository/adapter/DDL/test 정적 대조
후보 항목 판정 완료 충족 후보 없음
확정 항목 plan 반영 해당 없음 확정 발견 사항 없음
검증 명령과 결과 기록 충족 테스트 미실행 사유 기록

최종 결론: 확정 발견 사항 없음.

남은 항목: 없음.

7. 3차 정적 리뷰 — 2026-07-30

  • inbox DDL, Entity, JPA adapter의 중복 방지·retry·비활성화 계약을 현재 working tree 기준으로 다시 대조했다.
  • 컴파일과 테스트는 사용자 지시에 따라 실행하지 않았다.
  • 신규 확정 발견 사항 없음. 기존 Phase 2 완료 판정을 유지한다.

8. 4차 정적 리뷰 — 2026-07-30

  • DDL·Entity의 컬럼 길이, timestamp, unique/index 정책과 adapter의 중복 제거·충돌 재시도·비활성화 동작을 다시 대조했다.
  • 활성 follower 조회의 잠금이 Phase 4 팔로우 상태 변경 경계와 연결되고 관련 persistence 테스트가 이를 고정하는지 정적으로 확인했다.
  • 컴파일과 테스트는 사용자 지시에 따라 실행하지 않았다.
  • 신규 확정 발견 사항 없음. 기존 Phase 2 완료 판정을 유지한다.