AWESOMEDEV 5e8f96719b fix: 비밀번호 변경이 실제로 저장되지 않던 버그 (detached 엔티티)
- change-password가 200을 반환하면서도 DB가 안 바뀌었음
- 원인: requireUser()가 트랜잭션 밖에서 조회한 detached User의 필드를 바꿔
  JPA 더티 체킹이 작동하지 않음 (managed 엔티티에만 작동)
- 해결: changePassword 트랜잭션 안에서 findById로 재조회 → managed 상태로 UPDATE
- 학습 포인트 주석 강화: '더티 체킹이 자동 저장'의 숨은 전제(트랜잭션이 관리하는 엔티티)

검증: 변경 200 → 새 비번 로그인 200 → 옛 비번 401. 틀린 현재비번 401.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-17 09:13:30 +09:00
..