데이터의 일관성 유지 - 동시에 여러 사용자가 데이터를 수정하려고 할 때 발생할 수 있는 충돌을 방지 낙관적 락(Optimistic Lock)(비선점 락)이름 그대로 트랜잭션 대부분은 충돌이 발생하지 않는다고 낙관적으로 가정하는 방법DB의 락 기능을 사용하는 것이 아닌, 애플리케이션 계층에서 제공하는 락트랜잭션을 커밋하기 전까지는 충돌유무를 알 수 없다장점-성능이 좋고, 데드락 발생 가능성이 낮다단점-충돌이 발생한 경우 이를 해결하기 위한 추가 작업 필요(재시도, 롤백..) 비관적 락(Pessimistic Lock)(선점 락)이름 그대로 트랜잭션의 충돌이 발생한다고 가정하고 우선 락을 걸고 보는 방법DB의 락 기능을 사용 - 대표적으로 select for update 구문장점-데이터의 일관성을 유지하기..
[Lock] 낙관적 락 & 비관적 락
데이터의 일관성 유지 - 동시에 여러 사용자가 데이터를 수정하려고 할 때 발생할 수 있는 충돌을 방지 낙관적 락(Optimistic Lock)(비선점 락)이름 그대로 트랜잭션 대부분은 충돌이 발생하지 않는다고 낙관적으로 가정하는 방법DB의 락 기능을 사용하는 것이 아닌, 애플리케이션 계층에서 제공하는 락트랜잭션을 커밋하기 전까지는 충돌유무를 알 수 없다장점-성능이 좋고, 데드락 발생 가능성이 낮다단점-충돌이 발생한 경우 이를 해결하기 위한 추가 작업 필요(재시도, 롤백..) 비관적 락(Pessimistic Lock)(선점 락)이름 그대로 트랜잭션의 충돌이 발생한다고 가정하고 우선 락을 걸고 보는 방법DB의 락 기능을 사용 - 대표적으로 select for update 구문장점-데이터의 일관성을 유지하기..
2024.12.18