Express.js는 Node.js를 기반으로 한 웹 앱 개발을 위한 강력한 프레임워크입니다. Express.js를 사용하면 쉽게 웹 애플리케이션을 만들 수 있지만, 데이터베이스와의 연결 관리는 중요한 부분입니다. 이를 위해 DB 연결 풀링을 사용하여 효율적으로 DB 연결을 관리할 수 있습니다.
DB 연결 풀링이란?
DB 연결 풀링은 여러 클라이언트가 동시에 데이터베이스에 접속할 수 있는 연결을 제공하는 기술입니다. 이를 통해 클라이언트는 매번 연결을 설정하고 닫을 필요 없이, 미리 생성된 연결 풀에서 연결을 얻고 반납할 수 있습니다. 이는 많은 사용자가 동시에 서비스에 접근할 때 효율적인 자원 관리를 가능하게 합니다.
Express.js에서의 DB 연결 풀링 사용 방법
Express.js에서 DB 연결 풀링을 사용하는 방법은 다음과 같습니다:
- 필요한 npm 모듈을 설치합니다. 예를 들어, MySQL을 사용한다면
mysql
모듈을 설치합니다:npm install mysql
-
애플리케이션의
app.js
파일 또는 적절한 위치에 DB 연결 풀 설정 코드를 추가합니다. 다음은 MySQL을 사용할 때의 예입니다:const mysql = require('mysql'); const pool = mysql.createPool({ host: 'localhost', user: 'root', password: 'password', database: 'mydatabase', connectionLimit: 10 // 최대 연결 수 }); // DB 연결 풀을 앱의 글로벌 변수로 설정 app.locals.dbPool = pool;
-
DB 연결이 필요한 라우터에서는
app.locals
를 통해 DB 연결 풀을 가져와 사용할 수 있습니다. 예를 들어,/users
경로의 GET 요청에 대한 처리 코드에서 DB 연결 풀을 사용하려면 다음과 같이 작성합니다:router.get('/users', function(req, res, next) { const dbPool = req.app.locals.dbPool; dbPool.getConnection(function(err, connection) { if (err) { console.error('DB 연결 실패:', err); return; } // 데이터베이스 쿼리 등 필요한 작업 수행 connection.query('SELECT * FROM users', function(err, results) { connection.release(); if (err) { console.error('쿼리 실행 오류:', err); return; } // 결과를 클라이언트에 응답 res.json(results); }); }); });
위의 예제에서 getConnection()
메서드를 통해 DB 연결을 얻고, 작업을 수행한 후 release()
메서드를 호출하여 연결을 반환합니다. 이를 통해 DB 연결 풀이 자원을 효율적으로 관리할 수 있습니다.
DB 연결 풀링을 사용하면 Express.js 애플리케이션에서 데이터베이스 연결을 효율적으로 관리할 수 있습니다. 이는 동시에 많은 사용자가 서비스에 접근하는 경우에도 안정적인 애플리케이션 운영을 가능케 합니다.