유저들의 데이터를 저장해야할 경우, 영구적으로 보관할 곳이 하나 필요한데 이때 사용하는 것이 데이터베이스이다
엑셀과 비슷하다
데이터를 입출력할 SQL 언어를 사용해야한다,
그리고 데이터를 저장할 때 정규화를 하여 저장해야한다
ex) MySQL, PostgreSQL, Oracle, SQLite, MSSQL
엑셀이 아닌 {key: value} 형태로 데이터 저장
정규화 안하고 저장해서 속도가 빠름
대신 데이터 정확도가 떨어지고, 수정/삭제가 번거로울 수 있음
ex) redis, mongoDB
자바스크립트 object자료랑 똑같은 모습이다
mongodb.com 에 접속하여 메일인증하여 가입하기!
그리고 무료 선택하기
빠른 서비스를 위해 서버위치를 서울로 선택한다
좌측 Database Access 메뉴에서 DB 접속용 아이디/비번을 생성
좌측 Network Access 메뉴에서 IP를 추가
- 컴퓨터에 직접 mongodb를 설치해서 쓰기
- 클라우드에서 호스팅받아서 쓰기!
mongodb.com 사이트 들어가서 가입하면 무료 호스팅을 받을 수 있기 때문에 호스팅을 받기
그리구 Database / collection 만들기!!
DB 연결 시 주의해야 할 것은 유저에 직접적으로 DB 입출력 권한을 주면 안된다
중간에 검사하는 역할이 필요한데 이것을 서버가 담당한다
ex ) 예를 들어 글을 하나 DB에 저장하고 싶으면
npm install mongodb@5
( 호스팅받은 mongodb에 접속하고 접속 결과를 db라는 변수에 저장 )
const { MongoClient, ObjectId } = require('mongodb')
let db
const url = 'mongodb+srv://wlfjd:wldnjs813!@cluster0.nohbanp.mongodb.net/?retryWrites=true&w=majority'
new MongoClient(url).connect().then((client)=>{
console.log('DB연결성공')
//forum 데이터베이스에 연결
db = client.db('forum')
//자리 이동(성공해야 띄우도록)
//서버 띄우는 코드 app.listen(포트번호) = 내 컴퓨터 PORT 하나 오픈
app.listen(8080,()=>{
console.log('http://localhost:8080 에서 서버 실행중')
})
}).catch((err)=>{
console.log(err)
})
DB접속 URL은 mongodb 사이트의 connect 내의 Driver를 선택하면 된다
그리고 접속아이디, 비번을 내가 만든 것으로 변경
그리고 서버 띄우는 app.listen 코드도 db에 연결되면 실행되도록 자리를 이동시켰다
db에 접속이 완료되면 서버가 정상적으로 잘 뜬다!