적합한 데이터베이스 선택법, CAP Theorem

귀찮Lee·2023년 2월 13일
0

DataBase / MySQL

목록 보기
2/16
post-thumbnail

원티드 프리온보딩 2월 "MySQL 잘 사용하기" 학습내용 1일차 - 2

◎ 데이터베이스를 상황에 맞게 선택해야 하는 이유

  • "모든 기술은 트레이드 오프다"
  • 모든 데이터베이스는 필요에 의해 만들어지고 방식이 다양하기 때문에 상황에 맞게 선택할 필요가 있다.

◎ CAP Theorem

  • CAP Theorem

    • 각각의 DB는 Consistency, Availability, Partition-torlerance 의 특징중에 2가지에 특징에 강점을 둔다.
    • 3가지를 모두 만족하는 DB는 존재하기 힘들다.
  • Consistency(일관성)

    • 데이터베이스 안의 모든 노드들이 같은 값을 가지고 있음
    • 요청를 보내면 해당 응답이 지연 될 수 있음
    • 예시 : 금융 (데이터의 정확하고 일관성 있어야 한다.)
  • Availability(가용성)

    • 데이터베이스에 요청를 보내면 항상 응답을 받음
      • 일관성이 강조된 DB는 응답을 바로 받올 수 있다.
    • 하지만 해당 응답이 가장 최근 데이터라는 것을 보장받을 수 없음
    • 접근하는 노드에 따라 값이 다르다
  • Partition-torlerance(분산처리)

    • 노드간 소통이 불가능 하더라도 정상적으로 작동함

◎ DB 선택 예시

  • NoSQL - Instargram

    • 게시물 작성 시, 게시물이 작성되는 것이 다른 사람에게 보여지는 것보다 더 중요함 (작성 실패시 다시 작성해야 하니까)
    • 많은 사용자들이 이용함
    • Availability, Partition-torlerance 가 좋은 DB를 이용함
  • 금융

    • 송금 기록이 정상적으로 작동되고 여기에 금액이 +- 되는 금액이 정확하여야 함
    • Consistency가 좋은 DB를 사용함

◎ DB 선택 방법 (내 생각)

  • 모든 기술은 trade off 이므로 내가 어떤 서비스를 만들고, 어떤 상황에 놓여있는 지 파악하는 것이 우선적이다.
  • CAP Theorem 은 DB를 선택하는데 하나의 기준이 될 수 있다.
  • CAP Theorem을 통해 DB를 선택하더라도 각 DB마다 특징이 다르기 때문에 각 DB별 특징을 파악하고 서비스에 맞는 DB를 사용하는 것이 좋다고 생각한다.
    • 구글링을 통해 실제 예시들을 참고하는 것도 많은 도움이 될 것 같다.
profile
배운 것은 기록하자! / 오류 지적은 언제나 환영!

0개의 댓글