동시에 같은 DB Table row를 업데이트 하는 경우 동시성 문제가 발생한다면 두가지의 해결방법이 떠오릅니다.
- 비관적 동시성 제어
- 낙관적 동시성 제어
- 동시에 같은 데이터를 수정하는 것을 가정하여 데이터에 Lock을 거는 방식
- 사용자가 데이터를 조회하는 시점에 Lock을 걸고 그 다음 처리(조회 or 갱신)가 완료될 때 까지 유지
- 동시에 같은 데이터를 수정하지 않을 것이라고 가정하고 Lock을 걸지 않는 방식
- 사용자가 갱신하고자 하는 시점에 해당 데이터가 변경여부가 있었는지 확인하여 일관성을 유지