minstudio

데이터베이스 연결 (MySQL, PostgreSQL)

게시글, 회원정보, 상품목록 등 영구적으로 보존해야 할 데이터는 메모리가 아니라 데이터베이스(DB)라는 거대한 엑셀 창고에 안전하게 보관해야 합니다. Node.js는 비동기로 DB와 소통하는 데 특화되어 있어 엄청난 성능을 자랑합니다.

🗄️ 연결 풀(Connection Pool)의 마법

DB 연결은 매우 느린 작업입니다. 미리 10개의 연결(웨이터)을 만들어두고 요청이 올 때마다 즉시 할당하는 풀(Pool) 방식은 서버 성능을 수십 배 이상 올려줍니다!

🤵🤵🤵...상시대기...🗄️
const mysql = require("mysql2/promise");

// DB 연결풀(Pool) 생성 (접속자 폭주 대비)
const pool = mysql.createPool({
    host: "localhost",
    user: "root",
    password: "password123",
    database: "my_shop_db",
    waitForConnections: true,
    connectionLimit: 10 // 웨이터(연결) 10명 상시대기
});

app.get("/products", async (req, res) => {
    try {
        // 비동기로 DB에 쿼리 날리기!
        const [rows] = await pool.query("SELECT * FROM products WHERE price > ?", [50000]);
        res.json(rows);
    } catch (err) {
        res.status(500).send("DB 에러");
    }
});
데이터베이스 연결 (MySQL, PostgreSQL) | Minstudio