ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • IT분야 CAP, BASE, SOLID, KISS 의미
    Review/ByteByteGo - System Design 2024. 8. 5. 18:30
    반응형

     

    시스템 설계에서 자주 사용되는 약어들을 설명하는 다이어그램입니다.

    CAP

    CAP 정리는 분산 데이터 저장소가 다음 세 가지 보장 중 두 가지만 제공할 수 있다고 말합니다:

    1. Consistency (일관성): 모든 읽기는 가장 최근의 쓰기를 받거나 오류를 반환합니다.
    2. Availability (가용성): 모든 요청은 응답을 받습니다.
    3. 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)에서 매우 유명합니다. 다음 다섯 가지 구성 요소로 이루어져 있습니다:

    1. SRP (Single Responsibility Principle, 단일 책임 원칙): 각 코드 단위는 하나의 책임만 가져야 합니다.
    2. OCP (Open-Closed Principle, 개방-폐쇄 원칙): 코드 단위는 확장에 열려 있어야 하지만 수정에는 닫혀 있어야 합니다.
    3. LSP (Liskov Substitution Principle, 리스코프 치환 원칙): 서브 클래스는 상위 클래스로 대체할 수 있어야 합니다.
    4. ISP (Interface Segregation Principle, 인터페이스 분리 원칙): 특정 책임을 가진 여러 인터페이스를 노출해야 합니다.
    5. DIP (Dependency Inversion Principle, 의존성 역전 원칙): 시스템의 의존성을 분리하기 위해 추상화를 사용해야 합니다.

    KISS

    "Keep it simple, stupid!"는 1960년에 미국 해군이 처음 언급한 설계 원칙입니다. 대부분의 시스템은 단순하게 유지될 때 가장 잘 작동한다는 원칙입니다.

     

     

     

    반응형

    댓글

Designed by Tistory.