43 lines
3.0 KiB
Markdown
43 lines
3.0 KiB
Markdown
---
|
|
phase: implementation
|
|
agent: implementation-advisor
|
|
agent_version: 1
|
|
generated_at: 2026-06-24T12:30:00+09:00
|
|
workstream: W2-6-시상 집계/결과
|
|
---
|
|
|
|
# 파일 소유권 맵 — W2-6 시상 집계
|
|
|
|
## 설계 대비 구체화 결정 (concern 해소)
|
|
- **JamVoteCountMapper 신규 생성 안 함**(설계 concern "JamVoteCountMapper vs W2-5 JamVotesMapper 재사용 — 구현 시 협의").
|
|
기존 `JamVotesMapper.listCountsByJam(jamId)`(W2-5, 이미 `SELECT game_id AS "gameId", COUNT(*) AS "voteCount" ... GROUP BY game_id ORDER BY COUNT(*) DESC, game_id ASC` + 큰따옴표 alias + @MockBean 등록됨)를 POPULAR 트랙 소비로 **재사용**.
|
|
→ 신규 매퍼 2개(JamAwardsMapper/JamReviewRatingMapper), 신규 @MockBean 2건.
|
|
- **JamScoreStatsMapper.listStatsByJam(jamId)** 기존(W2-4, `weighted_total DESC NULLS LAST` 큰따옴표 alias) 재사용 — JUDGE 트랙. 신규 매퍼 0.
|
|
- **JamReviewRatingRow/JamVoteCountRow POJO 생성 안 함** — 집계 소비는 기존 패턴(JamScoreStatsMapper/JamVotesMapper)대로 `List<Map<String,Object>>`. inflate 방지.
|
|
|
|
## 의존 순서 (배치)
|
|
1. **배치1 (AW-DOMAIN 기반 — 의존 없음, 병렬)**: JamAwardData POJO, AwardTrack enum, JamReviewRatingMapper(독립 신규 매퍼)
|
|
2. **배치2 (advisor 직접 — 의존 코어)**: JamAwardsMapper(JamAwardData 의존), RankScores 유틸, JamAwardService(전 의존)
|
|
3. **배치3 (컨트롤러/JSP/수정/테스트 — 병렬)**: JamAwardAdminController, JamAwardController, jam-results.jsp, JamController(수정), jam-detail.jsp(수정), BibimbapApplicationTests(수정), 3 테스트
|
|
|
|
| 파일 | 담당 | id | 변경 | 의존 |
|
|
|---|---|---|---|---|
|
|
| data/JamAwardData.java | code-writer | w-001 | create | - |
|
|
| jam/AwardTrack.java | code-writer | w-002 | create | - |
|
|
| mapper/JamReviewRatingMapper.java | code-writer | w-003 | create | - |
|
|
| mapper/JamAwardsMapper.java | advisor 직접 | - | create | w-001 |
|
|
| jam/RankScores.java | advisor 직접 | - | create | - |
|
|
| jam/JamAwardService.java | advisor 직접 | - | create | 전 |
|
|
| controller/JamAwardAdminController.java | code-writer | w-004 | create | service |
|
|
| controller/JamAwardController.java | code-writer | w-005 | create | mapper |
|
|
| WEB-INF/views/jam-results.jsp | code-writer | w-006 | create | - |
|
|
| controller/JamController.java | code-writer | w-007 | modify | mapper |
|
|
| WEB-INF/views/jam-detail.jsp | code-writer | w-008 | modify | - |
|
|
| test/BibimbapApplicationTests.java | code-writer | w-009 | modify | mappers |
|
|
| test/jam/JamAwardServiceTest.java | code-writer | w-010 | create | service |
|
|
| test/controller/JamAwardAdminControllerTest.java | code-writer | w-011 | create | adminctrl |
|
|
| test/controller/JamAwardControllerTest.java | code-writer | w-012 | create | pubctrl |
|
|
|
|
불변식: 동일 파일 1 worker. 의존 코어(JamAwardsMapper/RankScores/JamAwardService)는 상호 강결합 + 정규화 알고리즘 정밀도가 높아 advisor 직접 작성(병렬 이득 없음·실수 비용 큼). 나머지 12 파일은 의존 해소 후 병렬 worker.
|
|
</content>
|