Node.js - MySQL 테이블 생성: 초보자 가이드

안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 Node.js와 MySQL의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 Node.js를 사용하여 MySQL에서 테이블을 생성하는 과정을 안내해 드리겠습니다. 프로그래밍에 새로운 분이라면 걱정하지 마세요 - 우리는 기초에서 시작하여 차례대로 진행하겠습니다. 그러니 커피(또는 차, 당신이 좋아하는 것이라면)를 한 잔 마시고, 이제 뛰어들어 보겠습니다!

Node.js - MySQL Create Table

기본 개념 이해

코드로 뛰어들기 전에 잠시 우리가 다루고 있는 것을 이해해 보겠습니다. Node.js는 서버 측에서 JavaScript를 실행할 수 있게 해주는 강력한 JavaScript 런타임입니다. 반면 MySQL은 널리 사용되는 관계형 데이터베이스 관리 시스템입니다. 이 두 기술을 결합하면 데이터베이스와 상호작용하는 동적 웹 애플리케이션을 만들 수 있습니다.

이제 책장을 정리하는 것을 상상해 보세요. 각 책장은 우리 데이터베이스의 테이블이 될 수 있고, 각 책은 데이터의 행을 나타냅니다. 테이블 생성은 새로운 책장을 설정하고 그에 들어갈 수 있는 책(데이터)의 종류에 대한 규칙을 정하는 것과 같습니다.

MySQL에서 CREATE TABLE

먼저 MySQL에서 테이블을 직접 생성하는 방법을 살펴보겠습니다. 이는 Node.js로 하는 것보다 기초가 되는 단계입니다.

기본 문법

MySQL에서 테이블을 생성하는 기본 문법은 다음과 같습니다:

CREATE TABLE table_name (
column1 datatype,
column2 datatype,
column3 datatype,
....
);

이를 구분해 보면:

  • CREATE TABLE은 MySQL에 새로운 테이블을 생성하려는 명령을 알립니다.
  • table_name은 테이블을 부르고 싶은 이름을 지정합니다.
  • 괄호 안에 컬럼과 데이터 타입을 나열합니다.

간단한 예제

책에 대한 정보를 저장할 테이블을 생성해 보겠습니다:

CREATE TABLE books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publication_year INT,
isbn VARCHAR(13) UNIQUE
);

이 예제에서:

  • id는 자동 증가하는 정수이며 기본 키 역할을 합니다.
  • titleauthor는 NULL이 될 수 없는 가변 길이 문자열입니다.
  • publication_year는 정수입니다.
  • isbn은 유일한 13자리 문자열입니다.

저가 책장을 정리하는 것을 이야기했을 때, 이 테이블 구조는 각 책장 섹션을 레이블링하는 것과 같습니다: 책의 ID, 제목, 저자 등 각각에 해당하는 섹션이 있습니다.

Node.js에서 CREATE TABLE

이제 MySQL에서 테이블을 생성하는 방법을 이해했으므로, Node.js를 사용하여 같은 결과를 얻는 방법을 살펴보겠습니다. 이제부터 마법이 시작됩니다!

설정

먼저 Node.js 환경을 설정하고 필요한 패키지를 설치합니다. 터미널을 열고 다음 명령어를 실행합니다:

npm init -y
npm install mysql2

이 명령어는 새로운 Node.js 프로젝트를 생성하고 mysql2 패키지를 설치합니다.

MySQL에 연결

테이블을 생성하기 전에 MySQL 데이터베이스에 연결해야 합니다. 다음과 같이 합니다:

const mysql = require('mysql2');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});

connection.connect((err) => {
if (err) {
console.error('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to database.');
});

'your_username', 'your_password', 'your_database_name'를 실제 MySQL 자격 증명으로 변경하세요.

테이블 생성

이제 Node.js를 사용하여 책 테이블을 생성해 보겠습니다:

const createTableQuery = `
CREATE TABLE IF NOT EXISTS books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publication_year INT,
isbn VARCHAR(13) UNIQUE
)
`;

connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('Error creating table: ' + err.stack);
return;
}
console.log('Table created successfully.');
});

이를 구분해 보면:

  1. 우리는 SQL 쿼리를 문자열로 정의합니다.
  2. IF NOT EXISTS를 사용하여 테이블이 이미 존재하면 오류를 방지합니다.
  3. connection.query() 메서드를 사용하여 SQL 쿼리를 실행합니다.
  4. 콜백 함수를 제공하여 결과나 오류를 처리합니다.

모든 것을 합쳐서

데이터베이스에 연결하고 테이블을 생성하는 완전한 스크립트는 다음과 같습니다:

const mysql = require('mysql2');

const connection = mysql.createConnection({
host: 'localhost',
user: 'your_username',
password: 'your_password',
database: 'your_database_name'
});

connection.connect((err) => {
if (err) {
console.error('Error connecting to the database: ' + err.stack);
return;
}
console.log('Connected to database.');

const createTableQuery = `
CREATE TABLE IF NOT EXISTS books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(100) NOT NULL,
author VARCHAR(50) NOT NULL,
publication_year INT,
isbn VARCHAR(13) UNIQUE
)
`;

connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('Error creating table: ' + err.stack);
return;
}
console.log('Table created successfully.');
connection.end(); // 작업이 끝나면 연결을 닫습니다
});
});

이 스크립트를 실행하려면 create_table.js로 저장하고 Node.js로 실행합니다:

node create_table.js

모든 것이 잘되면 "Connected to database." 뒤에 "Table created successfully."가 표시됩니다.

결론

축하합니다! 지금 당신은 Node.js를 사용하여 첫 MySQL 테이블을 생성했습니다. 우리가 한 일은 데이터베이스의 거대한 도서관에서 새로운 책장을 정리하는 것과 같습니다. 이 스크립트를 실행할 때마다 책장(테이블)이 존재하지 않으면 새로 만들어집니다.

이제 이 지식을 바탕으로 더 복잡한 테이블을 생성하고, 이들 간의 관계를 추가하고, 강력한 데이터베이스 구동 애플리케이션을 개발할 수 있습니다.

마무리하며, 친절한 컴퓨터 과학 교사로서의 조언을 드리자면: 항상 연결 상세 정보를 다시 확인하고 MySQL 서버가 실행 중인지 확인하세요. 이렇게 하면 당신이 당황하지 않도록 도와줄 것입니다!

계속 연습하고, 호기심을 유지하며, 행복하게 코딩하세요!

메서드 설명
mysql.createConnection() 새로운 MySQL 연결 생성
connection.connect() MySQL 서버와 연결
connection.query() 연결된 데이터베이스에서 SQL 쿼리 실행
connection.end() MySQL 연결 닫기

Credits: Image by storyset