---
phase: implementation
agent: implementation-advisor
agent_version: 1
generated_at: 2026-06-29T14:21:15Z
---

# 파일 소유권 맵 — W4 배지 표시면 배선

| 파일 | 담당 worker | worker id | 변경 유형 | 의존 |
|---|---|---|---|---|
| src/main/java/com/pandoli365/bibimbap/controller/WebMvcController.java | code-writer | w-001 | modify | - |
| src/main/java/com/pandoli365/bibimbap/controller/SearchController.java | code-writer | w-002 | modify | - |
| src/main/webapp/WEB-INF/views/index.jsp | code-writer | w-003 | modify | w-001,w-002 (model attr 추가 후 JSP 소비) |
| src/test/java/com/pandoli365/bibimbap/controller/WebMvcControllerTest.java | code-writer | w-004 | modify | w-001 |
| src/test/java/com/pandoli365/bibimbap/controller/SearchControllerTest.java | code-writer | w-005 | modify | w-002 |

## 비고
- w-003(index.jsp)은 w-001/w-002가 `creatorBadges` attr을 주입한 뒤 소비하므로 논리적 의존이 있으나, JSP는 런타임 렌더이므로 컴파일 의존 없음 — 병렬 spawn 허용.
- w-004/w-005(테스트)는 생성자 시그니처 변경(w-001/w-002)에 의존하므로 병렬 spawn 시 각 worker가 신규 시그니처를 설계 문서 기준으로 작성.
- BibimbapApplicationTests는 이미 UserBadgesQueryMapper @MockBean 보유 → 무변경.

## 실행 결과 (planned 5 = actual 5, advisor 직접 실행 없음)
- 5개 worker 전원 spawn·완료. 1파일=1worker 불변식 준수, 충돌 0.
- worker 공통 우려(GameData.getUserId():Long / setUserId(Long) 존재 가정) → advisor 직접 확인: GameData.java L8/L32/L36 에 `private Long userId` + getter/setter 존재. UserBadgeKeyRow.setUserId(Long)/setBadgeKey(String) 도 존재 → 우려 해소.
- 컴파일 게이트: `./mvnw -o clean test-compile -DskipTests` → BUILD SUCCESS, [ERROR] 0건. 비-deprecation WARNING 0건(잔존 WARNING 전량 기존 BibimbapApplicationTests 의 @MockBean deprecation, 본 변경 무관).
