Node.js - MySQL 시작하기
안녕하세요, 열망하는 프로그래머 여러분! 오늘 우리는 Node.js와 MySQL의 세계로 흥미로운 여정을 떠납니다. 여러분의 친절한 이웃 컴퓨터 과학 교사로서, 저는 이 모험을 단계별로 안내해드리겠습니다. 기존에 코드를 한 줄도 작성한 적이 없더라도 걱정하지 마세요 - 우리는 가장 기초적인 것부터 시작하여 지식을 함께 쌓아갈 것입니다.
MySQL 설치
코딩 부분에 들어가기 전에, 우리는 도구를 설정해야 합니다. 이를 음식을 요리하기 전에 주방을 준비하는 것으로 생각하면 됩니다. 우리가 필요한 첫 번째 재료는 MySQL입니다.
MySQL은 무엇인가요?
MySQL은 데이터를 저장하고 관리하는 슈퍼 정리된 파일 캐비닛과 같습니다. 이는 데이터베이스 관리 시스템으로, 데이터를 효율적으로 저장하고 정리하고 검색하는 데 도움을 줍니다. 만약 도서관에 수천 권의 책을 펜과 종이로 관리해야 한다면 어떨까요? 그것은 악몽이 될 것입니다! MySQL은 이 일을 우리 대신 컴퓨터 데이터로 수행합니다.
MySQL 설치
- 공식 MySQL 웹사이트(https://dev.mysql.com/downloads/)를 방문하세요.
- 운영 체제에 맞는 MySQL 커뮤니티 서버를 다운로드하세요.
- 설치 프로그램을 실행하고 화면 지시에 따라 설치하세요.
- 설치 중에 루트 비밀번호를 설정할 것을 묻습니다. 이 비밀번호를 기억하세요 - 이는 데이터 왕국의 주요 키입니다!
설치가 완료되면, 명령 프롬프트나 터미널을 엽니다 و 다음과 같이 타이پ하여 설치를 확인할 수 있습니다:
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('데이터베이스에 연결되었습니다!');
});
이를 간단히 설명하자면:
-
const mysql = require('mysql');
- 이 줄은 우리가 앞서 설치한 MySQL 드라이버를 임포트합니다. -
const connection = mysql.createConnection({...});
- 여기서 우리는 연결 객체를 생성합니다. 이는 데이터베이스에 접근하기 위해 필요한 세부 정보를 작성하는 양식과 같습니다. -
connect()
함수는 마법이 일어나는 곳입니다. 이는 우리가 제공한 세부 정보를 사용하여 연결을 시도합니다. -
만약 오류가 발생하면 (예: 잘못된 비밀번호), 오류 메시지를 표시합니다.
-
만약 연결이 성공하면 "데이터베이스에 연결되었습니다!"가 표시됩니다.
연결 테스트
테스트를 위해 새 파일 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