초기 PM 소스 전체 업로드

This commit is contained in:
koj729
2026-06-12 17:14:03 +09:00
commit 4e33c9a02a
1769 changed files with 377797 additions and 0 deletions

31
db/config.js Normal file
View File

@@ -0,0 +1,31 @@
require('dotenv').config();
module.exports = {
"ONPREMISE_DB": {
"host" : process.env.ONPREMISE_POSTGRES_HOST,
"port" : parseInt(process.env.ONPREMISE_POSTGRES_PORT) || 5432,
"database" : process.env.ONPREMISE_POSTGRES_DATABASE,
"user" : process.env.ONPREMISE_POSTGRES_USER,
"password" : process.env.ONPREMISE_POSTGRES_PASSWORD,
"max": 40,
// "idleTimeoutMillis": 30000,
"idleTimeoutMillis": 5000,
"connectionTimeoutMillis": 5000, // 최대 커넥션 대기 시간
// "statement_timeout": 3000
},
"CLOUD_DB": {
"host" : process.env.CLOUD_POSTGRES_HOST,
"port" : parseInt(process.env.CLOUD_POSTGRES_PORT) || 5432,
"database" : process.env.CLOUD_POSTGRES_DATABASE,
"user" : process.env.CLOUD_POSTGRES_USER,
"password" : process.env.CLOUD_POSTGRES_PASSWORD,
"max": 40,
// "idleTimeoutMillis": 30000,
"idleTimeoutMillis": 5000,
"connectionTimeoutMillis": 5000, // 최대 커넥션 대기 시간
// "statement_timeout": 3000,
"ssl": {
ca: process.env.CLOUD_POSTGRES_SSL_CA
}
},
}

14
db/index.js Normal file
View File

@@ -0,0 +1,14 @@
const pool = require('./pool.js');
require('dotenv').config();
module.exports = async () => {
let client;
try {
client = await pool.connect();
console.log(`📡 [db/index.js] ${process.env.DEPLOYMENT_TYPE} DB 연결 성공`);
} catch (err) {
console.error('📡 [db/index.js] DB 연결 에러:', err.stack);
} finally {
client.release(); // 연결 객체를 풀에 반환합니다.
}
};

10
db/pool.js Normal file
View File

@@ -0,0 +1,10 @@
const { Pool } = require('pg');
require('dotenv').config();
const env = `${process.env.DEPLOYMENT_TYPE}_DB`; // ONPREMISE_DB / CLOUD_DB
const config= require('./config.js')[env];
const pool = new Pool(config);
// 커넥션 설정: https://jojoldu.tistory.com/634
module.exports = pool;