Node.js - MySQL 시작하기

안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 Node.js와 MySQL의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 이 모험을 단계별로 안내해드리겠습니다. 기존에 코드를 한 줄도 작성한 적이 없더라도 걱정하지 마세요 - 우리는 가장 기초적인 것부터 시작하여 지식을 함께 쌓아갈 것입니다.

Node.js - MySQL Get Started

MySQL 설치

코딩 부분에 들어가기 전에, 우리는 도구를 설정해야 합니다. 이를 음식을 요리하기 전에 주방을 준비하는 것으로 생각하면 됩니다. 우리가 필요한 첫 번째 재료는 MySQL입니다.

MySQL은 무엇인가요?

MySQL은 데이터를 저장하고 관리하는 슈퍼 정리된 파일 캐비닛과 같습니다. 이는 데이터베이스 관리 시스템으로, 데이터를 효율적으로 저장하고 정리하고 검색하는 데 도움을 줍니다. 만약 도서관에 수천 권의 책을 펜과 종이로 관리해야 한다면 어떨까요? 그것은 악몽이 될 것입니다! MySQL은 이 일을 우리 대신 컴퓨터 데이터로 수행합니다.

MySQL 설치

  1. 공식 MySQL 웹사이트(https://dev.mysql.com/downloads/)를 방문하세요.
  2. 운영 체제에 맞는 MySQL 커뮤니티 서버를 다운로드하세요.
  3. 설치 프로그램을 실행하고 화면 지시에 따라 설치하세요.
  4. 설치 중에 루트 비밀번호를 설정할 것을 묻습니다. 이 비밀번호를 기억하세요 - 이는 데이터 왕국의 주요 키입니다!

설치가 완료되면, 명령 프롬프트나 터미널을 엽니다 و 다음과 같이 타이پ하여 설치를 확인할 수 있습니다:

mysql --version

버전 번호가 표시되면 축하합니다! MySQL을 성공적으로 설치했습니다.

MySQL 드라이버를 위한 Node.js

이제 데이터베이스 시스템이 준비되었으므로, Node.js가 MySQL과 소통할 수 있는 방법이 필요합니다. 이는 MySQL 드라이버가 필요한 이유입니다. 이를 Node.js와 MySQL이 서로 이해할 수 있도록 도와주는 통역자로 생각하면 됩니다.

MySQL 드라이버 설치

MySQL 드라이버를 설치하기 위해 npm(노드 패키지 관리자)를 사용할 것입니다. 이는 Node.js 패키지의 앱 스토어와 같습니다. 터미널을 엽니다 다음과 같이 타이프하세요:

npm install mysql

이 명령은 npm이 mysql 패키지를 다운로드하고 설치하도록 합니다. 쉬운 일, 아닙니까?

연결 설정

이제 흥미로운 부분이 시작됩니다 - Node.js와 MySQL을 연결하는 것입니다! 이는 두 친구를 소개하고 그들이 손을 맞추는 것을 도와주는 것과 같습니다.

기본 연결

우리의 첫 번째 코드 조각을 작성하여 연결을 설정해보겠습니다:

const mysql = require('mysql');

const connection = mysql.createConnection({
host: 'localhost',
user: 'yourusername',
password: 'yourpassword',
database: 'yourdatabase'
});

connection.connect((err) => {
if (err) {
console.error('데이터베이스 연결 중 오류:', err);
return;
}
console.log('데이터베이스에 연결되었습니다!');
});

이를 간단히 설명하자면:

  1. const mysql = require('mysql'); - 이 줄은 우리가 앞서 설치한 MySQL 드라이버를 임포트합니다.

  2. const connection = mysql.createConnection({...}); - 여기서 우리는 연결 객체를 생성합니다. 이는 데이터베이스에 접근하기 위해 필요한 세부 정보를 작성하는 양식과 같습니다.

  3. connect() 함수는 마법이 일어나는 곳입니다. 이는 우리가 제공한 세부 정보를 사용하여 연결을 시도합니다.

  4. 만약 오류가 발생하면 (예: 잘못된 비밀번호), 오류 메시지를 표시합니다.

  5. 만약 연결이 성공하면 "데이터베이스에 연결되었습니다!"가 표시됩니다.

연결 테스트

테스트를 위해 새 파일 db_connect.js를 만들고, 위의 코드를 (플레이스홀더를 실제 MySQL 세부 정보로 대체하여) 붙여넣고 Node.js를 사용하여 실행합니다:

node db_connect.js

모든 것이 올바르게 설정되어 있다면, 터미널에 "데이터베이스에 연결되었습니다!"가 표시되어야 합니다. 축하합니다! 여러분은 첫 번째 Node.js-MySQL 연결을 성공적으로 만들었습니다!

연결 닫기

연결을 종료하는 것은 중요합니다. 다음과 같이 할 수 있습니다:

connection.end((err) => {
if (err) {
console.error('데이터베이스 연결 종료 중 오류:', err);
return;
}
console.log('데이터베이스 연결이 닫혔습니다.');
});

언제 연결을 종료해야 하는지 항상 기억하세요 - 방을 나갈 때 불을 끄는 것과 같습니다!

기본 데이터베이스 연산

이제 데이터베이스에 연결할 수 있으므로, 몇 가지 기본 연산을 수행해보겠습니다.

테이블 생성

간단한 테이블을 만들어 책에 대한 정보를 저장해보겠습니다:

const createTableQuery = `
CREATE TABLE IF NOT EXISTS books (
id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(255) NOT NULL,
author VARCHAR(255) NOT NULL,
published_year INT
)
`;

connection.query(createTableQuery, (err, results) => {
if (err) {
console.error('테이블 생성 중 오류:', err);
return;
}
console.log('테이블이 성공적으로 생성되었습니다!');
});

이 쿼리는 'books'라는 테이블을 생성하고, id, title, author, published_year라는 열을 포함합니다.

데이터 삽입

이제 테이블에 책을 추가해보겠습니다:

const insertBookQuery = `
INSERT INTO books (title, author, published_year)
VALUES ('The Great Gatsby', 'F. Scott Fitzgerald', 1925)
`;

connection.query(insertBookQuery, (err, result) => {
if (err) {
console.error('책 추가 중 오류:', err);
return;
}
console.log('책이 성공적으로 추가되었습니다!');
});

데이터检索

마지막으로, 우리는 테이블에서 책을检索하고 표시해보겠습니다:

const selectBooksQuery = 'SELECT * FROM books';

connection.query(selectBooksQuery, (err, results) => {
if (err) {
console.error('책检索 중 오류:', err);
return;
}
console.log('데이터베이스의 책:');
results.forEach((book) => {
console.log(`${book.title} by ${book.author} (${book.published_year})`);
});
});

이 쿼리는 테이블에서 모든 책을检索하고 표시합니다.

결론

축하합니다! 여러분은 Node.js와 MySQL의 세계로 첫 걸음을 내디디셨습니다. 우리는 설치, 연결 및 기본 데이터베이스 연산을 다루었습니다. 기억하시기 바랍니다, 새로운 기술을 배우는 것은 연습이 관键입니다. 다음 도전 과제를 시도해보세요: 도서관 시스템을 관리하는 프로그램을 만들어보세요. 이 프로그램은 새로운 책을 추가하고 책을 대출하고 사용 가능한 책을 표시할 수 있어야 합니다. 이 프로젝트는 배운 것을 강화하고 더 복잡한 개념을 탐구하도록 유도할 것입니다.

기억하시기 바랍니다, 모든 전문가는 초보자였습니다. 연습을 하고, 호기심을 유지하며, 실수를 두려워하지 마세요 - 이는 우리가 배우고 성장하는 방법입니다. 행복하게 코딩하세요!

메서드 설명
createConnection() 새로운 MySQL 연결을 생성합니다
connect() 데이터베이스에 연결합니다
end() 데이터베이스 연결을 닫습니다
query() 데이터베이스에서 SQL 쿼리를 실행합니다
escape() SQL 인젝션을 방지하기 위해 값을 이스케이프합니다
format() 값을 자동으로 이스케이프하여 SQL 문장을 준비합니다
beginTransaction() 새로운 트랜잭션을 시작합니다
commit() 현재 트랜잭션을 커밋합니다
rollback() 현재 트랜잭션을 롤백합니다
changeUser() 연결의 현재 사용자를 변경합니다
ping() 서버를 ping하여 연결을 확인합니다
statistics() 서버 통계를 반환합니다
threadId 현재 연결의 스레드 ID를 반환합니다

Credits: Image by storyset