로딩
요청 처리 중입니다...

동시성 제어 문제

 동시성 제어 문제

질문) 동시에 같은 DB Table Row를 업데이트 하는 상황을 방어하기 위해서 어떻게 개발하실 건지 설명해주세요. 트랜잭션 사용 비관적인 락(Pessimistic Lock) 동작방식 트랜잭션이 데이터를 읽을때, 해당 데이터를 잠금(Lock) 상태로 만든다.

이로써 다른 트랜잭션은 해당 데이터에 대한 읽기 쓰기 권한을 얻을수 없다. 트랜잭션은 데이터를 사용하고 난후에 잠금을 해제한다. 2.

장점: - 트랜잭션간에 충동을 방지하며, 데이터의 일관성을 유지할수있음. - 간단하게 사용가능하고, 동시성 문제를 해결하기 위해 명시적인 잠금을 사용합니다. 3. 단점: - 잠금이 오래 지속되면 다른 트랜잭션들이 대기해야 하므로 성능저하가 발생할수 있다. - 락 충돌이 자주 발생하며 성능 문제 및 데드락 등의 부작용이 발생할수 있다.

낙관적인 락 (Optimistic Lock) 1. 동작방식: - 트랜잭션이 데이터를 읽을 때, 어떤 락도 걸지 않고 데이터를 수정할 때까지 기다리지 않습니다. - ...