- JamScoringController: 3중게이트 순서(CSRF 403 → 인증 401 → isJudge[W2-2] 403 → 잼 404 → JamEvalWindow 평가기간 422 → 출품작 404 → isOwnEntry 자기출품 422 → criterion 화이트리스트+score 검증 → UPSERT). @Transactional 원자성 - JamScoresMapper: jam_scores (심사위원,기준,평가단위) UNIQUE 상 INSERT...ON CONFLICT UPSERT(멱등). JamCriteriaMapper, JamScoreStatsMapper(jam_score_stats VIEW 소비) - §33 인용 alias: JamScoreStatsMapper camelCase 5건 전부 AS "..." (gameId/weightedTotal/simpleTotal/scoredCriteria/judgeCount) — Postgres 케이스폴딩(game_review_stats BUG-2) 회피 - JamEvalWindow 평가기간 게이트, jam-scoring.jsp. 신규 DDL 0(W2-3 동결 소비) - BibimbapApplicationTests @MockBean 3매퍼 검증: ./mvnw -o test 148/148 GREEN(신규 29: JamScoringControllerTest 19·JamEvalWindowTest 10, 회귀 0). L2 contract PASS — UPSERT ON CONFLICT 멱등·VIEW alias camelCase 보존(비인용 대조군 소문자 폴딩 재현으로 BUG-2 회피 입증)·가중집계 손계산 일치. 집합전수 AC-T1~6 PASS(정책응답 401×2/403×4/404×3/422×5/200×5). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> |
||
|---|---|---|
| .atp/work-session | ||
| .mvn/wrapper | ||
| .serena | ||
| certs | ||
| db | ||
| docs | ||
| src | ||
| .dockerignore | ||
| .env.example | ||
| .gitattributes | ||
| .gitignore | ||
| CLAUDE.md | ||
| Dockerfile | ||
| docker-compose.yml | ||
| mvnw | ||
| mvnw.cmd | ||
| pom.xml | ||