리그캣의 개발놀이터

MongoDB(몽고 디비란?) 특징 및 장점 본문

데이터베이스

MongoDB(몽고 디비란?) 특징 및 장점

리그캣 2018. 1. 19. 13:53


안녕하세요 리그캣 입니다.


오늘은 몽고DB에 대해서 알아보도록 하겠습니다.


한때 모 회사에 인턴쉽을 할때 몽고 DB를 사용하는 팀이있엇는데요. 몽고DB는 제가 그당시에 처음듣는 DB 였지만 많은 사람들이 알고 있다는 것에 놀랐었고, 언제한번 사용해 봐야겠지 생각하고 있었습니다. 그러다 Node.js를 공부하면서 몽고DB를 많이 사용하더라구요. 그래서 저도 한번 사용해보면서 포스팅 하기로 생각하였습니다 ㅎㅎ


MongoDB에 사용하기에 앞서 NoSQL에 대해서 알아야 합니다. 왜냐구요?? MongoDB는 NoSQL의 대표적인 데인터 베이스이기 때문입니다.


NoSQL이란 무엇인가?


이 전에는 한정된 규모의 복잡성을 가진 데이터가 주를 이루어졌다면 빅데이터 시대로 넘어가면서 점점 데이터의 형태가 단순해지고 대량의 규모로 넘어가고 있습니다. 이러한 데이터의 홍수 속에서 기존의 RDBMS 방식 즉, 관계형 데이터베이스 방식으로는 한계를 느낄 수 밖에 없게됩니다. 결국, 새로운 형태의 데이터 저장 기술을 필요로 하게 되었는데 이때 등장한 것이 NoSQL의 개념입니다.


즉,NoSQL은 테이블끼리 아무런 관계가 없다!!


NoSQL = Not Only SQL


기존의 RDMBS 형태의 관계형 데이터베이스는 말 그대로 데이터의 관계가 긴밀이 연결되어 있는 형태입니다. 단어만 봐도 알 수 있듯이 SQL을 활용하는 형태가 아닌 다른 방식의 저장 기술을 의미합니다.


참조 - http://flowarc.tistory.com/113


몽고DB란??

실무에서는 오라클이나 MySQL과 같은 관계형 데이터베이스가 많이 사용됩니다. 그러나 최근 비관계형 데이터베이스를 적용하는 곳이 늘고 있으며, 이런 시스템을 NoSQL 또는 Not Only SQL 이라고 합니다.

몽고디비는 NoSQL이기 때문에 관계형 데이터베이스의 테이블 개념이 없습니다. 그 대신 몽고디비는 여러 데이터가 모인 하나의 단위를 컬렉션(Collection)이라고 부릅니다.

몽고 디비는 데이터 저장소를 가지고 있으며 그 안에 여러개의 컬렉션을 넣을 수 있습니다. 즉, 데이터베이스는 컬렉션의 집합 이라고 할 수 있습니다. 그리고 각각 컬렉션은 여러 개의 문서 객체를 가질 수 있습니다. 문서 객체는 속성들의 집합으로서 한 사람의 이름과 나이 등을 저장하고 싶을 때 하나의 문서 객체를 만든 후 그 안에 자바스크립트 객체와 같이 속성들을 추가하여 저장할 수 있습니다.


몽고DB의 특징


문서지향 데이터베이스

몽고 디비는 강력하고 유연하며 확장성이 높은 도큐먼트 베이스(문서 지향)의 데이터베이스이다. NoSQL 중 많이 사용되는 데이터베이스이기도 하다. 문서 지향 데이터베이스에서는 행 개념 대신에 보다 유연한 모델인 문서를 이용하는데, 내장 문서와 배열의 표현이 가능해서 복잡한 객체의 계층 관계를 하나의 레코드(열)로 표현할 수 있다. 이것은 자바나 파이썬 같은 최신 객체지향 언어들을 사용하는 개발자에 매우 편리함을 가져다 준다.


스키마가 없다

몽고 디비는 스키마가 존재하지 않는다. 이 것은 필요할 때 마다 필드를 추가하거나 제거하는 것이 매우 쉬워졌음을 의미한다. 따라서 개발 과정이 매우 단순해지고 빠르게 개발이 가능하게 된다.


스케일 아웃이 가능하다.


범용 데이터베이스


조인과 트랜잭션 없음


매우 고성능이다


낮은 진입장벽


참조 - http://dev.youngkyu.kr/22


Comments