IT Developer/Node.js

Node.js 기초 <8. Node.js와 데이터베이스 (MySQL, PostgreSQL, MongoDB)>

TEMA_ 2025. 3. 10. 16:51
반응형

노드 Node.js

8. Node.js와 데이터베이스 (MySQL, PostgreSQL, MongoDB) 

 

안녕하세요! 태마입니다.

Node.js 기초 강좌입니다.

 

강좌의 경우 

1. 주제 간단 정리

2. 상세 주제 정리

으로 이루어져 있습니다.

 

노드 Node.js

포스팅 시작하겠습니다 :)

 


 

1. 주제 간단 정리

 

1. Node.js에서 데이터베이스를 사용하는 이유

웹 애플리케이션을 개발할 때, 데이터를 저장하고 관리할 수 있는 데이터베이스가 필요합니다.
Node.js는 다양한 데이터베이스(MySQL, PostgreSQL, MongoDB 등)와 연동할 수 있습니다.

📌 Node.js에서 데이터베이스를 활용하면?
✔ 사용자의 정보, 게시글, 주문 내역 등을 저장 가능
✔ 대용량 데이터를 효율적으로 검색하고 관리 가능
✔ REST API 및 웹 서비스에서 데이터를 동적으로 제공 가능


 

2. 관계형 데이터베이스(RDBMS) vs NoSQL 데이터베이스 비교

1) 관계형 데이터베이스(RDBMS) – MySQL, PostgreSQL

특징설명

데이터 구조 테이블(행과 열) 기반
데이터 무결성 강력한 트랜잭션 관리(ACID 지원)
사용 사례 전자상거래, 금융 시스템

2) NoSQL 데이터베이스 – MongoDB

특징설명

데이터 구조 JSON(Document) 기반
확장성 수평 확장이 용이
사용 사례 실시간 데이터, IoT, 로그 관리

📌 MySQL, PostgreSQL은 정형 데이터에 적합 / MongoDB는 비정형 데이터에 강점!

✅ 여기까지 Node.js에서 사용할 수 있는 데이터베이스의 개념을 배웠습니다!
👉 "그렇다면, Node.js에서 실제로 MySQL, PostgreSQL, MongoDB를 어떻게 연동할까?"
2부에서 Node.js와 데이터베이스 연동 방법을 배워봅시다!

반응형

 

2. 상세 주제 정리

 

1. Node.js와 MySQL 연결하기

MySQL 패키지 설치

$ npm install mysql2

MySQL 연결 코드 (Node.js + MySQL2)

const mysql = require("mysql2");

const connection = mysql.createConnection({
  host: "localhost",
  user: "root",
  password: "password",
  database: "mydb"
});

connection.connect((err) => {
  if (err) throw err;
  console.log("MySQL 연결 성공!");
});

📌 MySQL에 연결되면 콘솔에 "MySQL 연결 성공!" 메시지가 출력됨

MySQL에서 데이터 조회하기

connection.query("SELECT * FROM users", (err, results) => {
  if (err) throw err;
  console.log(results);
});

📌 SQL 쿼리를 사용하여 데이터를 조회할 수 있음!


 

2. Node.js와 PostgreSQL 연결하기

PostgreSQL 패키지 설치

$ npm install pg

PostgreSQL 연결 코드 (Node.js + pg)

const { Client } = require("pg");

const client = new Client({
  host: "localhost",
  user: "postgres",
  password: "password",
  database: "mydb"
});

client.connect()
  .then(() => console.log("PostgreSQL 연결 성공!"))
  .catch((err) => console.error("연결 실패:", err));

📌 PostgreSQL에 연결되면 "PostgreSQL 연결 성공!" 메시지가 출력됨

PostgreSQL에서 데이터 조회하기

client.query("SELECT * FROM users", (err, res) => {
  if (err) throw err;
  console.log(res.rows);
});

📌 PostgreSQL에서는 res.rows를 사용하여 결과를 가져올 수 있음!


 

3. Node.js와 MongoDB 연결하기 (Mongoose 사용)

MongoDB 패키지 설치

$ npm install mongoose

MongoDB 연결 코드 (Node.js + Mongoose)

const mongoose = require("mongoose");

mongoose.connect("mongodb://localhost:27017/mydb", {
  useNewUrlParser: true,
  useUnifiedTopology: true
})
  .then(() => console.log("MongoDB 연결 성공!"))
  .catch((err) => console.error("연결 실패:", err));

📌 MongoDB 연결 후 데이터베이스가 자동으로 생성됨!

MongoDB에서 데이터 추가하기

const UserSchema = new mongoose.Schema({ name: String });
const User = mongoose.model("User", UserSchema);

const newUser = new User({ name: "Alice" });
newUser.save().then(() => console.log("사용자 저장 완료!"));

📌 MongoDB는 SQL 없이 JavaScript 코드만으로 데이터를 저장 가능!

MongoDB에서 데이터 조회하기

User.find().then((users) => console.log(users));

📌 User.find()를 사용하여 모든 데이터를 가져올 수 있음!


 

4. Express와 데이터베이스 연동 – RESTful API 구축

사용자 목록을 데이터베이스에서 조회하는 API (MongoDB)

app.get("/users", async (req, res) => {
  const users = await User.find();
  res.json(users);
});

📌 GET /users 요청 시 MongoDB에서 데이터를 조회하여 반환!

새로운 사용자 추가 API (MySQL 사용)

app.post("/users", (req, res) => {
  const { name } = req.body;
  connection.query("INSERT INTO users (name) VALUES (?)", [name], (err) => {
    if (err) throw err;
    res.send("사용자 추가 완료!");
  });
});

📌 POST /users 요청 시 MySQL에 데이터를 추가할 수 있음!


✅ 여기까지 Node.js와 MySQL, PostgreSQL, MongoDB 연동 방법을 배웠습니다!
👉 "그렇다면, Node.js에서 파일 시스템을 다룰 수 있을까?"
다음 회차에서 파일 시스템(fs 모듈)과 스트림 처리 방법을 배워봅시다!

반응형