* DB 종류 (관계형)
- MySQL
- MariaDB
- Oracle
- MS SQL Server
> SQL 이라는 언어를 써야함
* DB 종류 (NoSQL)
- Dynamo
- Oracle NoSQL
- MongoDB
- Redis
- Cassandra
> Object 자료형으로 입출력 가능
* MongoDB를 사용하는 이유
- 처음 다룰 때 어려운 셋팅작업이 필요하지 않음 (스키마 생성 등 필요없음)
- SQL 안배워도 된다.
- 복잡한 자료형 몰라도 된다.
- 평생 무료 호스팅해주는 곳이 있음 (Mongo Atlas)
* MongoDB Atlas 가입/초기셋팅 방법
1. 구글에 Mongodb atlas 라고 검색해서 홈페이지를 방문 및 가입
2. 무료 티어를 선택합니다
3. 서버위치를 선택합니다. (한국과 가장 가까운 곳을 골라준다.)
계속 진행하면 Cluster가 생성됩니다.
4. Database Access 메뉴에서 DB 접속용 아이디/비번을 생성합니다.
데이터베이스 접속할 수 있는 아이디/비번을 만들어준다.
왜냐면 하나의 데이터베이스를 여러사람이 사용할 수도 있으니까요.
5. Network Access 메뉴에서 IP를 추가합니다.
데이터베이스 접속할 수 있는 IP를 미리 정의해놓는 일종의 보안장치이다.
Allow access from anywhere을 누르시거나 0.0.0.0/0 을 추가합니다.
6. Database / collection 만들기를 진행합니다.
Cluster는 하나의 호스팅 공간이고
거기 안에 여러분의 데이터베이스를 만들어야 데이터를 저장할 수 있습니다.
데이터베이스 이름을 설정해주면 됩니다.
* MongoDB Atlas 가입 후 호스팅받기
DB를 집 컴퓨터에 설치하기도 하지만 사이트를 실제 배포할 것이라면 클라우드 서비스를 이용하는 것이 매우 안전합니다. 백업도 알아서 해주고 갑자기 사람이 터질 때 용량 걱정도 없고 그리고 무엇보다 접속 속도가 빠릅니다.
* DB 접속하는 URL 찾아오기
- server.js에서 DB에 접속하려면 접속 방법
1. 메인화면 셋팅이 끝나면 CONNECT라는 작은 흰색 버튼 누르기
2. 가운데 Connect Your Application 버튼 누르기
3. Choose your driver version 에서 Node.js 선택되어있는지 잘 확인하기
4. 밑에 접속 URL(Connection String) 긴게 뜨면 복사해서 일단 메모장 같은 곳에 저장해놓기
(참고사항)
접속 URL 복붙하실 때 mongodb+srv://디비계정아이디:디비계정패스워드@cluster0-qaxa3.mongodb.net/데이터베이스이름?retryWrites=true&w=majority
이거 3개를 잘 입력해야합니다.
Server.js에서 DB접속하려면
1. 터미널 켜서 npm install mongodb 를 입력해서 라이브러리를 설치합니다.
MongoDB 접속을 쉽게 도와주는 라이브러리입니다.
2. server.js 상단 쯤에 다음 코드를 추가합니다.
const MongoClient = require('mongodb').MongoClient;
3. 하단에 다음 코드를 입력해줍니다.
const URL = "mongodb+srv://디비계정아이디:디비계정패스워드@cluster0-qaxa3.mongodb.net/데이터베이스이름?retryWrites=true&w=majority"
MongoClient.connect('URL', function(err, client){
if (err) return console.log(err);
//서버띄우는 코드 여기로 옮기기
app.listen('8080', function(){
console.log('listening on 8080')
});
})
app.listen이라고 그 서버 띄우는 코드를 여기 안으로 옮겨주시면 된다.
그리고 터미널에서 nodemon server.js로 서버를 실행시켜서 터미널에 listening on 8080이라고 뜨면 잘되는거다.
* 에러 등이 뜨거나 listening on 8080이 터미널에서 안뜬다면??
1. 접속 URL 양끝에 따옴표 잘있는지 확인
2. URL 안에 아이디 비번란에 Atlas 계정이 아니라 Database Access 메뉴에서 만든 DB 계정 넣었는지 다시 확인
3. URL 내에 비번 입력시 특수문자를 넣어야하시면 (참고) 어려우면 계정만들 때 특수문자를 넣지마세요.
4. Network Access 메뉴에서 허용한 IP에서 접속하고 있는지 확인
5. app.listen 코드 위치 확인
'Study > Node.js' 카테고리의 다른 글
[Node.js] Mongodb Database에 자료 저장하는 법 (0) | 2022.04.16 |
---|---|
[Node.js_study] REST API란??? (0) | 2022.04.15 |
[Node.js_study] 폼에 입력한 데이터를 서버에 전송하기 (POST요청) (0) | 2022.04.15 |
[Node.js_study] 서버에서 HTML 파일전송(GET요청) (0) | 2022.04.15 |
[Node.js_study] 서버에 GET 요청 처리 해보기 (0) | 2022.04.15 |