-
IT분야 CAP, BASE, SOLID, KISS 의미Review/ByteByteGo - System Design 2024. 8. 5. 18:30반응형
시스템 설계에서 자주 사용되는 약어들을 설명하는 다이어그램입니다.
CAP
CAP 정리는 분산 데이터 저장소가 다음 세 가지 보장 중 두 가지만 제공할 수 있다고 말합니다:
- Consistency (일관성): 모든 읽기는 가장 최근의 쓰기를 받거나 오류를 반환합니다.
- Availability (가용성): 모든 요청은 응답을 받습니다.
- Partition tolerance (파티션 허용): 네트워크 장애가 발생해도 시스템은 계속 작동합니다.
그러나 이 정리는 분산 시스템에 대해 너무 좁게 정의되었다는 비판을 받았습니다. 네트워크 장애는 분산 시스템에서 반드시 발생하며, 이를 다루는 방법이 필요합니다. 이 주제에 대해 더 알고 싶다면 Martin Kleppmann의 "Please stop calling databases CP or AP"를 참조하십시오.
BASE
관계형 데이터베이스에서 사용되는 ACID (Atomicity-Consistency-Isolation-Durability) 모델은 NoSQL 데이터베이스에 너무 엄격합니다. BASE 원칙은 일관성보다 가용성을 선택하여 더 유연한 접근 방식을 제공합니다. 이는 상태가 결국 일관성을 갖게 될 것이라고 말합니다.
- Basically Available (기본적으로 가용함): 시스템은 항상 가용한 상태를 유지합니다.
- Soft state (부드러운 상태): 시스템 상태는 언제든지 변경될 수 있습니다.
- Eventual consistency (최종적 일관성): 시스템은 일정 시간이 지나면 일관성을 갖게 됩니다.
SOLID
SOLID 원칙은 객체 지향 프로그래밍(OOP)에서 매우 유명합니다. 다음 다섯 가지 구성 요소로 이루어져 있습니다:
- SRP (Single Responsibility Principle, 단일 책임 원칙): 각 코드 단위는 하나의 책임만 가져야 합니다.
- OCP (Open-Closed Principle, 개방-폐쇄 원칙): 코드 단위는 확장에 열려 있어야 하지만 수정에는 닫혀 있어야 합니다.
- LSP (Liskov Substitution Principle, 리스코프 치환 원칙): 서브 클래스는 상위 클래스로 대체할 수 있어야 합니다.
- ISP (Interface Segregation Principle, 인터페이스 분리 원칙): 특정 책임을 가진 여러 인터페이스를 노출해야 합니다.
- DIP (Dependency Inversion Principle, 의존성 역전 원칙): 시스템의 의존성을 분리하기 위해 추상화를 사용해야 합니다.
KISS
"Keep it simple, stupid!"는 1960년에 미국 해군이 처음 언급한 설계 원칙입니다. 대부분의 시스템은 단순하게 유지될 때 가장 잘 작동한다는 원칙입니다.
반응형'Review > ByteByteGo - System Design' 카테고리의 다른 글
C++, JAVA, 파이썬으로 보는 컴파일, 바이트, 인터프리터 언어 차이점 (0) 2024.08.05 Data Pipeline Overview (0) 2024.08.05 네트워크 주요 프로토콜 Top 8 (0) 2024.08.05 2023 API 프로토콜의 진화 (0) 2024.08.05 HTTP 주요 메소드 Top 9 (0) 2024.08.05