Node + React Basic [2]

YulHee Kim·2021년 1월 5일
1

node

목록 보기
2/4
post-thumbnail

💫 Node + React 기초 강의 💫

💡 Mongo DB란?

mongoDB는 문서지향(Document-Oriented) 저장소를 제공하는 NoSQL 데이터베이스 시스템으로, 현존하는 NoSQL 데이터베이스 중 인지도 1위입니다.

자세한 정보는 출처 확인
::출처 (https://edu.goorm.io/learn/lecture/557/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-node-js/lesson/174384/mongodb%EB%9E%80)

2. Mongo DB 연결하기

1. Mongo DB 사이트에서 회원가입

Try Free 버튼을 누르면 된다

2. CLUSTER 생성

3. Mongo DB 유저 생성

무료인 국가(싱가폴)을 선택한 후, 샌드박스로 설정

4. Mongoose 알아보기

npm install mongoose --save

5. Mongoose 다운로드

6. App에 MongoDB 연결하기 (에러 발생)

해결:: Mongo DB 사이트에서 보안 -> 네트워크 접근 -> Ip권한을 주어야함

7. 연결 확인!

💡 Mongoose 모듈이란?

간단하게, 몽고 DB를 편하게 쓸 수 있는 Object Modeling Tool이다.

Node.js와 MongoDB를 위한 ODM(Object Data Mapping) 라이브러리입니다. express와 함께 사용하면 MVC패턴 구현이 용이합니다.

moongoose는 mongoDB라는 NoSQL 데이터베이스를 지원하는 노드의 확장 모듈입니다. 기능이 추가되어 다양한 기능들로 편의성을 높였으나, 속도는 조금 떨어집니다. 그런데도 mongoose가 가장 많이 쓰이는 모듈 중 하나인 것은 오브젝트(object)들을 만들고, 오브젝트와 data를 묶어서 사용하는 ODM(Object Data Mapping)의 특성 때문입니다.

mongoose는 데이터를 만들고 관리하기 위하여 스키마(Schema)를 만들고, 그 스키마로 모델(Model)을 만듭니다. NoSQL인 mongoDB는 RDBMS와 달리 컬럼과 로우로 구성되어야만 하는 일반적인 데이터베이스 스키마의 제한을 벗어나 있습니다. mongoose는 그러한 mongoDB의 구성 철학에 따른 장점을 그대로 가져왔습니다. 즉, 스키마와 모델을 만드는 것을 통하여 data를 불러온 후에 그 데이터를 객체화시켜 빠르게 수정함으로써 데이터에 접근할 수 있게 해줍니다. 분명하게 모델링된 문서(Document)들이 모여있는 Collection을 관리하는 것이 수월해진다는 장점 또한 가지고 있습니다.

:: 출처 (https://edu.goorm.io/learn/lecture/557/%ED%95%9C-%EB%88%88%EC%97%90-%EB%81%9D%EB%82%B4%EB%8A%94-node-js/lesson/174385/mongoose-%EC%82%B4%ED%8E%B4%EB%B3%B4%EA%B8%B0)

3. Model & Schema

1. Model?

: Model은 Schema를 감싸주는 역할

2. Schema?

: Mongoose 스키마는 문서의 구조, 디폴트 값..등을 정의

몽구스는 사용자가 작성한 스키마를 기준으로 데이터를 DB에 넣기 전에 먼저 검사합니다. 스키마에 어긋나는 데이터가 있으면 에러를 발생시킵니다. 즉, 테이블과 어느 정도 비슷한 역할을 합니다. 또한 스키마를 설정할 때 인덱스까지 같이 걸어둘 수도 있습니다. 기본값도 설정해줄 수 있고요. 구조에 관한 편의 기능들을 하나로 모아두었다고 생각하시면 됩니다.
:: 출처(https://www.zerocho.com/category/MongoDB/post/59a1870210b942001853e250)

3. User.js 작성

  • trim: 공백제거
  • role -> type:number(ex 1이면 관리자, 0이면 일반)
  • token을 통해 유효성 검사
  • module.exports= { } 다른 곳에서도 이 모델을 쓸 수 있도록

✉️ NoSQL인 MongoDB를 처음 다뤄보았습니당 중간에 에러가 떴는데 네트워크 접근 권한을 설정해주어야 한다는 사실도 알게되어 유익했습니다~🧚

profile
백엔드 개발자

0개의 댓글