Programming/Technical Writing
2026. 3. 6.
동시성 제어: 트랜잭션 락은 언제 쓰는가
TL;DR 동시성 제어 — 락을 쓰기 전에 락이 필요한지부터 판단하자 이커머스 시스템에서 쿠폰 차감, 재고 감소, 좋아요 카운트 같은 기능을 만들다 보면 동시성 문제를 만나게 된다. 여러 요청이 같은 데이터를 동시에 수정하면 데이터 정합성이 깨질 수 있기 때문이다. 이 글에서는 동시성 문제를 해결하는 세 가지 접근 방식을 "언제 쓰는가" 중심으로 정리한다. 1. 아토믹 업데이트 vs Read-Modify-Write.2. 낙관적 락 vs 비관적 락3. 비관적 락: FOR UPDATE4. 마무리: 동시성 제어 판단 흐름 1. 아토믹 업데이트 vs Read-Modify-Write아토믹 업데이트SQL 한 문장으로 조건 판단과 갱신을 동시에 처리하는 방식이다. DB가 이 쿼리를 원자적으로 실행하므로 락이 필요 ..