Node.js와 MySQL을 결합하면 데이터베이스 기반의 강력한 애플리케이션을 구축할 수 있습니다. 데이터베이스를 생성한 후에는 데이터를 저장하기 위한 테이블을 만들어야 합니다. 이 글에서는 Node.js에서 MySQL 테이블 생성 방법을 단계별로 설명하고, SQL 쿼리를 사용하여 테이블을 생성하는 방법을 소개합니다.
Node.js와 MySQL: 기본 준비
Node.js에서 MySQL과 상호작용하려면 mysql2
패키지를 사용해야 합니다. 이 패키지는 MySQL 데이터베이스와의 연결 및 데이터 처리를 쉽게 할 수 있도록 도와줍니다.
1. MySQL 설치 및 설정
MySQL이 시스템에 설치되어 있지 않다면, 먼저 설치해야 합니다. 아래 링크를 통해 운영체제에 맞는 MySQL 설치 방법을 확인할 수 있습니다.
MySQL 설치 후, mysql -u root -p
명령어로 MySQL 터미널에 로그인한 뒤, 필요한 데이터베이스를 생성하고 설정하세요.
2. Node.js 프로젝트에 mysql2 패키지 설치
Node.js에서 MySQL과 상호작용하기 위해 mysql2
패키지를 설치합니다.
$ npm init -y
$ npm install mysql2
위 명령어로 Node.js 프로젝트에서 사용할 MySQL 패키지를 설치합니다. 이후 MySQL 데이터베이스에 연결하고 테이블을 생성할 준비가 완료됩니다.
MySQL에 연결하고 테이블 생성하기
Node.js에서 MySQL 테이블을 생성하려면, 먼저 데이터베이스에 연결한 다음 SQL 쿼리를 사용해 테이블을 생성합니다.
1. 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에 성공적으로 연결되었습니다.');
});
위 코드는 MySQL 서버에 연결하는 기본적인 설정입니다. 데이터베이스 이름은 이미 생성된 데이터베이스를 사용하며, 이 데이터베이스에 테이블을 생성할 수 있습니다.
2. MySQL 테이블 생성 쿼리
MySQL에 연결한 후, SQL 쿼리를 사용해 테이블을 생성합니다. 예를 들어, 사용자를 저장할 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('테이블이 성공적으로 생성되었습니다.');
});
위 SQL 쿼리는 users
라는 테이블을 생성하며, id
, name
, email
, created_at
등의 컬럼을 포함합니다. AUTO_INCREMENT
는 id
컬럼이 자동으로 증가하도록 설정하며, IF NOT EXISTS
는 동일한 이름의 테이블이 이미 존재하지 않을 때만 테이블을 생성합니다.
3. MySQL 연결 종료
테이블을 생성한 후에는 MySQL 연결을 종료해야 합니다. connection.end()
메서드를 사용하여 연결을 안전하게 종료할 수 있습니다.
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
위 코드는 MySQL 연결을 종료하는 역할을 합니다. 모든 데이터베이스 작업이 완료되면 연결을 종료하는 것이 좋습니다.
전체 코드 예시
위에서 설명한 단계를 모두 합치면, Node.js에서 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 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('테이블이 성공적으로 생성되었습니다.');
// MySQL 연결 종료
connection.end((err) => {
if (err) {
console.error('MySQL 연결 종료 중 오류 발생:', err);
return;
}
console.log('MySQL 연결이 종료되었습니다.');
});
});
});
위 코드를 실행하면 MySQL 서버에 연결한 후 users
테이블이 생성됩니다. 테이블이 이미 존재하는 경우에는 새로 생성되지 않으며, 데이터베이스 작업이 완료된 후에는 연결이 안전하게 종료됩니다.
추가 컬럼과 옵션 설정
테이블을 생성할 때 다양한 컬럼과 옵션을 추가할 수 있습니다. 예를 들어, NOT NULL
옵션을 사용해 특정 컬럼이 비어 있을 수 없도록 설정하거나, DEFAULT
값을 설정할 수 있습니다.
CREATE TABLE IF NOT EXISTS products (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
stock INT DEFAULT 0,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
)
위 예시는 제품을 저장하는 products
테이블을 생성하는 쿼리입니다. price
는 소수점 값을 가질 수 있으며, stock
컬럼의 기본값은 0으로 설정됩니다.
결론
Node.js에서 MySQL 테이블 생성은 매우 간단합니다. mysql2
패키지를 사용하여 MySQL 데이터베이스에 연결하고, SQL 쿼리를 통해 원하는 테이블을 쉽게 생성할 수 있습니다. 테이블을 생성한 후에는 데이터를 삽입, 조회, 수정, 삭제하는 기능을 추가하여 완전한 데이터베이스 기반 애플리케이션을 구축할 수 있습니다. 이 과정을 통해 다양한 데이터를 효율적으로 관리하는 시스템을 개발해보세요!
댓글 쓰기