!비관락
장애 가능성을 항상 염두에 두고 선제적으로 방어, 오류 시 즉시 중단
!낙관락
시스템은 정상 작동한다고 가정하고, 오류 발생 시 사후 대응으로 계속 운영
| 항목 | 비관락 | 낙관락 |
| 특징 | - 강한 제약과 방어 - 트랜잭션/락 기반 - 에러 즉시 중단 |
- 제약 조건 완화 - 비동기, 재시도, 보상 - 오류 발생 후 처리 |
| 장점 | - 데이터 정합성 보장 - 오류 확산 방지 - 예측 가능한 동작 |
- 높은 처리량과 성능 - 가용성 유지 - 유연한 설계 가능 |
| 단점 | - 처리량 저하 - 불필요한 차단 발생 가능 - 사용자 경험 저하 우려 |
- 장애 감지 지연 가능 - 복구 로직 복잡 - 데이터 충돌 가능성 존재 |
비관락 (=정확성)
데이터 정합성이 우선 = 금융, 결제, 의료 등 정확성
경합 조건 가능성이 높음 = 자원 잠금 필요(동일 데이터 다중 쓰래드 점유)
낙관락 (= 가용성)
높은 트래픽, 가용성 우선 = 이벤트 메세징, 비동기 마이크로 서비스
성능과 확장성 우선 = 웹 트래픽, 재시도 허용가능 서비스
'CS 정리' 카테고리의 다른 글
| 커버링 인덱스(Covering Index)란? (0) | 2025.06.26 |
|---|---|
| DB 샤딩 vs 파티셔닝, 데이터 분산 처리 (0) | 2025.06.23 |
| ConcurrentHashMap 알고쓰자 (1) | 2025.06.11 |
| Java 키워드 모음: static, final, synchronized, abstract, transient (0) | 2025.05.28 |
| Java 대용량 데이터 처리 (6) - 멀티 쓰래드/병렬 처리 (0) | 2025.05.04 |