DB는 크게 1. SQL언어를 사용하는 관계형 데이터베이스와 2. NoSQL 데이터베이스가 있다.
둘은 확실한 장단점이 있다. 정규화된 데이터와 안정성이 필요하다면 관계형 데이터베이스를 사용합니다. 금융서비스를 만든다, 은행 전산시스템을 만든다면 당연히 안정적인 관계형이 최고입니다.
하지만 일초에 수백만개의 데이터 입출력 요청이 들어오는 SNS 서비스를 만들 때, 뭔가 서비스의 변경사항이 잦아서 쉽고 유연하게 데이터를 저장하고 싶으면 NoSQL을 사용합니다.
실제로 Facebook은 이런 대량의 데이터를 저장하기 위해 HBase 데이터베이스를 이용해 분산 저장합니다.
NoSQl은
- Object 자료형으로 입출력 가능
- 데이터 입출력에만 신경쓸 수 있음
가장 유명한게 MongoDB -> MongoDB Atlas에서 무료 호스팅 받아서 쓰자.
클러스터 만든 후 Connect 하면 내 Application과 커넥트할 수 있는 url이 주어진다.
1. 내가 만든 앱에 MongoDB 연결하기
먼저 npm install mongodb로 라이브러리를 설치한다.
const MongoClient = require("mongodb").MongoClient;
MongoClient.connect(
"mongodb+srv://admin:<password>@cluster0.jvzow.mongodb.net/myFirstDatabase?retryWrites=true&w=majority",
function (error, client) {
// DB에 연결되면 실행될 코드
}
);
그 다음에 앱세팅하는 곳에서 위에 코드처럼 세팅을 해주면된다.
★ 참고 사항:
접속 URL 복붙하실 때 mongodb+srv://디비계정아이디 :디비계정패스워드@cluster0-qaxa3.mongodb.net/데이터베이스이름?retryWrites=true&w=majority
이거 3개를 잘 입력해야합니다.
2. 데이터를 DB에 저장하기
MongoDB는 database와 collection으로 구성됨. database는 큰 폴더, collection은 엑셀파일이라고 생각하면 됨.
먼저 database를 만들고 내 앱과 연결해주는 과정이 필요하다. 아래처럼.
let db;
const MongoClient = require("mongodb").MongoClient;
MongoClient.connect(
"mongodb+srv://jihye:1234@cluster0.jvzow.mongodb.net/todoapp?retryWrites=true&w=majority",
function (error, client) {
// 연결되면 할일
if (error) return console.log(error); // error 99% url 오타
db = client.db("todoapp"); // todoapp 이라는 database에 연결좀요
}
);
'node js' 카테고리의 다른 글
[Node.js] CRUD 구현하기 (Feat.ToDo 리스트) (0) | 2022.03.24 |
---|---|
서버만들 때는 REST하게 API를 짜는게 좋다!(RESTful API) (0) | 2022.03.23 |
[Node.js] 노드 웹프로젝트 시작하기 (0) | 2022.03.14 |