[TIL/DB] 트랜잭션부터 Lock까지: 데이터 동시성을 제어하는 방법
·
TIL/DB
Lock! Lock! Lock! Lock 이란 무엇인가!정리하기 전 가볍게 먼저 아래와 같이 정리해보았다.전체 구조Lock├─ DB가 실제로 거는 락의 성격│ ├─ Shared Lock│ └─ Exclusive Lock│├─ 락을 얻는 SQL/방법│ └─ SELECT ... FOR UPDATE│└─ 동시성 제어 전략 ├─ Pessimistic Lock └─ Optimistic Lock 1. Lock이 왜 필요한가?→ 동시성 문제 해결2. Shared / Exclusive Lock→ 읽기와 쓰기 충돌 제어3. SELECT FOR UPDATE→ 조회하면서 수정용 Lock 확보4. 비관적 락 / 낙관적 락→ 먼저 잠글지, 충돌을 나중에 감지할지5. Deadlock→ 서로 상대방 Lock을 기..