CS 정리

락(Lock), 동시성 제어

문쿼리 2025. 6. 17. 17:53

!비관락

장애 가능성을 항상 염두에 두고 선제적으로 방어, 오류 시 즉시 중단

 

!낙관락

시스템은 정상 작동한다고 가정하고, 오류 발생 시 사후 대응으로 계속 운영

 

 

항목 비관락  낙관락
특징 - 강한 제약과 방어
- 트랜잭션/락 기반
- 에러 즉시 중단
- 제약 조건 완화
- 비동기, 재시도, 보상
- 오류 발생 후 처리
장점 - 데이터 정합성 보장
- 오류 확산 방지
- 예측 가능한 동작
-  높은 처리량과 성능
-  가용성 유지
-  유연한 설계 가능
단점 -  처리량 저하
-  불필요한 차단 발생 가능
-  사용자 경험 저하 우려
-  장애 감지 지연 가능
-  복구 로직 복잡
-  데이터 충돌 가능성 존재

 

비관락 (=정확성)

데이터 정합성이 우선 = 금융, 결제, 의료 등 정확성

경합 조건 가능성이 높음 = 자원 잠금 필요(동일 데이터 다중 쓰래드 점유)

 

낙관락 (= 가용성)

높은 트래픽, 가용성 우선 = 이벤트 메세징, 비동기 마이크로 서비스

성능과 확장성 우선 = 웹 트래픽, 재시도 허용가능 서비스