MySQL은 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터 저장 및 관리에 탁월한 성능을 제공합니다. Node.js는 서버 사이드에서 자바스크립트를 실행하는 환경으로, MySQL과의 통합을 통해 데이터를 처리하는 웹 애플리케이션을 쉽게 구축할 수 있습니다. 이 글에서는 Node.js에서 MySQL을 설정하고 데이터베이스와 상호작용하는 기본적인 방법을 알아보겠습니다.
Node.js와 MySQL 통합: 기본 준비
Node.js에서 MySQL을 사용하려면 MySQL 데이터베이스와 연결하고 쿼리를 실행할 수 있는 패키지가 필요합니다. 여기서는 mysql2라는 패키지를 사용하여 MySQL 데이터베이스와 통합하는 방법을 설명하겠습니다.
1. MySQL 설치
먼저, Node.js가 MySQL 서버와 통신할 수 있도록 시스템에 MySQL이 설치되어 있어야 합니다. MySQL 설치는 운영체제에 따라 다르며, 아래 링크를 통해 각 운영체제별 설치 방법을 확인할 수 있습니다.
2. MySQL 설정 및 데이터베이스 생성
MySQL을 설치한 후, MySQL 서버를 시작하고 데이터베이스를 생성합니다. 터미널 또는 MySQL 워크벤치를 사용해 데이터베이스를 생성할 수 있습니다.
$ mysql -u root -p
mysql> CREATE DATABASE node_mysql;
위 명령어를 통해 node_mysql
라는 데이터베이스를 생성했습니다. 이후 이 데이터베이스에 연결하여 데이터를 저장하고 쿼리를 실행할 수 있습니다.
3. MySQL 패키지 설치
Node.js에서 MySQL과 상호작용하려면 mysql2
패키지를 설치해야 합니다. 이 패키지는 Node.js에서 MySQL에 쉽게 연결하고 쿼리를 실행할 수 있는 기능을 제공합니다.
$ npm install mysql2
Node.js에서 MySQL 연결 설정
MySQL과 연결하려면 MySQL 서버의 연결 정보(호스트, 사용자명, 비밀번호, 데이터베이스 이름 등)를 설정하고, 이를 바탕으로 Node.js 애플리케이션에서 연결을 설정해야 합니다.
MySQL 연결 코드 작성
// app.js
const mysql = require('mysql2');
// MySQL 연결 설정
const connection = mysql.createConnection({
host: 'localhost', // MySQL 서버 호스트
user: 'root', // MySQL 사용자명
password: 'your-password', // MySQL 비밀번호
database: 'node_mysql' // 연결할 데이터베이스 이름
});
// 연결 시도
connection.connect((err) => {
if (err) {
console.error('MySQL 연결 중 오류 발생:', err);
return;
}
console.log('MySQL에 성공적으로 연결되었습니다.');
});
위 코드는 MySQL 서버에 연결하는 기본 설정입니다. mysql.createConnection()
을 사용하여 연결 정보를 설정하고, connect()
메서드로 연결을 시도합니다. 연결이 성공하면 "MySQL에 성공적으로 연결되었습니다." 메시지가 출력됩니다.
MySQL 쿼리 실행
MySQL 연결이 성공하면, 이제 쿼리를 실행할 수 있습니다. query()
메서드를 사용해 SQL 쿼리를 실행하고, 그 결과를 처리할 수 있습니다.
1. 테이블 생성
먼저, 데이터베이스에 users
테이블을 생성하는 예시를 살펴보겠습니다.
// 테이블 생성 쿼리
const createTableQuery = `
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100)
)
`;
// 테이블 생성 실행
connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('테이블 생성 중 오류 발생:', err);
return;
}
console.log('테이블이 성공적으로 생성되었습니다.');
});
위 코드는 users
테이블을 생성하는 SQL 쿼리를 실행하는 예제입니다. 테이블이 이미 존재하지 않는 경우에만 테이블을 생성하며, 성공적으로 생성되면 메시지가 출력됩니다.
2. 데이터 삽입
이제 테이블에 데이터를 삽입하는 방법을 알아보겠습니다.
// 데이터 삽입 쿼리
const insertQuery = 'INSERT INTO users (name, email) VALUES (?, ?)';
const userData = ['John Doe', 'john@example.com'];
// 데이터 삽입 실행
connection.query(insertQuery, userData, (err, results) => {
if (err) {
console.error('데이터 삽입 중 오류 발생:', err);
return;
}
console.log('데이터가 성공적으로 삽입되었습니다.', results.insertId);
});
위 코드는 users
테이블에 이름과 이메일 데이터를 삽입하는 SQL 쿼리입니다. query()
메서드에 쿼리와 함께 데이터 배열을 전달하여 실행할 수 있습니다. 성공적으로 데이터를 삽입하면, 삽입된 행의 ID가 출력됩니다.
3. 데이터 조회
테이블에 삽입된 데이터를 조회하는 방법도 매우 간단합니다. SELECT 쿼리를 사용해 데이터를 가져올 수 있습니다.
// 데이터 조회 쿼리
const selectQuery = 'SELECT * FROM users';
// 데이터 조회 실행
connection.query(selectQuery, (err, results) => {
if (err) {
console.error('데이터 조회 중 오류 발생:', err);
return;
}
console.log('조회된 데이터:', results);
});
위 코드는 users
테이블에서 모든 데이터를 조회하는 SQL 쿼리를 실행하는 예제입니다. 쿼리 실행 결과는 results
배열에 저장되며, 이를 통해 조회된 데이터를 처리할 수 있습니다.
4. 데이터 업데이트
삽입된 데이터를 수정하려면 UPDATE
쿼리를 사용합니다.
// 데이터 업데이트 쿼리
const updateQuery = 'UPDATE users SET name = ? WHERE id = ?';
const updateData = ['Jane Doe', 1];
// 데이터 업데이트 실행
connection.query(updateQuery, updateData, (err, results) => {
if (err) {
console.error('데이터 업데이트 중 오류 발생:', err);
return;
}
console.log('데이터가 성공적으로 업데이트되었습니다.', results.affectedRows);
});
위 코드는 ID가 1인 사용자의 이름을 "Jane Doe"로 업데이트하는 예제입니다. 업데이트된 행의 수는 affectedRows
속성을 통해 확인할 수 있습니다.
5. 데이터 삭제
마지막으로 데이터를 삭제하는 예제를 살펴보겠습니다.
// 데이터 삭제 쿼리
const deleteQuery = 'DELETE FROM users WHERE id = ?';
const deleteData = [1];
// 데이터 삭제 실행
connection.query(deleteQuery, deleteData, (err, results) => {
if (err) {
console.error('데이터 삭제 중 오류 발생:', err);
return;
}
console.log('데이터가 성공적으로 삭제되었습니다.', results.affectedRows);
});
위 코드는 ID가 1인 사용자를 삭제하는 SQL 쿼리입니다. 삭제된 행의 수 역시 affectedRows
속성을 통해 확인할 수 있습니다.
MySQL 연결 종료
모든 작업이 완료되면 MySQL 연결을 종료해야 합니다. connection.end()
메서드를 사용해 안전하게 연결을 종료할 수 있습니다.
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
결론
Node.js에서 MySQL을 사용하여 데이터베이스와 상호작용하는 방법을 살펴보았습니다. mysql2
패키지를 사용하면 MySQL 데이터베이스에 연결하고, 데이터를 삽입, 조회, 수정, 삭제하는 작업을 쉽게 수행할 수 있습니다. 이 가이드를 바탕으로 Node.js 애플리케이션에 MySQL을 통합해 다양한 데이터 처리 기능을 구현해보세요!
댓글 쓰기