노드 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 모듈)과 스트림 처리 방법을 배워봅시다!
'IT Developer > Node.js' 카테고리의 다른 글
Node.js 기초 <12. Express의 미들웨어와 요청 처리 흐름> (0) | 2025.03.14 |
---|---|
Node.js 기초 <11. 인증과 보안: JWT, OAuth, 세션 관리> (0) | 2025.03.13 |
Node.js 기초 <10. 웹소켓(WebSocket)과 실시간 데이터 처리> (1) | 2025.03.12 |
Node.js 기초 <9. 파일 시스템(fs 모듈)과 스트림(Stream) 활용> (0) | 2025.03.11 |
Node.js 기초 <7. RESTful API 개발: CRUD 구현 및 HTTP 요청 처리> (0) | 2025.03.09 |
Node.js 기초 <6. Express.js로 서버 만들기: 기본 개념과 라우팅> (1) | 2025.03.08 |
Node.js 기초 <5. npm과 패키지 관리: 의존성 관리 및 버전 관리> (0) | 2025.03.07 |
Node.js 기초 <4. Node.js의 내장 모듈과 CommonJS/ESM> (1) | 2025.03.06 |