가벼운 Node.js로 서버 개발 - DB

최다안·2023년 1월 2일
0

Node.js

목록 보기
2/2
post-thumbnail

💡 Node.js로 서버 개발 - DB

📖 목차

  1. DB
    • 관계형
    • NoSQL
  2. Node.js와 MongoDB
    • MongoDB 세팅
    • CRUD

📌 DB

1) 관계형

  • 2차원 데이터
  • 구조화된 데이터
  • 보통 SQL로 데이터 입출력
  • 스키마를 정의하여 관리에 편함
  • 데이터 무결성 보존
  • 트랜잭션 기능을 이용해 금융, 거래 서비스에 사용됨
  • Scale up 방법으로 DB 확장

2) NoSQL

  • SQL 없이 사용할 수 있는 DB
  • 대량의 데이터를 빠르게 입출력하는데 편함 (Scailing 쉬움, Scale out으로 데이터 분산저장)
  • 스키마 없이도 사용 가능
  • 관계형DB에서의 구조화 기능(스키마, 조인 등)들을 사용하기 위해서는 라이브러리를 이용
  • Key-value 모델, Document 모델, Graph 모델, Column Family 모델 [1]

📌 Node.js와 MongoDB

1) MongoDB 세팅

  1. mongodb 사이트에서 계정 생성 후 DB 유저 만들고 네트워크 접근 권한 설정 => 여기서 https://www.mongodb.com/atlas/database
  2. cluster에서 Database와 collection 생성
  3. mongodb 라이브러리 설치 : npm install mongodb@3.6.4
  4. mongodb 라이브러리 사용 코드와 연결
const MongoClient = require('mongodb').MongoClient;
MongoClient.connect('connect string 찾아서 넣음', function(에러, client){
    if (에러) return console.log(에러)
    db = client.db('db이름'); // db(폴더)에 연결

    app.listen(8080, function(){
        console.log('listening on 8080') // 서버 오픈 시 실행할 코드
    });
    // 원하는 포트에 서버를 오픈
    // 콜백 함수 : 함수 안에 들어가는 함수, 순차적 실행 목적으로 사용
    // 예) listen() 함수 동작 후 function() 함수 실행하는 목적
});
// mongodb 라이브러리 첨부와 사용

2) CRUD

  • READ
// DB에 저장된 post라는 collection 안의 모든 데이터를 모두 조회
db.collection('post').find().toArray(function(에러, 결과) {
  		// 에러 코드 중략
        console.log(결과);
});
// DB에 저장된 post라는 collection 안의 name이 'name'인 특정 데이터 조회
db.collection('counter').findOne({ name : 'name' }, function(에러, 결과) {
  		// 에러 코드 중략
        console.log(결과);
});
  • CREATE
// DB에 저장된 post라는 collection에 데이터 생성
db.collection('post').insertOne( { 제목 : '제목', 날짜 : '날짜'}, function(에러, 결과) {
        // 에러 코드 중략
        console.log('저장완료');
}); 
  • UPDATE
// $set 연산자
// DB에 저장된 post라는 collection에 특정 id 데이터 수정
db.collection('post').updateOne({ _id : id },{ $set : { 제목 : '수정제목', 날짜 : '수정날짜' } }, function(에러, 결과){
        // 에러 코드 중략
        console.log('저장완료');
});
  • DELETE
// DB에 저장된 post라는 collection에 특정 id 데이터 삭제
db.collection('post').deleteOne({ _id : id }, function(에러, 결과) {
        // 에러 코드 중략
        console.log('삭제완료');
});

&링크모음
[1] Nosql 모델

profile
https://github.com/DaanChoi

0개의 댓글