Node.js는 서버 사이드에서 자바스크립트를 실행하는 런타임 환경으로, 다양한 데이터베이스와 연동하여 웹 애플리케이션을 구축할 수 있습니다. 특히, MySQL과 Node.js를 함께 사용하면 데이터를 쉽게 저장하고 관리할 수 있습니다. 이 글에서는 Node.js에서 MySQL을 사용해 데이터를 삽입하는 방법, 즉 INSERT INTO 문을 사용한 데이터 삽입을 단계별로 설명하겠습니다.
Node.js와 MySQL 연결 설정
MySQL에 데이터를 삽입하기 전에 먼저 Node.js와 MySQL 간의 연결을 설정해야 합니다. 이를 위해 mysql2
패키지를 사용합니다. 이 패키지는 MySQL과의 데이터 통신을 지원하는 공식 패키지로, 설치 후 사용할 수 있습니다.
1. mysql2 패키지 설치
프로젝트 디렉토리에서 mysql2
패키지를 설치합니다. npm
을 사용하여 간단하게 설치할 수 있습니다.
$ npm init -y
$ npm install mysql2
이 명령어를 실행하면 mysql2
패키지가 설치됩니다. 이제 MySQL과 Node.js를 연결할 준비가 완료되었습니다.
2. MySQL 연결 설정
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' // 사용할 데이터베이스 이름
});
// MySQL 연결
connection.connect((err) => {
if (err) {
console.error('MySQL 연결 중 오류 발생:', err);
return;
}
console.log('MySQL에 성공적으로 연결되었습니다.');
});
위 코드를 통해 Node.js와 MySQL 데이터베이스 간의 연결이 설정됩니다. 이제 이 연결을 통해 데이터를 삽입할 수 있습니다.
MySQL에 데이터 삽입하기: INSERT INTO
MySQL에서 데이터를 삽입할 때는 INSERT INTO 구문을 사용합니다. 테이블에 삽입할 데이터를 지정하여 새로운 행을 추가할 수 있습니다. Node.js에서 이 구문을 사용해 데이터를 삽입하는 방법을 단계별로 살펴보겠습니다.
1. 테이블 생성
먼저, 데이터를 삽입할 테이블이 필요합니다. 예를 들어, 사용자를 저장할 users
테이블을 다음과 같이 생성할 수 있습니다.
// users 테이블 생성 쿼리
const createTableQuery = `
CREATE TABLE IF NOT EXISTS users (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
`;
// 테이블 생성 실행
connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('테이블 생성 중 오류 발생:', err);
return;
}
console.log('테이블이 성공적으로 생성되었습니다.');
});
위 쿼리를 통해 users
테이블이 생성됩니다. name
, email
을 저장할 수 있으며, created_at
필드에는 데이터가 삽입된 시간을 자동으로 기록합니다.
2. 데이터 삽입 쿼리 작성
이제 INSERT INTO
문을 사용하여 데이터를 삽입하는 코드를 작성해보겠습니다. name
과 email
필드에 값을 삽입하고, 행을 추가할 수 있습니다.
// 데이터 삽입 쿼리
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('데이터가 성공적으로 삽입되었습니다. 삽입된 행 ID:', results.insertId);
});
위 코드에서는 INSERT INTO
문을 사용해 users
테이블에 데이터를 삽입했습니다. VALUES (?, ?)
는 userData
배열에 있는 값으로 대체됩니다. 삽입이 완료되면, results.insertId
를 통해 삽입된 행의 ID를 확인할 수 있습니다.
3. 여러 개의 데이터 삽입하기
한 번에 여러 개의 데이터를 삽입하려면, INSERT INTO
문에 여러 개의 값 목록을 제공할 수 있습니다.
// 다중 데이터 삽입 쿼리
const multipleInsertQuery = 'INSERT INTO users (name, email) VALUES ?';
const multipleUserData = [
['Jane Doe', 'jane@example.com'],
['Mike Smith', 'mike@example.com'],
['Sara Lee', 'sara@example.com']
];
// 다중 데이터 삽입 실행
connection.query(multipleInsertQuery, [multipleUserData], (err, results) => {
if (err) {
console.error('여러 데이터 삽입 중 오류 발생:', err);
return;
}
console.log('여러 데이터가 성공적으로 삽입되었습니다. 삽입된 행 수:', results.affectedRows);
});
위 코드는 여러 개의 사용자 데이터를 한 번에 삽입하는 예시입니다. VALUES ?
는 배열에 포함된 여러 행의 데이터를 삽입할 수 있게 합니다. 삽입된 행의 수는 results.affectedRows
를 통해 확인할 수 있습니다.
MySQL 연결 종료
모든 데이터베이스 작업이 완료되면, MySQL 연결을 안전하게 종료하는 것이 중요합니다. connection.end()
메서드를 사용해 연결을 종료할 수 있습니다.
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
이 코드를 통해 데이터 삽입 후 MySQL 연결이 안전하게 종료됩니다.
전체 코드 예시
위에서 설명한 내용을 바탕으로, MySQL에 데이터를 삽입하는 전체 코드는 다음과 같습니다.
// app.js
const mysql = require('mysql2');
// MySQL 연결 설정
const connection = mysql.createConnection({
host: 'localhost',
user: 'root',
password: 'your-password',
database: 'node_mysql'
});
// MySQL 연결
connection.connect((err) => {
if (err) {
console.error('MySQL 연결 중 오류 발생:', err);
return;
}
console.log('MySQL에 성공적으로 연결되었습니다.');
// 데이터 삽입 쿼리
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('데이터가 성공적으로 삽입되었습니다. 삽입된 행 ID:', results.insertId);
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
});
});
이 코드를 실행하면 MySQL에 데이터를 삽입하고, 삽입된 행의 ID를 출력한 후 연결을 종료합니다.
결론
Node.js와 MySQL을 함께 사용하면, 데이터를 쉽게 삽입하고 관리할 수 있습니다. mysql2
패키지를 사용해 MySQL 데이터베이스에 연결하고, INSERT INTO 문을 통해 데이터를 테이블에 삽입할 수 있습니다. 이 과정을 통해 Node.js 애플리케이션에 데이터를 저장하는 기능을 쉽게 구현할 수 있습니다. 여러 데이터를 삽입하거나 특정 데이터를 삽입할 때 이 방법을 사용하여 효율적으로 작업을 처리해보세요!
댓글 쓰기