[MongoDB] 몽고 DB에 대하여 몇가지..

일상에서 언급했듯이 창업을 준비하고 있는데, 컨텐츠 관련 서비스이다. 서버 개발언어는 node.js 로 정해졌는데, DBMS를 뭐로 쓸지 많이 고민했다. MySQL 은 대규모에서 많이 느리다는 말이 있고, MongoDB 는 node.js 하고 찰떡궁합이라고 하고, 요즘 많은 미국쪽 대기업에서는 MongoDB 를 많이 쓴다고 한다. 지금 유행처럼 사람들이 MongoDB를 사용하고 있기도 하고… 속도가 빠르다길래 MongoDB 를 사용하기로 결정했다.

MongoDB 는 대표적인 NoSQL이다. MySQL 같은 관계형 데이터베이스만 다뤄왔던 나에게는 SQL 을 사용하지 않고, 테이블 개념도 없는 비 관계형 데이터베이스인 NoSQL 은 낯설다. 지금도 낯설고 적응이 안된다. 왜냐. 실제로 사용해보진 않았기 때문이다. 지극히 주관적으로 봤을때는 MySQL보다 진입장벽은 높은것같다.

어쨌든 MongoDB는 테이블 개념같은것이 없고, Collection – Document 개념으로 이루어 져있는 것 같다. 다른 NoSQL 은 잘 모르겠지만, MongoDB 는 Document 가 JSON 형태다. (정확히는 BSON 이라고 하는데 알게뭐양). 도대체 데이터가 어떻게 쌓이고, 어떻게 거기서 데이터를 뽑아오는지도 모르겠다 헤헤힣헣호홓..

node.js 에서는 MongoDB 에 접근하기 위한 여러 3rd-Party 모듈이 존재하는데, 대표적인 것이 Mongoose. MongoDB 와 Mongoose 가 어떻게 작동하는지 그림으로 알아보자.

f25773ff8444036e41a5587adcf66308

 

MongoDB 는 스키마 ( “데이터베이스의 구조와 제약조건에 관해 전반적인 명세를 기술한것” 이라고 한다. 잘은 모르겠음. 그냥 구조를 나타내는 것 이라고 이해하고 있었음. ) 가 없다고 한다. 그런데 Mongoose 를 사용하면, 이 스키마를 사용할 수 있게 해준다는데 음.. 어쨌든 스키마를 생성하고 Model 을 생성하는데, 모델은 JS 객체다. ㅇㅇ… Document 는 JSON 이다.

아 몰랑 어려웡.

You may also like...