2회에 걸쳐 기본 개발 환경을 설치하였습니다.

 

이번 회에서는 서버 프로젝트를 만들고, 단말기에서 http 프로토콜을 이용해서 보내온 데이터를 받아,

mongoDB에 저장하는 기본 동작을 구현해 보겠습니다.

 

  • mongoDB 소개

mongoDB는 model이 따로 없는 NoSQL 입니다. NoSQL은 SQL이 아니다 라는 표현보다는 Not Only SQL 즉, SQL  뿐만 아니라 라는 뜻으로 이해 해야합니다.

RDMBS처럼 엄격한 구조의 SQL 이 없는 대신, 매우 유연하고, 확장성이 높은 구조의 DBMS 입니다.

RDBMS는 Create Databse, Create Table 등 단 1개의 데이터를 저장하려 해도, 일단 DB를 만들고, 정해진 규칙에 따라 Table을 만든 후에야 비로소 데이터를 저장 할 수 있습니다.

또한 한번 만들어진 Table구조는 특별한 경우가 아니면 잘 수정하지 않습니다.

이유는 수정을 할 경우 기존 데이터에 대한 구조가 무너지고, 데이터를 잃을 수도 있는 등 변경에 막대한 비용(시간과 돈)이 소요되기 때문입니다.

 

mongoDB는 RDMBS와는 달리 DB생성, Table 생성의 절차가 필요없이 바로 사용이 가능합니다.

※ RDBMS와 NoSQL은 서로 용어의 차이가 있지만 이해를 돕기 위해 RDBMS의 구조이름을 빌려와 설명합니다.

RDBMS NoSQL
Database Database
Table Collection
Tuple / Row Document
Column Key / Field
Table Join Embedded Documents
Primary Key Primary Key (_id)
Database Server & Client
mysqld mongod
mysql mongo

 

  1. 데이터베이스를 만들기 위해서는

use mydb 라는 명령으로 간단히 만들어 집니다. 기존에 mydb라는 데이터베이스가 있으면 open을 없으면 create를 자동으로 수행합니다.

 

    2. 데이터베이스를 만들기 위해서는 별도의 절차 없이 데이터를 insert 해 주면 됩니다.

 

db.address.insert({strName:’홍길동’,intAge:20}) 이렇게 명령을 실행하면 현재(use mydb 된) 데이터베이스에 address라는 table을 생성한 후 strName, intAge 2개의 필드를 만들고 각각의 필드에 홍길동과 20이라는 데이터를 추가 합니다.

 

    3. 기존 저장된 데이터 구조를 무시하고 새로운 구조의 데이터 저장

기존에 strName, intAge 라는 필드가 있는 address table에 db.address.insert({strName:’성춘향’, strSex:’여자’, intAge:16}) 이렇게 명령을 내리면 아무런 

물음 없이 바로 필드가 3개인 새로운 데이터가 추가 됩니다.

 

  • nodejs 에서 mongoDB 컨트롤(CRUD) 하기

nodejs에서 mongoDB를 컨트롤(CRUD) 하기 위해서는 mongbDB native방식과 mongoose ODM을 통한 방식을 사용할 수 있습니다. 

native 방식은 mongo 콘솔에서 명령을 내리는 방식과 유사하게 컨트롤이 가능한 반면 여러가지 설정해야 할 사항들이 있습니다.

반면 mongoose ODM을 이용하면 마치 NoSQL인 mongoDB를 RDMBS와 유사한 방법으로, 더 나아가 더 편리한 방법으로 컨트롤이 가능합니다.

그래서 이 포스트에서는 mongoose를 이용하는 방법으로 실행할 예정입니다.

 

  • mongoose를 통한 mongoDB model 생성

mongoose ODM을 통해서 mongoDB를 컨트롤 하기 위해서는 먼저 model 이란 것을 생성해야 합니다. 마치 RDBMS의 Table을 생성하는 것과 유사합니다.

 

eClipse를 실행하고 새로운 프로젝트를 하나 생성해 줍니다.

프로젝트의 이름은 Hello로 하며 templete engne에 ejs를 선택해 줍니다.

 

생성된 프로젝트이 폴더 구조가 다음과 같은지 확인합니다.

특히 bin 폴더가 없다면, eclipse에 express-generator가 설정이 잘못 된 것입니다. 앞 회차를 다시 한번 정독하시기 바랍니다.

 

Hello 프로젝트 이름을 클릭한 후 마우스 오른쪽 버튼을 클릭하여 new / folder를 선택해 줍니다.

폴더의 이름을 models로 합니다.

 

models 폴더를 클릭한 후 마우스 오른쪽 버튼을 눌러 new / file을 선택하고 pmsensorVO.js 라고 이름을 지정합니다.

 

파일에 다음의 코드를 작성하여 줍니다.

 

그리고 app.js 파일을 열어서 mongoose 등록과 dbConn Event 등록 코드를 추가해 줍니다.

 

app.use(‘/users’, users) 아래줄에 pmsensorVO.js 를 등록해 줍니다.

 

여기까지 완료하면 mongoose ODM을 이용해서 mongoDB를 컨트롤 하기 위한 준비가 끝났습니다.

 

다음편에 계속합니다