DB는 종류가 참 다양함.
보통 관계형DB를 기본으로 필요에 따라 NoSql을 쓰거나 할 것임.
다만 어떤 경우에선 NoSql이 더 강력할 때가 있고, 어떤 경우에선 RDBMS가 더 강력할 때가 있고 상황에 따라 다르다.
Redis 같은 경운 아에 메모리에 데이터를 넣어버리니 속도가 매우 빠른 대신 컴퓨터 끄면 날아간다.
CAP Theorem 은 모든 데이터베이스를 저 3가지 기능으로 나누어서 생각한다.
ACID와는 조금 다를 수 있음.
즉 저 3가지 기준을 적절히 섞어서 데이터베이스를 선택해야 한다는 거임
DB를 조금 생각해보면 애초에 모든 DB를 저 3개의 기준으로 돌릴 수가 없다.
가용성에 대해 생각하자면, 결국 항상 응답이 가능하단 소리는 네트워크 장애가 아에 발생하지 않아야 한다는 소리임. 근데 이게 말이 안 되잖아?
네트워크 장애가 발생하더라도 DB가 응답하려면 결국 파티션 나누는게 되야 함.
그래도 간단하게나마 어떤 DB를 쓸 수 있는지 리스트업을 하기 위해서 이 정도만 되도 고민을 좀 덜 수 있지 않을까?
CAP 이론의 상기 단점을 보완하기 위해 PACELC 이론이란게 있다 카더라
CAP를 기반으로 좀 더 보안적인 느낌인 듯.
정리는 좀 나중에 해야겠당.
출처
https://en.wikipedia.org/wiki/CAP_theorem
https://en.wikipedia.org/wiki/PACELC_theorem
https://osy0907.tistory.com/m/95
https://medium.com/system-design-blog/cap-theorem-1455ce5fc0a0