MongoDB 소개

CCY·2020년 8월 29일
0

BackEnd (Node,Socket)

목록 보기
6/8
post-thumbnail

MongoDb 는 무엇인가?

서버를 개발할 떄 데이터베이스를 사용하면 웹 서비스에서 사용되는 데이터를 저장하고, 효율적으로 조회하거나 수정 할 수 있다.

MONGODBSQL의 한계들을 극복하기 위해 문서 지향적 NoSQL 데이터베이스이다.

  • 이 데이터 베이스를 사용하면 등록하는 데이터들은 유동적인 스키마를 지닐수 있다.

Database 종류:
데이터베이스에는 관계형 (RDBMS)를 주로 사용하는데 대표적으로 MySQL,OracleDB,PostgresSQL 이 있다.

MONGODBNoSQL이다.

관계형 DB는?

데이터가 스키마 가 고정적이다
스키마란 데이터베이스에 어떤 형식의 데이터를 넣을지에 대한 정보를 가리킨다.
회원 정보 스키마라면 계정명,이메일,이름 등이있다.

만약에 새로 등록하는 데이터 형식이 기존에있던 데이터들과 다르다면? 기존 데이터를 모두 수정해야 새 데이터를 등록 할 수 있다. 그래서 데이터양이 많을 때는 데이터베이스 의 스키마를 변경하는 작업이 매우 번거워질 수도 있다.

확장성
RDBMS는 저장하고 처리해야 할 데이터양이 늘어나면 여러 컴퓨터에 분산 시키는 것이 아니라, 해당 데이터베이스 서버의 성능을 업그레이드 하는 방식으로 확장해 주어야 한다.

NoSQL DB는?

위에서 언급했듯이 데이터들으 유동적인 스키마를 지닐수 있다. 종류가 같은 데이터 라도 새로 등록해야 할 데이터 형식을 바뀐다 해도 기존 데이터베이스를 수정할 필요가 없다.
서버의 데이터양이 늘어나도 한 컴퓨터에서만 처리하는 것이 아니라 여러 컴퓨터로 분산하여 처리 할 수 있도록 확장하기 쉽게 설계되어있다.

상황에 맞춰서 데이타베이스를 사용해야한다.

데이터 구조가 자주 바뀐다면 MongoDB가 유리하다. 그러나 까다로운 조건으로 데이터를 필터링 해야 하거나, ACID 특성을 지켜야 한다면 RDBMS가 더 유리 할수도 있다.

ACID 특성은 원자성(Atomicity) ,일관성(Consistency),고립성(isolation),지속성(Durability)의 앞 글자를 따서 만든 용어로 데이터베이스 트랜잭션이 안전하게 처리되는 것을 보장하기 위한 성질을 의미한다.

RDBMS는 설정해야 할것도 많고, 배워야 할것도 많다. 추후에 RDBMS도 배워서 사용할 예정이다.

Inside MongoDB

문서(Document)란?

문서는 RDBMS의 records와 개념이 비슷하다.
문서의 데이터 구조는 한개 이상의 키-값 쌍으로 되어있다.

{
  "id":ObjectId('5000245124'),
  "username":"veloport",
  "name":{ first:"w",last:'ww'}
}

문서는 BSON(바이너리 형태의 JSON) 형태로 이루어져 있어, JSON형태의 데이터 객체로 저장이 가능하기 떄문에 편리하다.

새로운 문서를 만들면 자동적으로 id의 고유값이 생성되고, 이 값은 시간, 머신 아이디, 프로세스 아이디, 순차 번호로 되어 있어 값의 고유값을 보장한다.

collection

여러 문서가 들어있는 곳을 컬렉션이라고 불른다. 기존 RDBMS의 테이블 개념을 사용하여 각 테이블마다 같은 스키마를 가지고있어야 한다.
그래서 새로운 테이터가 다른 스키마라면 모두 수정해야하지만..

MongoDB는 다른 스키마를 가지고있는 문서들이 한 컬렉션에 공존할 수있다.

MongoDB 서버 준비

https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os-x/

컴퓨터 OS에 따라 다르기때문에 설치

맥북을 사용하기 때문에 brew 를 설치하고 brew로 설치하였다.
brew tap mongodb/brew
brew install mongodb-community@4.4

profile
✍️ 기록을 습관화 하자 ✍️ 나는 할 수 있다, 나는 개발자가 될거다 💪🙌😎

0개의 댓글