작성
·
304
1
안녕하세요 강의 잘듣고 있습니다
DB 락 관련하여 질문 드립니다. h2에서는 for update 문을 사용하는데
for update 로 락을 가져와도 select 문을 통해 이전 commit 들에 대한 결과는 가져오는 것을 실험으로 확인 했었습니다.
JPA에서는 어노테이션 LOCK을 사용해서 for update 구문을 지원 하던데, 이렇게 될 경우 다음과 같은
1. select ---- for update (세션1)
2. select ---- (세션2)
3. 커밋 (세션1)
4. 가져온 data dirty check로 인한 update (세션2)
일 경우가 가능 한가요? (특히 4번)
가능하다면 2,4 번이 위험한 행동이 아닌가에 대해 궁금합니다.
또 실무에서는 낙관적락, 비관적락에 대해서 무엇을 더 우선순위로 택하는지 궁금합니다
감사합니다