MongoDB

gnlenfn·2021년 8월 23일
0
post-thumbnail

부트캠프 기간 동안 웹앱을 두 번 정도 만들었는데, 모두 elephant SQL 을 통해 Postgre SQL을 사용했다. 이번에는 Mongo DB를 한 번 써보려고 한다.

Mongo DB, NoSQL

NoSQL

NoSQL은 Not only SQL, SQL뿐만 아니다 라는 의미를 가지고 있다. 즉, 관계형 데이터베이스가 아닌 데이터베이스들을 일컫는다. MongoDB외에도 Redis, HBase 등이 있다.
NoSQL은 기존 RDBMS의 한계를 극복하기 위해 생겼다.

  • 수평 확장 가능한 분산 시스템
  • Schema-less
  • 완화된 ACID
RDBMSNoSQL
사례데이터 정합성 보장 필요한 은행 시스템낮은 지연시간, 가용성이 중요한 SNS
데이터 모델정규화와 참조 무결성이 보장된 스키마스키마가 없는 자유로운 모델
트랜젝션강력한 ACID 지원완화된 ACID(BASE)
확장하드웨어 강화(Scale up)수평 확장 가능한 분산 아키텍처(Scale out)
APISQL query객체 기반 API 제공

표 내용은 간단하게 참고하여 두 시스템을 비교해보았다.

MongoDB

Mongo db는 대표적인 NoSQL 데이터베이스이다. JSON과 같은 형태의 도큐먼트들을 사용하며 오픈소스이기 때문에 무료로 사용할 수 있다. 그리고 RDBMS의 ACID 대신 BASE를 택했다.

가장 기존의 RDBMS와 차별되는 부분은 분산처리라고 한다. 기존의 RDBMS는 빅데이터 시대에 대규모 데이터 처리에서 한계가 있기 때문에 NoSQL이 등장했고 MongoDB역시 이러한 요구에 맞추어 더 빠른 성능, 수평 확장이 가능한 데이터베이스로 탄생한 것이다.


BASE라든지, Database > Collection > Document > Field로 이루어진 MongoDB의 계층과 같은 자세한 내용은 조금 더 공부해봐야 할 것 같다. 우선은 프로젝트에 적합한지 (사실 아직 확신이 없다) 더 공부하면서 알아보겠다.

0개의 댓글