TIL
CAP 정리
개발 일지
2024. 6. 24. 20:41
✔오늘 배운 중요한 🔑 point
- 데이터의 일관성, 가용성, 파티션 감내라는 세가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다.
- 대부분의 실제 분산 시스템은 CA를 선택하지 않고 CP 혹은 AP 중 하나를 선택한다
🎯 오늘 배운 내용
REDIS 같은 KEY- VALUE 저장소는 많은 데이터를 저장하기 위해 분산 키-값 저장소(distributed key-value store)를 만들 필요가 있다.
분산 시스템을 설계할 때는 CAP 정리의 이해가 필수적이다
CAP 정리
데이터의 일관성, 가용성, 파티션 감내라는 세 가지 요구사항을 동시에 만족하는 분산 시스템을 설계하는 것은 불가능하다
데이터 일관성(Consistency): 모든 클라이언트는 어떤 노드에 접속했느냐에 관계없이 언제나 같은 데이터를 봐야함
가용성(Availability): 클라이언트는 일부 노드에 장애가 발생하더라도 항상 응답을 받을 수 있어야 함
파티션 감내(Partition tolerance): 네트워크에 파티션이 생겨도 시스템은 계속 동작해야함
(파티션: 두 노드 사이에 통신 장애가 발생)
CP: 일관성과 파티션 감내 지원 (일관성이 중요하므로 은행권에서 사용)
AP: 가용성과 파티션 감내 지원 (가용성이 중요하므로 SNS에서 사용)
CA: 일관성과 가용성을 지원 (통상 네트워크 장애는 피할 수 없으므로 실세계에 CA 시스템은 존재하지 않는다!!)
🤔 어떻게 활용할까?
CP와 AP 중 주어진 요구사항에 맞도록 CAP 정리를 적용해야한다
📓 오늘의 한줄
"If you fall behind, run faster. Never give up, never surrender, and rise up against the odds."
- Jesse Jackson -