bibimbap/.atp/work-session/20260622-092800/implementation/ownership.md

3.5 KiB

phase agent agent_version generated_at
implementation implementation-advisor 1 2026-06-22T10:00:00+09:00

파일 소유권 맵 (W3-2 댓글/리뷰 고도화)

설계 §1 파일 영향 맵 기준. 동일 파일 = 정확히 1 worker. 상호의존 파일은 단일 worker 묶음.

파일 담당 worker worker id 변경 유형 의존
docs/game-reviews-ddl.sql migration-writer W-DDL append+주석갱신 -
db/schema.sql migration-writer W-DDL 동기화+주석갱신 -
src/.../util/TextNormalizer.java code-writer W-BE create -
src/.../data/ReviewAxisRow.java code-writer W-BE create -
src/.../mapper/GameReviewAxesMapper.java code-writer W-BE create ReviewAxisRow
src/.../mapper/GameReviewStatsMapper.java code-writer W-BE create -
src/.../data/GameCommentData.java code-writer W-BE modify -
src/.../data/GameReviewData.java code-writer W-BE modify -
src/.../mapper/GameCommentsMapper.java code-writer W-BE modify GameCommentData
src/.../mapper/GameReviewsMapper.java code-writer W-BE modify GameReviewData
src/.../controller/api/GameCommentController.java code-writer W-BE modify 위 매퍼/data/util
src/.../controller/api/GameReviewController.java code-writer W-BE modify 위 매퍼/data/util
src/main/webapp/WEB-INF/views/game-detail.jsp code-writer W-FE modify (BE API 계약 — 설계 §3 고정)
src/test/.../GameCommentControllerTest.java code-writer W-TEST modify W-BE 시그니처
src/test/.../GameReviewControllerTest.java code-writer W-TEST modify W-BE 시그니처
src/test/.../BibimbapApplicationTests.java code-writer W-TEST modify 신규 @Mapper

불변식 점검

  • W-BE 가 매퍼/data/util/컨트롤러 11파일 동시 소유 (상호 시그니처 의존 → 단일 worker 순차).
  • W-FE jsp 단독 — BE 와 파일 충돌 0. API 계약은 설계 §3 으로 고정되어 BE 코드 미참조 가능 → 병렬 가능.
  • W-DDL 2파일 독립 — 코드 무참조 → 선행 병렬 가능.
  • W-TEST 는 W-BE 시그니처 확정 필요 → W-BE 완료 후 순차 spawn.

spawn 순서

  1. wave A (병렬): W-DDL, W-FE, W-BE ← 상호 파일 충돌 0
  2. wave B (순차): W-TEST ← W-BE 완료 후 (컨트롤러 시그니처 의존)

planned_workers: 4 (W-DDL, W-FE, W-BE, W-TEST)


파일 소유권 맵 (FIX LOOP L1 — verification RED 8건)

파일 담당 worker worker id 변경 유형 의존
src/test/.../GameReviewControllerTest.java (advisor 직접) - modify -

L1 planned_workers vs actual_workers

  • planned_workers: 1
  • actual_workers: 0 (advisor 직접)
  • 전환 사유: 파일 수 1 < 8 AND 예상 변경 줄수 ~8줄 < 500 → advisor 직접 실행 선택. 정밀 문자열 치환 8곳, worker spawn overhead 가 작업량 초과.

L1 근본 원인 (진단 결과)

  • 가설 1 (테스트 계약 미갱신) 단독 확정. 컨트롤러 버그 아님.
  • 실패 8건 전부 POST body 10자 미만 → 컨트롤러가 design.md AC-9(본문 trim 후 10자 미만 거부) 에 따라 정당하게 400 반환.
  • 가설 2(axes 바인딩) 무관: 테스트가 controller.createReview(...) 를 6개 위치 인자로 직접 호출 → MockMvc 폼바인딩 경로 미사용. 검증 순서도 design §5.3 정합 확인.
  • 수정 방향: 컨트롤러/FINAL SPEC 계약 불변. 테스트 요청 body 만 10자 이상으로 갱신 (행위 검증 보존).