refactor: System1 API 인증 체계 SSO 전환 및 마이그레이션 정비

- SSO JWT 인증으로 전환 (auth.service.js)
- worker_id → user_id 마이그레이션 완료
- departments 연동, CORS 미들웨어 정리
- 불필요 파일 삭제 (tk_database.db, visitRequestController.js)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-06 23:18:00 +09:00
parent 2f7e083db0
commit ec755ed52f
47 changed files with 181 additions and 716 deletions

View File

@@ -48,18 +48,14 @@ const server = app.listen(PORT, () => {
env: process.env.NODE_ENV || 'development',
nodeVersion: process.version
});
console.log(`\n🚀 서버가 포트 ${PORT}에서 실행 중입니다.`);
console.log(`📚 API 문서: http://localhost:${PORT}/api-docs\n`);
});
// Graceful Shutdown
const gracefulShutdown = (signal) => {
logger.info(`${signal} 신호 수신 - 서버 종료 시작`);
console.log(`\n🛑 ${signal} 신호를 받았습니다. 서버를 종료합니다...`);
server.close(async () => {
logger.info('HTTP 서버 종료 완료');
console.log('✅ HTTP 서버가 정상적으로 종료되었습니다.');
// 리소스 정리
try {
@@ -79,7 +75,7 @@ const gracefulShutdown = (signal) => {
// 30초 후 강제 종료
setTimeout(() => {
logger.error('강제 종료 - 정상 종료 시간 초과');
console.error(' 정상 종료 실패, 강제 종료합니다.');
console.error(' 정상 종료 실패, 강제 종료합니다.');
process.exit(1);
}, 30000);
};
@@ -94,7 +90,7 @@ process.on('unhandledRejection', (reason, promise) => {
reason: reason,
promise: promise
});
console.error('⚠️ 처리되지 않은 Promise 거부:', reason);
console.error(' 처리되지 않은 Promise 거부:', reason);
if (process.env.NODE_ENV === 'development') {
process.exit(1);
@@ -107,7 +103,7 @@ process.on('uncaughtException', (error) => {
error: error.message,
stack: error.stack
});
console.error('💥 처리되지 않은 예외:', error);
console.error(' 처리되지 않은 예외:', error);
gracefulShutdown('UNCAUGHT_EXCEPTION');
});
@@ -117,11 +113,10 @@ process.on('uncaughtException', (error) => {
if (cache.initRedis) {
await cache.initRedis();
logger.info('캐시 시스템 초기화 완료');
console.log('✅ 캐시 시스템 초기화 완료');
}
} catch (error) {
logger.warn('캐시 시스템 초기화 실패 - 계속 진행', { error: error.message });
console.warn('⚠️ 캐시 시스템 초기화 실패:', error.message);
console.warn(' 캐시 시스템 초기화 실패:', error.message);
}
})();