Responsive Advertisement

Node.js에서 MySQL 사용하기: 시작 가이드

MySQL은 널리 사용되는 오픈 소스 관계형 데이터베이스 관리 시스템(RDBMS)으로, 데이터 저장 및 관리에 탁월한 성능을 제공합니다. Node.js는 서버 사이드에서 자바스크립트를 실행하는 환경으로, MySQL과의 통합을 통해 데이터를 처리하는 웹 애플리케이션을 쉽게 구축할 수 있습니다. 이 글에서는 Node.js에서 MySQL을 설정하고 데이터베이스와 상호작용하는 기본적인 방법을 알아보겠습니다.

Node.js와 MySQL 통합: 기본 준비

Node.js에서 MySQL을 사용하려면 MySQL 데이터베이스와 연결하고 쿼리를 실행할 수 있는 패키지가 필요합니다. 여기서는 mysql2라는 패키지를 사용하여 MySQL 데이터베이스와 통합하는 방법을 설명하겠습니다.

1. MySQL 설치

먼저, Node.js가 MySQL 서버와 통신할 수 있도록 시스템에 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을 통합해 다양한 데이터 처리 기능을 구현해보세요!

댓글 쓰기