김영한 님의 "자바 ORM 표준 JPA 프로그래밍" 책을 정리한 포스팅 입니다.1. 트랜잭션과 락NON-REPEATABLE READ사용자 A, B가 동시에 같은 데이터를 수정 → 나중에 저장한 B의 값만 반영되어 A의 수정사항이 유실됨.트랜잭션만으로는 해결 불가능 (트랜잭션 범위를 넘어선 문제)해결 방법설명구현 방식마지막 커밋만 인정마지막에 커밋한 트랜잭션의 값이 저장됨(이전 변경 내용이 덮어씌워짐)버전 관리 없이 단순히 UPDATE 수행최초 커밋만 인정먼저 커밋한 트랜잭션만 인정이후 커밋은 버전 불일치로 예외 발생JPA 낙관적 락 적용 (@Version)충돌 내용 병합동시에 수정된 데이터를 병합하여 둘 다 반영OptimisticLockException 발생 시 직접 예외 처리 낙관적 락과 비관적 락구분..