Phase 1: notifyHelper.js → shared/utils/ (4개 서비스 중복 제거) Phase 2: auth.js → shared/middleware/ (system1/system2 통합) Phase 3: errors.js + logger.js → shared/utils/ (system1/system2 통합) Phase 4: DB pool → shared/config/database.js (Group B 4개 서비스 통합) - Docker 빌드 컨텍스트를 루트로 변경 (6개 API 서비스) - 기존 파일은 re-export 패턴으로 consumer 변경 0개 유지 - .dockerignore 추가로 빌드 최적화 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
29 lines
721 B
JavaScript
29 lines
721 B
JavaScript
/**
|
|
* 공유 데이터베이스 커넥션 풀
|
|
*
|
|
* Group B 서비스(tkuser, tkpurchase, tksafety, tksupport)용 동기 풀
|
|
* mysql2/promise 기반, 싱글톤 lazy initialization
|
|
*/
|
|
|
|
const mysql = require('mysql2/promise');
|
|
|
|
let pool;
|
|
|
|
function getPool() {
|
|
if (!pool) {
|
|
pool = mysql.createPool({
|
|
host: process.env.DB_HOST || 'mariadb',
|
|
port: parseInt(process.env.DB_PORT) || 3306,
|
|
user: process.env.DB_USER || 'hyungi_user',
|
|
password: process.env.DB_PASSWORD,
|
|
database: process.env.DB_NAME || 'hyungi',
|
|
waitForConnections: true,
|
|
connectionLimit: parseInt(process.env.DB_CONN_LIMIT) || 10,
|
|
queueLimit: 0
|
|
});
|
|
}
|
|
return pool;
|
|
}
|
|
|
|
module.exports = { getPool };
|