백엔드 개발자는 API와 DB를 다룬다고 했었었는데
지금까지는 API만 다뤄봤고
이제 DB도 한번 다뤄봅시다
DB에는 관계형 DB랑 NoSQL이란게 있음
MySQL, MariaDB 같은게 관계형 DB고
MongoDB가 NoSQL임
이런 복잡하고 지루한 설명 다 집어치우고
관계형 DB는 엑셀처럼 데이터를 저장하는거고
NoSQL은 그래프, object(JS의 그 오브젝트 맞음) 등의 형태로 데이터를 저장함
나는 오늘 MongoDB를 쓸건데 걔는 object 형태로 데이터를 저장함
{
이름 : '김박사',
나이 : 30,
성별 : 남성
}
이렇게 저장한다는 뜻임
1. MongoDB Atlas 설정하기
자 그럼 바로 mongodb 한번 설정해볼까요?
mongodb를 컴퓨터에 바로 설치해도 되는데
다운받고 설치하고 그런거 귀찮으니깐
mongodb atlas라는걸 한번 써봅시다
https://www.mongodb.com/cloud/atlas/register
MongoDB Atlas
Get started free. No credit card required.
www.mongodb.com
여기 링크 들어가서 회원가입 하세여
그럼 뭐 입력하라고 하는데 대충 눈치껏 채워넣으면 됩니다
요금제 선택은 꼭! 무료 요금제로 해야 함
당연히 무료 안하면 돈내야한다는 점 주의하기
그다음은 서버 위치 선택하는건데 서울 서버 선택하면 됨
다음은 DB 접속 계정 만드는건데 기억할 수 있는걸로 만드세여
까먹으면 nodejs에서 DB 접속 못함
그리고 SECURITY탭에 있는 Database Access로 들어가서,
저기 우측에 Actions 항목에 있는 [EDIT]버튼 누르면 아래와 같은 화면이 뜸
여기 Built-in Role 부분에서 Atlas admin으로 설정을 바꿔줘야 함
바꾸고 나서 하단에 있는 [Update User]버튼 꼭 누르기
자 이제 다 끝나감
이번엔 SECURITY 탭의 Network Access로 들어가서
IP주소 업데이트해줘야 함
ALLOW ACCESS FROM ANYWHERE버튼 눌러주면 저렇게 0.0.0.0/0으로 IP가 설정됨
이번엔 DEPLOYMENT 탭에서 Database 항목으로 들어가서 [Browse Collections]버튼 누릅시다
그럼 이렇게 [Create Database] 버튼 눌러서 DB 만들 수 있음
DB이름이랑 Collection이름 잘 정해서 Create 하면 됨
다시 DEPLOYMENT탭의 Database항목으로 들어오면 Connect버튼이 보일거임
저거 눌러주세요
그럼 이런 화면 뜨는데, Connect your application누르면 됨
Node.js 버전은 걍 최신버전 골라주면 되고
및에 무슨 주소 보이나요?
mongodb+srv://bebsae:<password>@cluster0.kotmhwt.mongodb.net/?retryWrites=true&w=majority
이런 주소가 보이는데 저기 bebsae는 내 DB의 접근 ID임
<password>는 DB 접근 비밀번호임
저기에다가 아까 설정한 비밀번호 넣으면 DB 접속 가능
(<password>라고 되어있다고 <1234> 이렇게 비밀번호 넣으면 안됨. 괄호(<>)이거 지우고 그냥 1234 해야하니 주의하기)
자 이제 DB 셋팅 끝
생각보다 길었다 그죠
2. NodeJS에 MongoDB 연결하기
npm install mongodb
자 우선 터미널에다가 위 명령어 입력해서 mongodb 라이브러리 설치해야함
설치 끝났으면 server.js에 코드 좀 넣어봅시다
참고로 server.js는 예전 포스팅에서 만들어둔 파일임
이 포스팅은 시리즈로 작성되고 있음을 여기서 알려드립니다
2023.01.20 - [코딩/NodeJS] - NodeJS로 서버 만들고 실행해보기
NodeJS로 서버 만들고 실행해보기
서버 뭔가 거창하고 어려울 것 같은데 우린 이미 지난 포스팅에서 준비를 다함 2023.01.19 - [코딩/NodeJS] - 백엔드 공부를 위한 NodeJS 알아보기 + 설치 백엔드 공부를 위한 NodeJS 알아보기 + 설치 개발
bebutae.tistory.com
여길 참조하세여
암튼 코드 넣읍시다
// 몽고DB랑 연결해주는 코드
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect('mongodb+srv://bebsae:비밀번호@cluster0.kotmhwt.mongodb.net/?retryWrites=true&w=majority',
function(에러, client){
if(에러) {
return console.log(에러)
}
// 나는 몽고db atlas에 todoapp이라는 이름의 데이터베이스를 만들어둠
// 이 코드로 todoapp이라는 데이터베이스에 접속 가능
db = client.db('todoapp');
app.listen(8080, function(){
console.log('db connected')
})
})
server.js에 이렇게 코드 집어넣고 서버 구동하면 DB 연결됨
아 근데 혹시 오류가 나나여?
지난번에 우리가
app.listen(8080, function(){
console.log('서버 실행 중');
})
server.js에 이렇게 코드 짰던거 기억남??
저기 보면 8080이 포트번혼데 우리가 새로 짠 코드에도 8080포트로 연결한다고 되어있음
같은 포트를 2군데서 쓰겠다고 하면 싸움남;;
그래서 오류가 발생하는겁니다
그러니 우리가 지난번에 작성한 코드는 주석처리해주세요
주석 어떻게 처리하는지 모르겠따 ?
/*
// listen(서버 띄울 포트번호, 띄운 후 실행할 코드)
app.listen(8080, function () {
console.log("서버 실행 중");
});
*/
자 이렇게 /*랑 */로 감사주면 됩니다
끝이예요 DB 연결 다 해버림
근데 우리 DB에 데이터도 넣고싶고 그렇죠? 그건 다음 포스팅을 봅시다
'코딩 > NodeJS' 카테고리의 다른 글
nodejs+express 서버에 게시글 수정 요청하기 (0) | 2023.01.27 |
---|---|
nodejs로 mongodb랑 데이터 주고받기 (0) | 2023.01.25 |
nodejs에서 웹으로부터의 요청 처리하기(feat. post) (0) | 2023.01.23 |
nodejs로 HTML 파일 띄워보기 (0) | 2023.01.22 |
nodejs 서버 자동으로 껐다 켜주는 Nodemon 설치하기 (0) | 2023.01.21 |