728x90
MySQL 설치 및 Node.js 연결: 기본적인 CRUD 작업 설정
이번 포스팅에서는 MySQL 설치부터 Node.js와 연결하는 과정, 그리고 기본적인 CRUD 작업을 설정하는 방법을 다룹니다. 이 과정을 통해 데이터베이스와 서버를 연동하여 웹 애플리케이션에서 데이터를 저장하고 조회하는 기능을 구현할 수 있습니다.
1. MySQL 설치 및 데이터베이스 초기화
1.1 MySQL 설치
먼저 MySQL을 시스템에 설치합니다. MySQL 공식 웹사이트에서 운영 체제에 맞는 버전을 다운로드합니다:
- MySQL 다운로드 페이지로 이동하여 MySQL Community Edition을 다운로드합니다.
- 설치 과정에 따라 MySQL을 설치하고, 설치 도중 루트 계정의 비밀번호를 설정합니다.(여기서는 ReactNode1!로 설정)
- 설치가 완료되면 MySQL Workbench와 MySQL 서버가 자동으로 설치되며, 이를 통해 데이터베이스를 관리할 수 있습니다.(MySQL Workbench 설치가 누락되었을 경우 위 사이트에서 MySQL Workbench만 다시 다운받아서 설치할 수 있습니다.)
1.2 데이터베이스 초기화
MySQL 설치 후, 기본 데이터베이스를 설정하고 초기화합니다.
- MySQL Workbench 또는 터미널을 사용하여 MySQL에 접속합니다.
mysql -u root -p
- 새 데이터베이스를 생성합니다:
CREATE DATABASE my_database;
- 생성한 데이터베이스를 확인하고 선택합니다:
SHOW DATABASES;
USE my_database;
- 데이터베이스에 사용할 테이블을 생성합니다. 예시로 users 테이블을 생성해 보겠습니다:
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
password VARCHAR(100)
);
2. Node.js에서 MySQL과 연결
이제 Node.js 프로젝트에서 MySQL과 연결하여 데이터를 다루는 방법을 알아보겠습니다.
2.1 프로젝트 초기화
- Node.js 프로젝트 폴더를 생성하고, 초기화합니다:(편의상 C:\ 에서 작업 진행합니다.)
md node-mysql-app
cd node-mysql-app
npm init -y
- MySQL 패키지를 설치합니다:
npm install mysql
2.2 MySQL과 연결 설정
db.js 파일을 생성(C:\node-mysql-app)하여 MySQL과 Node.js를 연결하는 코드를 작성합니다.
// db.js
const mysql = require('mysql');
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'ReactNode1!', // MySQL 설치 시 설정한 비밀번호
database: 'my_database'
});
connection.connect((err) => {
if (err) {
console.error('Error connecting to MySQL:', err);
return;
}
console.log('Connected to MySQL database');
});
module.exports = connection;
3. 기본적인 CRUD 작업 설정
3.1 Create (데이터 생성)
다음으로, users 테이블에 데이터를 추가하는 Create 기능을 구현해보겠습니다.
// app.js
const express = require('express');
const connection = require('./db'); // MySQL 연결 설정 파일
const app = express();
app.use(express.json()); // JSON 데이터 처리
// 사용자 생성 API
app.post('/users', (req, res) => {
const { name, email, password } = req.body;
const query = 'INSERT INTO users (name, email, password) VALUES (?, ?, ?)';
connection.query(query, [name, email, password], (err, result) => {
if (err) {
return res.status(500).send('Error creating user');
}
res.status(201).send('User created successfully');
});
});
app.listen(3000, () => {
console.log('Server is running on http://localhost:3000');
});
3.2 Read (데이터 조회)
데이터베이스에 저장된 사용자 정보를 조회하는 Read 기능을 구현합니다.
// 사용자 목록 조회 API
app.get('/users', (req, res) => {
const query = 'SELECT * FROM users';
connection.query(query, (err, results) => {
if (err) {
return res.status(500).send('Error retrieving users');
}
res.json(results);
});
});
3.3 Update (데이터 수정)
기존 데이터를 수정하는 Update 기능을 추가합니다.
// 사용자 정보 수정 API
app.put('/users/:id', (req, res) => {
const { id } = req.params;
const { name, email, password } = req.body;
const query = 'UPDATE users SET name = ?, email = ?, password = ? WHERE id = ?';
connection.query(query, [name, email, password, id], (err, result) => {
if (err) {
return res.status(500).send('Error updating user');
}
res.send('User updated successfully');
});
});
3.4 Delete (데이터 삭제)
마지막으로, 데이터를 삭제하는 Delete 기능을 구현합니다.
// 사용자 삭제 API
app.delete('/users/:id', (req, res) => {
const { id } = req.params;
const query = 'DELETE FROM users WHERE id = ?';
connection.query(query, [id], (err, result) => {
if (err) {
return res.status(500).send('Error deleting user');
}
res.send('User deleted successfully');
});
});
4. 프로젝트 구조
프로젝트 구조는 다음과 같습니다:
node-mysql-app/
│
├── db.js // MySQL 연결 설정 파일
├── app.js // Express 서버 및 CRUD API
└── package.json // 프로젝트 설정 파일
결론
이번 강의에서는 MySQL을 설치하고, Node.js와 연결하여 기본적인 CRUD 작업을 수행하는 방법을 배웠습니다. Express 서버에서 데이터베이스와 상호작용하는 기본적인 기능을 구현했으며, 이를 통해 사용자 관리 시스템 등 다양한 애플리케이션에 활용할 수 있습니다.
728x90
'React와 Node.js를 사용한 웹 애플리케이션 개발' 카테고리의 다른 글
React와 Node.js를 사용한 웹 애플리케이션(게시판) 개발 강좌(5) (2) | 2024.09.17 |
---|---|
React와 Node.js를 사용한 웹 애플리케이션(게시판) 개발 강좌(4) (0) | 2024.09.17 |
React와 Node.js를 사용한 웹 애플리케이션(게시판) 개발 강좌(2) (4) | 2024.09.16 |
React와 Node.js를 사용한 웹 애플리케이션(게시판) 개발 강좌(1) (4) | 2024.09.13 |
React와 Node.js를 사용한 웹 애플리케이션(게시판) 개발 강좌 (0) | 2024.09.13 |