백엔드-노드

노드 실전

강사: 오백엔드 · 작성자: 이종춘 · 작성일: 2026-07-08 17:34:24 · 조회수: 4

14강. Node.js와 MySQL 연동
목록으로
14강. Node.js와 MySQL 연동

이번 강의에서는 Node.js와 MySQL을 연결하여 데이터를 저장하고 조회하는 방법을 배웁니다.

목표: Node.js에서 MySQL에 접속하여 SELECT, INSERT 등 기본 SQL을 실행할 수 있습니다.

1. MySQL이란?

MySQL은 가장 많이 사용하는 관계형 데이터베이스(RDBMS) 중 하나입니다.

데이터를

저장
조회
수정
삭제

할 수 있습니다.

예를 들어

회원



MySQL



회원정보 저장

2. 데이터베이스 구조
MySQL

├── Database

└── Table

├── member
├── board
├── notice
└── product
3. mysql2 설치

Node.js에서 MySQL을 사용하려면 mysql2 패키지를 설치합니다.

npm install mysql2

또는

npm i mysql2

4. 프로젝트 구조
project

├── app.js
├── package.json

├── config
│ db.js

├── routes

├── controllers

└── views

실무에서는 데이터베이스 연결을 별도 파일로 관리합니다.

5. MySQL 연결

config/db.js

const mysql = require("mysql2");

const connection = mysql.createConnection({

host:"localhost",

user:"root",

password:"1234",

database:"node_db"

});

module.exports = connection;

실무에서는 비밀번호를 코드에 직접 작성하지 않고 .env 파일로 관리하는 것이 일반적입니다.

6. 연결 확인

app.js

const db = require("./config/db");

db.connect((err)=>{

if(err){

console.log(err);

return;

}

console.log("MySQL 연결 성공");

});

실행 결과

MySQL 연결 성공

7. 데이터베이스 생성

MySQL에서 실행

CREATE DATABASE node_db;

사용

USE node_db;

8. 회원 테이블 생성
CREATE TABLE member(

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(100),

age INT

);

결과

member

├── id
├── name
└── age

9. 데이터 추가(INSERT)

SQL

INSERT INTO member(name,age)

VALUES('홍길동',30);

Node.js

const sql =

"INSERT INTO member(name,age) VALUES(?,?)";

db.query(sql,

["홍길동",30],

(err,result)=>{

console.log(result);

});

?는 값을 안전하게 전달하는 자리 표시자(Placeholder)입니다.

10. 데이터 조회(SELECT)
const sql =

"SELECT * FROM member";

db.query(sql,(err,result)=>{

console.log(result);

});

결과

[
{ id:1, name:'홍길동', age:30 }
]

11. WHERE 조건
const sql =

"SELECT * FROM member WHERE id=?";

db.query(sql,

[1],

(err,result)=>{

console.log(result);

});

12. 데이터 수정(UPDATE)
const sql =

"UPDATE member

SET age=?

WHERE id=?";

db.query(sql,

[40,1],

(err,result)=>{

console.log(result);

});

13. 데이터 삭제(DELETE)
const sql =

"DELETE FROM member

WHERE id=?";

db.query(sql,

[1],

(err,result)=>{

console.log(result);

});

14. Express와 연동
app.get("/member",(req,res)=>{

const sql="SELECT * FROM member";

db.query(sql,(err,result)=>{

res.json(result);

});

});

브라우저

http://localhost:3000/member



[
{
"id":1,
"name":"홍길동",
"age":30
}
]

15. POST 데이터 저장
app.use(express.json());

app.post("/member",(req,res)=>{

const{

name,

age

}=req.body;

const sql=

"INSERT INTO member(name,age) VALUES(?,?)";

db.query(sql,

[name,age],

()=>{

res.send("저장 완료");

});

});

요청(JSON)

{
"name":"커사맨",
"age":50
}

16. 실습 1

데이터베이스 생성

CREATE DATABASE node_db;

17. 실습 2

회원 테이블 생성

CREATE TABLE member(

id INT AUTO_INCREMENT PRIMARY KEY,

name VARCHAR(100),

age INT

);

18. 실습 3

회원 조회

const sql="SELECT * FROM member";

db.query(sql,

(err,result)=>{

console.log(result);

});

19. 실습 4

회원 등록

const sql=

"INSERT INTO member(name,age)

VALUES(?,?)";

db.query(sql,

["철수",25]);

20. 이번 강의 핵심 정리
기능 SQL
데이터베이스 생성 CREATE DATABASE
테이블 생성 CREATE TABLE
데이터 추가 INSERT
데이터 조회 SELECT
데이터 수정 UPDATE
데이터 삭제 DELETE

Node.js 함수

함수 설명
createConnection() DB 연결
connect() 접속
query() SQL 실행
실무 팁

실무에서는 createConnection()보다 **createPool()(커넥션 풀)**을 사용하는 경우가 많습니다. 여러 사용자의 요청을 효율적으로 처리할 수 있기 때문입니다.

또한, 데이터베이스 접속 정보는 보통 .env 파일에 저장합니다.

예시

DB_HOST=localhost
DB_USER=root
DB_PASSWORD=1234
DB_NAME=node_db

이를 dotenv 패키지와 함께 사용하면 비밀번호를 코드에 직접 작성하지 않아도 됩니다.

실습 미션

다음 기능을 구현해 보세요.

member 테이블 생성
회원 3명 등록
모든 회원 조회
ID가 1인 회원 조회
회원 나이 수정
회원 삭제
#14강. Node.js와 MySQL 연동

첨부 파일

0개
첨부된 파일이 없습니다.

댓글 / 답글

0개
댓글을 작성하려면 로그인하세요.
아직 댓글이 없습니다.