# RDB vs NoSQL
# RDB
- 보통 Spring에서 주로 사용한다.
- 관계형 데이터베이스는 정해진 스키마에 데이터를 삽입한다.
- 테이블에 정해진 형식의 데이터가 들어가게 된다.
- Join을 활용해 관계를 맺는 기능을 사용함으로써 중복을 없앤다.
# RDB 장점
- 데이터의 중복이 없음
- 데이터의 무결성이 보장됨
# RDB 단점
- 복잡한 쿼리가 필요할 수 있음
- 스키마를 변경하기에 굉장히 안좋음
# RDB는 언제 쓸까?
- 데이터를 자주 수정해주어야 할때
- 스키마가 명확히 정해져 있을 때
# NoSQL
- Node.JS 개발할 때 주로 사용한다.
- RDB와 반대로 스키마가 없다.
- 하나의 컬렉션(문서)에 모든 데이터를 json형식으로 넣어준다.
# NoSQL 장점
- 데이터를 읽어오는 속도가 빠르다.
- 스키마가 없으므로 유연하게 데이터를 받을 수 있다.
- 대용량의 데이터에 사용하기 용이하다.(문서에 모두 넣어서 관리하기 때문에 서버를 늘려서 DB확장 가능 - 수평적 확장)
# NoSQL 단점
- 데이터가 중복이 있을 수 있다.
- 중복된 데이터를 모두 처리해주어야하기 때문에 변경의 성능이 안좋다.
# NoSQL은 언제쓸까?
- 대용량의 데이터를 처리해야할 때
- DB의 스키마가 불 명확할 때
- 데이터의 수정이 적고 읽는 것이 많을때
← SQL Injection 도커 시작하기 →