--- phase: implementation agent: implementation-advisor agent_version: 1 generated_at: 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자 이상으로 갱신 (행위 검증 보존).