bibimbap/docs
이정수 fa6a301fb5 fix(game): 좋아요 서버 영속화 — 상세 토글이 explore 카운트에 반영되도록
좋아요가 서버에 저장되지 않고 브라우저 localStorage 에만 토글되어
explore/상세가 읽는 games.like_count 컬럼이 갱신되지 않던 버그 수정.

- POST /game/{id}/like 토글 엔드포인트 신설 (CSRF→로그인→존재 게이트, @Transactional)
- GameLikesMapper: findByGameAndUser/deleteByGameAndUser 추가 (addGameLike 재사용)
- GamesMapper: incrementLikeCount/decrementLikeCount(GREATEST 0)/getLikeCount 추가
- game_likes row 변경 + games.like_count ±1 단일 트랜잭션 동기화
- 상세 addGameModel 이 로그인 사용자 기존 좋아요 여부(liked) 모델 주입
- game-detail.jsp 좋아요 버튼을 localStorage→fetch POST 로 교체
- explore 5개 조회 쿼리 무변경 (컬럼 갱신으로 자동 반영)
- game_likes UNIQUE(game_id,user_key) schema 반영 + 마이그레이션 작성 (DB 미적용)
- GameLikeControllerTest 7건 (회귀 AC-1 포함)

검증: L1 PASS (컴파일 + 7/7 + 컨트롤러 회귀 219/219). L2(dev DB) skip.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
2026-06-29 16:09:54 +09:00
..
adr fix: harden auth csrf handling 2026-06-16 15:38:44 +09:00
analysis fix(game): 좋아요 서버 영속화 — 상세 토글이 explore 카운트에 반영되도록 2026-06-29 16:09:54 +09:00
architecture fix: harden auth csrf handling 2026-06-16 15:38:44 +09:00
backlog docs: ATP 문서 체계 도입 및 프로젝트 종합 분석 추가 2026-06-16 12:18:56 +09:00
changes fix(game): 좋아요 서버 영속화 — 상세 토글이 explore 카운트에 반영되도록 2026-06-29 16:09:54 +09:00
contracts docs: ATP 문서 체계 도입 및 프로젝트 종합 분석 추가 2026-06-16 12:18:56 +09:00
development docs(dev): local-dev-setup 가이드 추가 (93525cb 보완) 2026-06-29 15:06:27 +09:00
domain docs: ATP 문서 체계 도입 및 프로젝트 종합 분석 추가 2026-06-16 12:18:56 +09:00
feedback docs: ATP 문서 체계 도입 및 프로젝트 종합 분석 추가 2026-06-16 12:18:56 +09:00
graph chore(graph): graphify src scope 재생성 메타 갱신 (305cc73→9041bb7) 2026-06-29 15:01:27 +09:00
issues docs: ATP 문서 체계 도입 및 프로젝트 종합 분석 추가 2026-06-16 12:18:56 +09:00
maintenance fix(game): 좋아요 서버 영속화 — 상세 토글이 explore 카운트에 반영되도록 2026-06-29 16:09:54 +09:00
security fix(game): 좋아요 서버 영속화 — 상세 토글이 explore 카운트에 반영되도록 2026-06-29 16:09:54 +09:00
usage docs(dev): 검증 회고 교훈 반영 — DB-방언 계약 L2 + stale 빌드 가드 2026-06-22 17:58:47 +09:00
work-log docs(w3-w4): W3(잔여)+W4 변경이력·구현추적 + 회고 교훈 4건 반영 2026-06-29 12:54:50 +09:00
badge-ddl.sql feat(badge): W4 유저 배지/평판 — 리뷰어/테크니션 자동·수동 하이브리드 부여 + 평판 이벤트 감사 2026-06-29 12:34:23 +09:00
board-ddl.sql feat(board): W3-3 포스팅 보드 — 공지/블로그 + OG 미리보기(SSRF 방어) + 유니티 피드 감시 2026-06-29 11:46:28 +09:00
db-update-query-generator.md Merge PR #1 (docs/project-analysis): ATP 문서 체계 + 프로젝트 종합 분석 2026-06-17 10:00:39 +09:00
game-reviews-ddl.sql fix(reviews): game_review_stats 집계 버그 2건 수정 + W3-2 L3 검증 완료 2026-06-22 17:54:19 +09:00
game-upload-ddl.sql feat(upload): W3-5 Unity WebGL 업로드 보안 보강 — zip-slip/심링크/zip bomb/포맷검증/권한게이트/자산 생명주기/감사 2026-06-29 12:10:55 +09:00
games-hub-ddl.sql feat(hub): W3-4 메인 허브 keyset 페이징 + 진행중 잼 배너 (단계1+2 통합) 2026-06-29 10:59:17 +09:00
index.md fix: harden auth csrf handling 2026-06-16 15:38:44 +09:00
jam-ddl.sql feat(jam): W2-1 게임잼 엔티티/라이프사이클 — jams/entries/teams + GAME_JAM_MANAGE enforcement + 공개 목록·상세 2026-06-24 10:50:12 +09:00
jam-eval-ddl.sql feat(jam): W2-3 잼 평가 동결 스키마 — jam_criteria/scores/votes/awards + jam_score_stats VIEW (⚠️클러스터 단일권위) 2026-06-24 11:33:19 +09:00
jam-judge-ddl.sql feat(jam): W2-2 심사위원 역할 — jam_judges + JamRoleGate(잼 스코프 게이트) + 자기출품 충돌 2026-06-24 11:15:22 +09:00
profile-management-prompt.md Prepare public repository 2026-05-03 16:13:32 +09:00
rbac-ddl.sql feat(rbac): W1 거버넌스/RBAC — 관리자 콘솔·권한 게이트·세션 epoch 전파 2026-06-23 10:38:57 +09:00
recruit-posts-ddl.sql 페이지 개선 2026-06-13 15:05:12 +09:00
security-hardening-ddl.sql 페이지 개선2 2026-06-13 15:05:18 +09:00
tag-ddl.sql feat(search): W3-1 게임 태그 + 검색 확장 — tags/game_tags/jam_tags/game_views + 다중태그·정렬키·방문수·리뷰 정렬 2026-06-29 10:44:23 +09:00
user-signup-schema.md Merge PR #1 (docs/project-analysis): ATP 문서 체계 + 프로젝트 종합 분석 2026-06-17 10:00:39 +09:00