docs(game): 좋아요 실환경 스모크 PASS 반영
사용자 검증: 로그인 좋아요 클릭 → 탐색 목록 카운트 반영 확인(docker compose dev). changes/security 체크리스트의 "실환경 스모크 미수행" → 완료로 갱신. 잔여: game_likes UNIQUE 마이그레이션 운영 적용(사용자 확인 게이트). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01K3FeMrbtxfTScjrwUukyHD
This commit is contained in:
parent
c7ea189c85
commit
ee9487e118
|
|
@ -7,7 +7,8 @@ verified_by_me:
|
|||
code_change: '없음 (docs-only) — verification/graph-refresh 비해당'
|
||||
doc_change: 'docs/development/local-dev-setup.md 에 "코드·JSP 변경 후 재빌드·재시작" 함정 섹션 추가'
|
||||
needs_user_verification:
|
||||
- '앱 재배포 완료(orchestrator 수행, 신 PID 99638 라이브). 사용자 최종 스모크: 테스트계정 로그인 → 더미 게임 상세 좋아요 → 새로고침·탐색 목록에서 카운트 유지 확인. 미로그인 클릭은 이제 401(정상).'
|
||||
- '[완료 2026-06-29] 실환경 스모크 PASS — 사용자가 로그인 후 더미 게임 좋아요 클릭 → 탐색 목록 카운트 반영 확인. (docker compose dev override 환경)'
|
||||
- '(잔여) game_likes UNIQUE 마이그레이션 운영 적용 — 중복 점검 후, DB 스키마 변경이라 사용자 확인 게이트.'
|
||||
retrospective:
|
||||
lesson: 'handoff-committed-code-needs-rebuild-restart-step (memory 기록 + 가이드 docs-sync)'
|
||||
signal_source: negative
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
# 2026-06-29 게임 "좋아요" 서버 영속화
|
||||
|
||||
세션: `20260629-151216` · 검증: L1 PASS (L2 dev DB skip)
|
||||
세션: `20260629-151216` (구현) · `20260629-171042` (배포·실환경 검증) · 검증: L1 PASS + 실환경 스모크 PASS (2026-06-29, docker compose dev) · L2 dev DB skip
|
||||
|
||||
## 한 줄 요약
|
||||
|
||||
|
|
@ -55,13 +55,14 @@
|
|||
## 검증
|
||||
|
||||
- L1 PASS: `test-compile` + `GameLikeControllerTest` 7/7 + `*ControllerTest` 회귀 219/219 GREEN (eclipse-temurin:21-jdk 컨테이너).
|
||||
- **실환경 스모크 PASS (2026-06-29, 세션 `20260629-171042`)**: docker compose dev(로컬 override) 에 배포 후 로그인 사용자가 상세에서 좋아요 클릭 → **탐색(explore) 목록 카운트 반영 확인**(사용자 검증). 신 엔드포인트 라이브(`POST /game/{id}/like` CSRF 미동반 → 403) 확인.
|
||||
- L2 (dev DB contract): skip — dev DB 미기동 + harness 미구축. like 매퍼는 INSERT/DELETE/UPDATE int 반환 위주라 camelCase Map alias 케이스폴딩 리스크 낮음.
|
||||
- 검증 상세: `.atp/work-session/20260629-151216/artifacts/verification-result.md`
|
||||
- 검증 상세: `.atp/work-session/20260629-151216/artifacts/verification-result.md`, 배포·스모크: `.atp/work-session/20260629-171042/report.md`
|
||||
|
||||
## 잔여 / 미수행 (needs_user_verification)
|
||||
|
||||
- UNIQUE 마이그레이션(`db/migrations/20260629-game-likes-unique.sql`) 운영 적용 미수행 — 중복 점검 후 적용 게이트 대기.
|
||||
- 실환경 스모크 미수행: 로그인 → 상세 좋아요 클릭 → explore 카운트 +1 + 상세 초기 `aria-pressed` 상태(AC-7) 수동 확인.
|
||||
- UNIQUE 마이그레이션(`db/migrations/20260629-game-likes-unique.sql`) 운영 적용 미수행 — 중복 점검 후 적용 게이트 대기. (로컬 dev DB 볼륨은 기존 init 이라 `schema.sql` 의 UNIQUE 변경도 미반영 — 앱레벨 멱등 토글로 기본 동작엔 무관.)
|
||||
- 상세 초기 `aria-pressed` 상태(AC-7) 정밀 수동 확인은 선택(좋아요 반영 핵심 동작은 스모크로 확인됨).
|
||||
- L2 dev DB contract: PostgreSQL dev 기동 후 mapper SQL 실DB 동작 확인.
|
||||
- 기존 `like_count` 컬럼값과 `game_likes` row 수 초기 불일치는 보존(±1 상대 증감, 절대 재계산은 비목표). 선택적 정합 보정 쿼리는 설계 문서 롤아웃 §3 참조.
|
||||
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
| --- | --- | --- | --- |
|
||||
| B1 | P1 | login/signup CSRF 검증 추가 | MED, 완료 |
|
||||
| B2 | P2 | 프로토타입 dead code 제거 | LOW-MED |
|
||||
| B3 | P2 | 좋아요/댓글 서버 영속화 연결 | MED, 기능 무결성. 댓글 완료(W3-2) + 좋아요 완료(20260629-151216, UNIQUE 마이그레이션 운영 적용 대기) |
|
||||
| B3 | P2 | 좋아요/댓글 서버 영속화 연결 | MED, 기능 무결성. 댓글 완료(W3-2) + 좋아요 완료(20260629-151216, 실환경 스모크 PASS 20260629-171042, UNIQUE 마이그레이션 운영 적용 대기) |
|
||||
| B4 | P2 | 의존성/세션/운영 하드닝 | MED |
|
||||
|
||||
## B1. login/signup CSRF 검증 추가 (MED)
|
||||
|
|
@ -99,7 +99,7 @@
|
|||
|
||||
체크리스트:
|
||||
|
||||
> **좋아요 항목은 세션 20260629-151216 에서 충족. 단 `game_likes` UNIQUE 제약은 마이그레이션 운영 적용 대기(아래).**
|
||||
> **좋아요 항목은 세션 20260629-151216 에서 충족 + 실환경 스모크 PASS(20260629-171042, docker compose dev — 로그인 좋아요 → explore 카운트 반영 사용자 확인). 단 `game_likes` UNIQUE 제약은 마이그레이션 운영 적용 대기(아래).**
|
||||
|
||||
- [x] `POST /game/{id}/like` 또는 `/api/games/{id}/like` 엔드포인트를 설계한다. → **`POST /game/{id}/like` 토글(@Transactional). 게이트 CSRF(403)→로그인(401)→존재(404).**
|
||||
- [x] 좋아요 추가/취소는 CSRF 검증을 적용한다. → **`CsrfTokens.isValid(request)` 선행(403). 회귀 테스트 AC-4 PASS.**
|
||||
|
|
|
|||
Loading…
Reference in New Issue