[2025-12-19T01:28:03.160Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T01:28:03.162Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2025-12-19T03:49:44.167Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T03:49:44.170Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "9ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2025-12-19T04:45:53.564Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T04:45:53.567Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "8ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T04:50:25.816Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T04:50:25.818Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "46005ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:00:41.127Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T05:00:41.130Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "47941ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:02:24.251Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T05:02:24.254Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "41423ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:24:07.104Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T05:24:07.105Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "21ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:24:32.095Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T05:24:32.099Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "15ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:28:04.711Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T05:28:04.715Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "7ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:29:35.308Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2025-12-19T05:29:35.309Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "27ms", "ip": "::ffff:185.199.111.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2025-12-19T05:50:32.535Z] [ERROR] ❌ 활성 프로젝트 목록 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 활성 프로젝트 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/projectController.js:63:23\n at Object.getActiveProjects (/usr/src/app/models/projectModel.js:51:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/projects/active/list", "method": "GET", "user": "tester" } [2025-12-19T05:50:32.539Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/projects/active/list", "statusCode": 500, "duration": "9ms", "ip": "::ffff:185.199.111.133", "user": "tester", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/18.6 Safari/605.1.15" } [2026-01-06T06:41:55.859Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-06T06:41:55.863Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "8ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2026-01-06T06:42:08.280Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-06T06:42:08.282Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "5ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2026-01-06T06:46:36.983Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-06T06:46:36.985Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "7ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2026-01-07T06:38:19.704Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-07T06:38:19.707Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "7ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2026-01-07T21:04:59.918Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-07T21:04:59.922Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "13ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/143.0.0.0 Safari/537.36" } [2026-01-18T23:10:57.364Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-18T23:10:57.366Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "7ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:14:14.769Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다\n at /usr/src/app/controllers/workerController.js:121:23\n at Object.update (/usr/src/app/models/workerModel.js:119:4)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-18T23:14:14.772Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "7ms", "ip": "::ffff:172.20.0.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:16:46.906Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'phone_number' in 'field list' Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'phone_number' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:116:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "김두수" } [2026-01-18T23:16:46.908Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:44:53.901Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-18T23:44:53.905Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-18T23:44:53.906Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "16ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:44:57.259Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2025, "month": 12, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-18T23:44:57.262Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2025&month=12", "method": "GET", "user": "anonymous" } [2026-01-18T23:44:57.264Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2025&month=12", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:44:57.938Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2025, "month": 11, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-18T23:44:57.940Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2025&month=11", "method": "GET", "user": "anonymous" } [2026-01-18T23:44:57.943Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2025&month=11", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:44:58.524Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2025, "month": 10, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-18T23:44:58.526Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2025&month=10", "method": "GET", "user": "anonymous" } [2026-01-18T23:44:58.529Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2025&month=10", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:47:29.522Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-18T23:47:29.524Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-18T23:47:29.525Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-18T23:54:23.399Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-18T23:54:23.400Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-18T23:54:23.402Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T00:25:33.270Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:25:33.275Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:25:33.276Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "45ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T00:28:22.901Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:28:22.903Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:28:22.904Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "77ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T00:37:37.852Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:37:37.856Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:37:37.860Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "38ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T00:50:26.248Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:50:26.249Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "17ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T00:50:44.368Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:50:44.372Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "11ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T00:51:02.688Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:51:02.690Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "21ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T00:52:04.069Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:52:04.071Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "101ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T00:52:09.791Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:52:09.793Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "81ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T00:53:00.469Z] [ERROR] ❌ Unexpected token ! in JSON at position 44 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 44\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:53:04.774Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T00:53:04.775Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "103ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T00:54:23.251Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:54:23.252Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:54:23.253Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T00:58:54.612Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:58:54.613Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:58:54.615Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "17ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T00:59:30.534Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:59:30.536Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:59:30.538Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T00:59:45.312Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T00:59:45.314Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T00:59:45.316Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T01:00:44.331Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T01:00:44.331Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T01:00:44.333Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "13ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T01:01:03.347Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T01:01:03.348Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T01:01:03.350Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "12ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T01:01:09.933Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T01:01:09.935Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T01:01:09.937Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T01:01:21.612Z] [ERROR] ❌ 사용자 목록 조회 실패 Context: { "error": "Unknown column 'phone' in 'field list'" } [2026-01-19T01:01:21.613Z] [ERROR] ❌ 사용자 목록을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 목록을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:64:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users", "method": "GET", "user": "hyungi" } [2026-01-19T01:01:21.614Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "curl/8.7.1" } [2026-01-19T01:05:36.550Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'show_in_work_reports' in 'field list' Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'show_in_work_reports' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:145:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "hyungi" } [2026-01-19T01:05:36.555Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "20ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T01:20:19.705Z] [ERROR] ❌ 작업자 수정 중 오류가 발생했습니다: Unknown column 'employment_status' in 'field list' Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업자 수정 중 오류가 발생했습니다: Unknown column 'employment_status' in 'field list'\n at /usr/src/app/controllers/workerController.js:129:16\n at Object.update (/usr/src/app/models/workerModel.js:145:5)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/workers/7", "method": "PUT", "user": "hyungi" } [2026-01-19T01:20:19.708Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/workers/7", "statusCode": 500, "duration": "11ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T01:28:00.203Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/attendance-records?year=2026&month=1", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "curl/8.7.1" } [2026-01-19T01:28:52.115Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/attendance-records?year=2026&month=1", "statusCode": 500, "duration": "4ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "curl/8.7.1" } [2026-01-19T01:29:45.341Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance?year=2026", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "curl/8.7.1" } [2026-01-19T01:29:45.481Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/monthly-stats?year=2026&month=1", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "curl/8.7.1" } [2026-01-19T01:37:53.595Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T01:37:53.596Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "84ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T01:38:00.327Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T01:38:00.328Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "84ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T01:39:52.592Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance?year=2026", "statusCode": 500, "duration": "18ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "curl/8.7.1" } [2026-01-19T01:41:03.451Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance?year=2026", "statusCode": 500, "duration": "16ms", "ip": "::ffff:192.168.65.1", "user": "김두수", "userAgent": "curl/8.7.1" } [2026-01-19T01:47:58.618Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T01:47:58.620Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "103ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T01:48:43.659Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T01:48:43.661Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "84ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T01:50:49.683Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T01:50:49.686Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "94ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T02:12:35.830Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T02:12:35.832Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "90ms", "ip": "::ffff:172.20.0.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T02:12:42.433Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T02:12:42.434Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "86ms", "ip": "::ffff:172.20.0.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T23:18:30.255Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T23:18:30.257Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "82ms", "ip": "::ffff:172.20.0.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:21:34.438Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-19T23:21:34.439Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "72ms", "ip": "::ffff:172.20.0.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-19T23:29:00.861Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:29:00.863Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-19T23:29:00.864Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:30:17.114Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:30:17.116Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-19T23:30:17.118Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:30:28.117Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2025, "month": 12, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:30:28.119Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2025&month=12", "method": "GET", "user": "anonymous" } [2026-01-19T23:30:28.121Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2025&month=12", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:30:28.603Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2025, "month": 11, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:30:28.604Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2025&month=11", "method": "GET", "user": "anonymous" } [2026-01-19T23:30:28.606Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2025&month=11", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:40:53.178Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:40:53.179Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-19T23:40:53.182Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:43:53.454Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:43:53.456Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-19T23:43:53.457Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:47:01.446Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:47:01.483Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "2ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:48:17.202Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "4ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:48:17.223Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "2ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:50:19.243Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:50:19.268Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "1ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:52:41.332Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "4ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:52:41.368Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "2ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:52:42.976Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:52:42.993Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "1ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:52:43.700Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:52:43.716Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "1ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:53:46.736Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/vacation-balance", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:53:46.771Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/me/work-reports?startDate=2026-01-12&endDate=2026-01-19", "statusCode": 500, "duration": "2ms", "ip": "::ffff:192.168.65.1", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-19T23:55:13.327Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-19T23:55:13.328Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-19T23:55:13.330Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-20T04:55:58.676Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-20T04:55:58.678Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-20T04:55:58.678Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-20T04:57:39.387Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-20T04:57:39.388Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-20T04:57:39.389Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "3ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-20T04:59:08.034Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-20T04:59:08.035Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-20T04:59:08.037Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-20T05:05:15.969Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-20T05:05:15.970Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-20T05:05:15.973Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-20T05:07:42.078Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-20T05:07:42.080Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-20T05:07:42.081Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-20T05:55:21.464Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-20T05:55:21.466Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-20T05:55:21.467Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T03:31:02.900Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-26T03:31:02.902Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "29ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" } [2026-01-26T03:31:21.277Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-26T03:31:21.278Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "75ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T03:36:01.423Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-26T03:36:01.426Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-26T03:36:11.834Z] [ERROR] ❌ 아이디 또는 비밀번호가 올바르지 않습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 아이디 또는 비밀번호가 올바르지 않습니다.\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-26T03:36:11.835Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "87ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-01-26T04:06:20.534Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-26T04:06:20.536Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-26T04:06:20.538Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T06:09:58.909Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", "url": "/api/tasks", "method": "GET", "user": "admin" } [2026-01-26T06:09:58.913Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tasks", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T06:10:03.531Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", "url": "/api/tasks", "method": "GET", "user": "admin" } [2026-01-26T06:10:03.535Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tasks", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T06:11:22.958Z] [ERROR] ❌ 작업 목록 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 작업 목록 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/taskController.js:52:23\n at Object.getAllTasks (/usr/src/app/models/taskModel.js:48:5)\n at rows (/usr/src/app/controllers/taskController.js:51:15)\n at new Promise ()\n at /usr/src/app/controllers/taskController.js:50:22\n at /usr/src/app/middlewares/errorHandler.js:86:21\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)\n at next (/usr/src/app/node_modules/express/lib/router/route.js:149:13)\n at Route.dispatch (/usr/src/app/node_modules/express/lib/router/route.js:119:3)\n at Layer.handle [as handle_request] (/usr/src/app/node_modules/express/lib/router/layer.js:95:5)", "url": "/api/tasks", "method": "GET", "user": "admin" } [2026-01-26T06:11:22.961Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tasks", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-26T23:12:04.753Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/date/2026-01-26", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:33:07.342Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/date/2026-01-26", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:38:44.930Z] [ERROR] ❌ Unexpected token ! in JSON at position 44 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 44\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-26T23:56:23.074Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:56:23.822Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "11ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:56:25.480Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:59:22.812Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "10ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:59:42.308Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-26T23:59:43.607Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T00:10:56.317Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T00:10:58.780Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T00:11:00.068Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/1/team", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T02:12:44.079Z] [ERROR] ❌ 작업보고서 조회 실패 Context: { "error": "데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다." } [2026-01-27T02:13:14.118Z] [ERROR] ❌ 페이지네이션 쿼리 실행 오류: getaddrinfo ENOTFOUND db Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 페이지네이션 쿼리 실행 오류: getaddrinfo ENOTFOUND db\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", "url": "/api/workers?limit=1000", "method": "GET", "user": "admin" } [2026-01-27T02:13:14.121Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/workers?limit=1000", "statusCode": 500, "duration": "47692ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T02:13:14.145Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/incomplete-reports", "statusCode": 500, "duration": "7ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T02:13:14.157Z] [ERROR] ❌ 작업보고서 조회 실패 Context: { "error": "데이터베이스에서 작업 보고서를 조회하는 중 오류가 발생했습니다." } [2026-01-27T02:18:52.779Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/incomplete-reports", "statusCode": 500, "duration": "45419ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T02:25:40.934Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/incomplete-reports", "statusCode": 500, "duration": "32ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T03:01:25.706Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::20005", "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" } [2026-01-27T04:39:28.760Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "17ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:41:14.613Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "1ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:41:23.093Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-27T04:41:23.093Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-27T04:41:23.094Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "10ms", "ip": "::1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:42:15.452Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "2ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:43:26.987Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "2ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:43:47.140Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "3ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:44:51.501Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "2ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:48:37.471Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "4ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:52:15.661Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-27T04:52:15.662Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:105:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-27T04:52:15.663Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "6ms", "ip": "::1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:52:32.371Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "1ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:53:37.689Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "1ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T04:57:48.213Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "1ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:57:49.518Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "2ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:57:50.127Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "1ms", "ip": "::1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T04:58:36.844Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "0ms", "ip": "::1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T05:01:11.850Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:01:12.947Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:01:24.564Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:01:41.243Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:03:50.194Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:05:22.452Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "7ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:07:33.693Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/daily-work-reports/from-tbm", "statusCode": 500, "duration": "11ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T05:36:26.482Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 1, "error": "knex is not a function" } [2026-01-27T05:36:31.623Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 2, "error": "knex is not a function" } [2026-01-27T05:36:53.547Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 1, "error": "knex is not a function" } [2026-01-27T05:41:22.459Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 1, "error": "knex is not a function" } [2026-01-27T05:48:12.778Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 1, "error": "knex is not a function" } [2026-01-27T05:50:41.374Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 1, "error": "knex is not a function" } [2026-01-27T05:50:57.609Z] [ERROR] ❌ 계정 생성 실패 Context: { "worker_id": 1, "error": "knex is not a function" } [2026-01-27T05:54:05.814Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'" } [2026-01-27T05:54:05.816Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:328:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T05:54:05.818Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "33ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:11:05.446Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'" } [2026-01-27T06:11:05.448Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:328:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T06:11:05.450Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "14ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:17:33.290Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:17:33.292Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T06:17:33.293Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "17ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:19:22.037Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:19:22.039Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T06:19:22.040Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "21ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:19:29.015Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "27", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:19:29.016Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27", "method": "PUT", "user": "admin" } [2026-01-27T06:19:29.017Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27", "statusCode": 500, "duration": "13ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:19:44.431Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:19:44.431Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T06:19:44.432Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:32:44.259Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:32:44.261Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T06:32:44.263Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "16ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:40:46.749Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "1", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:40:46.752Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/1", "method": "PUT", "user": "admin" } [2026-01-27T06:40:46.753Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/1", "statusCode": 500, "duration": "25ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:41:03.563Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "27", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:41:03.565Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27", "method": "PUT", "user": "admin" } [2026-01-27T06:41:03.566Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27", "statusCode": 500, "duration": "12ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:44:42.019Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "27", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:44:42.019Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27", "method": "PUT", "user": "admin" } [2026-01-27T06:44:42.020Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27", "statusCode": 500, "duration": "11ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:45:16.052Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "27", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:45:16.053Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27", "method": "PUT", "user": "admin" } [2026-01-27T06:45:16.054Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27", "statusCode": 500, "duration": "15ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-27T06:48:27.655Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "27", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-01-27T06:48:27.656Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27", "method": "PUT", "user": "admin" } [2026-01-27T06:48:27.662Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27", "statusCode": 500, "duration": "15ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-27T22:54:43.976Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 Context: { "userId": "27", "error": "Unknown column 'p.is_active' in 'where clause'" } [2026-01-27T22:54:43.977Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27/page-access", "method": "GET", "user": "admin" } [2026-01-27T22:54:43.977Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/27/page-access", "statusCode": 500, "duration": "3ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-28T06:37:48.873Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 Context: { "error": "Unknown column 'hours_deduction' in 'field list'" } [2026-01-28T06:37:48.876Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", "url": "/api/attendance/vacation-types", "method": "GET", "user": "admin" } [2026-01-28T06:37:48.877Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/vacation-types", "statusCode": 500, "duration": "12ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-29T02:25:49.721Z] [ERROR] ❌ 출근 체크 목록 조회 실패 Context: { "date": "2026-01-29", "error": "Unknown column 'vt.name' in 'field list'" } [2026-01-29T02:25:49.723Z] [ERROR] ❌ 출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 출근 체크 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getCheckinListService (/usr/src/app/services/attendanceService.js:270:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:162:16", "url": "/api/attendance/checkin-list?date=2026-01-29", "method": "GET", "user": "admin" } [2026-01-29T02:25:49.724Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/checkin-list?date=2026-01-29", "statusCode": 500, "duration": "5ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-29T03:35:41.189Z] [ERROR] ❌ 처리되지 않은 Promise 거부 Context: { "reason": {}, "promise": {} } [2026-01-29T04:13:53.289Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 Context: { "error": "Unknown column 'hours_deduction' in 'field list'" } [2026-01-29T04:13:53.293Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", "url": "/api/attendance/vacation-types", "method": "GET", "user": "admin" } [2026-01-29T04:13:53.295Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/vacation-types", "statusCode": 500, "duration": "15ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-29T04:15:03.731Z] [ERROR] ❌ 휴가 유형 목록 조회 실패 Context: { "error": "Unknown column 'hours_deduction' in 'field list'" } [2026-01-29T04:15:03.734Z] [ERROR] ❌ 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 휴가 유형 목록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getVacationTypesService (/usr/src/app/services/attendanceService.js:201:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:116:16", "url": "/api/attendance/vacation-types", "method": "GET", "user": "admin" } [2026-01-29T04:15:03.735Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/vacation-types", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "curl/8.7.1" } [2026-01-29T04:16:36.038Z] [ERROR] ❌ 처리되지 않은 Promise 거부 Context: { "reason": {}, "promise": {} } [2026-01-29T04:36:18.565Z] [ERROR] ❌ 처리되지 않은 Promise 거부 Context: { "reason": {}, "promise": {} } [2026-01-29T04:40:12.488Z] [ERROR] ❌ 처리되지 않은 Promise 거부 Context: { "reason": {}, "promise": {} } [2026-01-29T04:40:28.482Z] [ERROR] ❌ 처리되지 않은 Promise 거부 Context: { "reason": {}, "promise": {} } [2026-01-29T05:41:03.976Z] [ERROR] ❌ Bad escaped character in JSON at position 42 (line 1 column 43) Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Bad escaped character in JSON at position 42 (line 1 column 43)\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-01-29T06:07:27.937Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:28.229Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:28.509Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:28.803Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:29.098Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:29.389Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:29.669Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:29.984Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:30.292Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:30.636Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:30.936Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:31.349Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:31.682Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:31.989Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:32.279Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:07:32.593Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::3005", "stack": "Error: listen EADDRINUSE: address already in use :::3005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:45:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/pm2/lib/ProcessContainerFork.js:33:23)" } [2026-01-29T06:36:59.736Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-29T06:36:59.737Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-29T06:36:59.737Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "6ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-01-29T06:38:21.888Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 1, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-01-29T06:38:21.890Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=1", "method": "GET", "user": "anonymous" } [2026-01-29T06:38:21.891Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=1", "statusCode": 500, "duration": "9ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T00:31:17.596Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 Context: { "userId": "27", "error": "Unknown column 'p.is_active' in 'where clause'" } [2026-02-02T00:31:17.599Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27/page-access", "method": "GET", "user": "admin" } [2026-02-02T00:31:17.601Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/27/page-access", "statusCode": 500, "duration": "13ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T00:37:03.225Z] [ERROR] ❌ 사용자 페이지 권한 조회 실패 Context: { "userId": "27", "error": "Unknown column 'p.is_active' in 'where clause'" } [2026-02-02T00:37:03.226Z] [ERROR] ❌ 페이지 권한을 조회하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 페이지 권한을 조회하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:527:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27/page-access", "method": "GET", "user": "admin" } [2026-02-02T00:37:03.227Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/users/27/page-access", "statusCode": 500, "duration": "4ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T00:37:26.050Z] [ERROR] ❌ 사용자 수정 실패 Context: { "userId": "27", "error": "Unknown column 'phone' in 'field list'", "stack": "Error: Unknown column 'phone' in 'field list'\n at PromisePool.execute (/usr/src/app/node_modules/mysql2/lib/promise/pool.js:54:22)\n at /usr/src/app/controllers/userController.js:332:14\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)" } [2026-02-02T00:37:26.052Z] [ERROR] ❌ 사용자 정보를 수정하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 사용자 정보를 수정하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:351:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27", "method": "PUT", "user": "admin" } [2026-02-02T00:37:26.054Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27", "statusCode": 500, "duration": "17ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T00:58:06.586Z] [ERROR] ❌ 사용자 페이지 권한 업데이트 실패 Context: { "userId": "27", "error": "Duplicate entry '27-12' for key 'PRIMARY'" } [2026-02-02T00:58:06.588Z] [ERROR] ❌ 페이지 권한을 업데이트하는데 실패했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 페이지 권한을 업데이트하는데 실패했습니다\n at /usr/src/app/controllers/userController.js:590:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/users/27/page-access", "method": "PUT", "user": "admin" } [2026-02-02T00:58:06.590Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/users/27/page-access", "statusCode": 500, "duration": "18ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T01:17:22.550Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 2, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-02-02T01:17:22.555Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=2", "method": "GET", "user": "anonymous" } [2026-02-02T01:17:22.557Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=2", "statusCode": 500, "duration": "18ms", "ip": "::ffff:192.168.65.1", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T01:55:18.370Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-02T01:55:18.371Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "50029ms", "ip": "::1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-02-02T01:56:14.496Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-02T01:56:14.497Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "5ms", "ip": "::1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-02-02T01:58:11.336Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/sessions/12/safety-checks/filtered", "statusCode": 500, "duration": "12ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T04:21:58.482Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/weather/current", "statusCode": 500, "duration": "8ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T04:22:03.141Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/weather/conditions", "statusCode": 500, "duration": "4ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T04:22:03.306Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/tbm/weather/current", "statusCode": 500, "duration": "3ms", "ip": "::ffff:192.168.65.1", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T04:24:39.943Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "Request failed with status code 401" } [2026-02-02T05:39:54.384Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 2, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-02-02T05:39:54.388Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=2", "method": "GET", "user": "anonymous" } [2026-02-02T05:39:54.389Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=2", "statusCode": 500, "duration": "17ms", "ip": "::ffff:185.199.108.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-02T05:40:27.806Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "Request failed with status code 429" } [2026-02-02T06:25:51.666Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 2, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-02-02T06:25:51.668Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=2", "method": "GET", "user": "anonymous" } [2026-02-02T06:25:51.671Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=2", "statusCode": 500, "duration": "25ms", "ip": "::ffff:185.199.108.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T00:01:53.650Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:01:54.540Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:02:36.831Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:02:38.183Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:03:16.057Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:03:21.794Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:03:48.574Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:04:33.007Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:05:39.548Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "API 오류: NO_DATA" } [2026-02-03T00:29:57.097Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 2, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-02-03T00:29:57.098Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=2", "method": "GET", "user": "anonymous" } [2026-02-03T00:29:57.100Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=2", "statusCode": 500, "duration": "7ms", "ip": "::ffff:185.199.108.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T00:30:01.016Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "Request failed with status code 429" } [2026-02-03T00:30:01.164Z] [ERROR] ❌ 월별 캘린더 데이터 조회 실패 Context: { "year": 2026, "month": 2, "error": "Table 'hyungi.monthly_summary' doesn't exist" } [2026-02-03T00:30:01.168Z] [ERROR] ❌ 월별 캘린더 데이터 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 캘린더 데이터 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/monthlyStatusController.js:80:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/monthly-status/calendar?year=2026&month=2", "method": "GET", "user": "anonymous" } [2026-02-03T00:30:01.172Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/monthly-status/calendar?year=2026&month=2", "statusCode": 500, "duration": "20ms", "ip": "::ffff:185.199.108.133", "user": "anonymous", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T01:10:52.126Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "timeout of 5000ms exceeded" } [2026-02-03T03:36:49.926Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "timeout of 5000ms exceeded" } [2026-02-03T03:38:39.091Z] [ERROR] ❌ 일일 근태 기록 조회 실패 Context: { "date": "2026-02-03", "error": "Unknown column 'vt.hours_deduction' in 'field list'" } [2026-02-03T03:38:39.092Z] [ERROR] ❌ 근태 기록 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getDailyAttendanceRecordsService (/usr/src/app/services/attendanceService.js:62:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:32:16", "url": "/api/attendance/daily-records?date=2026-02-03", "method": "GET", "user": "admin" } [2026-02-03T03:38:39.092Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/daily-records?date=2026-02-03", "statusCode": 500, "duration": "7ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:38:51.209Z] [ERROR] ❌ 일일 근태 기록 조회 실패 Context: { "date": "2026-02-03", "error": "Unknown column 'vt.hours_deduction' in 'field list'" } [2026-02-03T03:38:51.210Z] [ERROR] ❌ 근태 기록 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getDailyAttendanceRecordsService (/usr/src/app/services/attendanceService.js:62:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:32:16", "url": "/api/attendance/daily-records?date=2026-02-03", "method": "GET", "user": "admin" } [2026-02-03T03:38:51.211Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/daily-records?date=2026-02-03", "statusCode": 500, "duration": "8ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:52:31.094Z] [ERROR] ❌ 서버 오류가 발생했습니다. Context: { "code": "INTERNAL_ERROR", "stack": "AppError: 서버 오류가 발생했습니다.\n at errorHandler (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)\n at next (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:326:13)\n at /Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:286:9\n at router.process_params (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-03T03:52:31.094Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/auth/login", "statusCode": 500, "duration": "76ms", "ip": "::1", "user": "anonymous", "userAgent": "curl/8.7.1" } [2026-02-03T03:55:18.145Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 12, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.147Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.148Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "10ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.163Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 10, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.164Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.165Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "5ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.173Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 9, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.175Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.176Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "6ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.188Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 8, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.189Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.190Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "9ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.196Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 6, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.197Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.197Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.203Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 5, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.203Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.204Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.210Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 4, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.210Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.211Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.217Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 3, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.217Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.218Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T03:55:18.223Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-03", "worker_id": 2, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-03T03:55:18.224Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:109:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "admin" } [2026-02-03T03:55:18.224Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "2ms", "ip": "::ffff:185.199.108.133", "user": "admin", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-03T06:26:46.976Z] [ERROR] ❌ Unexpected token ! in JSON at position 42 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 42\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-03T06:26:50.711Z] [ERROR] ❌ Unexpected token ! in JSON at position 42 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 42\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-03T21:43:00.150Z] [ERROR] ❌ r.toLowerCase is not a function Context: { "code": "INTERNAL_ERROR", "stack": "AppError: r.toLowerCase is not a function\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/departments", "method": "POST", "user": "hyungi" } [2026-02-03T21:43:00.154Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/departments", "statusCode": 500, "duration": "14ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T03:44:34.456Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/equipments/68/repair-history", "statusCode": 500, "duration": "43ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:24:20.424Z] [ERROR] ❌ r.toLowerCase is not a function Context: { "code": "INTERNAL_ERROR", "stack": "AppError: r.toLowerCase is not a function\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/departments", "method": "POST", "user": "hyungi" } [2026-02-04T06:24:20.427Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/departments", "statusCode": 500, "duration": "5ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:37:16.946Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "11ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:40:06.642Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:41:11.237Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "10ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:44:22.703Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "5ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:47:46.730Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "7ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:48:48.063Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "10ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:49:20.333Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "8ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:49:43.895Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:52:39.264Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "8ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T06:53:54.394Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/notification-recipients", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.600Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 11, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.603Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.604Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "13ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.617Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 10, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.617Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.617Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.626Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 9, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.627Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.627Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.634Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 8, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.634Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.635Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.642Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 6, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.643Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.643Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.650Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 5, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.651Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.651Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.658Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 4, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.659Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.660Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.666Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 3, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.667Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.668Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:44:43.674Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 2, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:44:43.675Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:44:43.676Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.881Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 11, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.885Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.887Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "13ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.898Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 10, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.899Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.900Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "6ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.907Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 9, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.908Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.909Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.918Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 8, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.918Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.919Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.926Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 6, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.927Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.928Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.935Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 5, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.936Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.936Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.943Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 4, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.944Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.944Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.952Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 3, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.952Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.953Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:47:15.959Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 2, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:47:15.960Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:47:15.960Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.662Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 11, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.665Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.668Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "14ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.678Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 10, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.679Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.680Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "5ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.690Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 9, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.691Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.692Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "5ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.700Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 8, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.701Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.702Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.709Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 6, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.710Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.710Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.719Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 5, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.720Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.720Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.728Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 4, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.728Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.729Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.737Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 3, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.738Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.738Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.744Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 2, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.745Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.746Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:49:03.753Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 1, "error": "Bind parameters must not contain undefined. To pass SQL NULL specify JS null" } [2026-02-04T11:49:03.754Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:111:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:49:03.755Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.119Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 11, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.121Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.122Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "9ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.137Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 10, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.138Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.140Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "10ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.150Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 9, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.151Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.152Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "5ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.162Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 8, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.162Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.163Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.177Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 6, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.178Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.178Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "8ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.187Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 5, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.190Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.192Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "8ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.202Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 4, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.203Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.204Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "7ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.212Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 3, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.213Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.213Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.221Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 2, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.222Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.225Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "6ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T11:51:48.233Z] [ERROR] ❌ 근태 기록 저장 실패 Context: { "record_date": "2026-02-04", "worker_id": 1, "error": "Unknown column 'work_attendance_type_id' in 'field list'" } [2026-02-04T11:51:48.234Z] [ERROR] ❌ 근태 기록 저장 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 근태 기록 저장 중 데이터베이스 오류가 발생했습니다\n at Object.upsertAttendanceRecordService (/usr/src/app/services/attendanceService.js:108:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:50:18", "url": "/api/attendance/records", "method": "POST", "user": "hyungi" } [2026-02-04T11:51:48.236Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "POST", "url": "/api/attendance/records", "statusCode": 500, "duration": "4ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-04T12:07:05.910Z] [ERROR] ❌ Unexpected token ! in JSON at position 41 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 41\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-04T12:07:09.214Z] [ERROR] ❌ Unexpected token ! in JSON at position 41 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 41\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-04T22:43:50.633Z] [ERROR] ❌ Unexpected token ! in JSON at position 46 Context: { "code": "INTERNAL_ERROR", "stack": "AppError: Unexpected token ! in JSON at position 46\n at errorHandler (/usr/src/app/middlewares/errorHandler.js:51:13)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:71:5)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)\n at next (/usr/src/app/node_modules/express/lib/router/index.js:280:10)\n at Layer.handle_error (/usr/src/app/node_modules/express/lib/router/layer.js:67:12)\n at trim_prefix (/usr/src/app/node_modules/express/lib/router/index.js:326:13)\n at /usr/src/app/node_modules/express/lib/router/index.js:286:9\n at Function.process_params (/usr/src/app/node_modules/express/lib/router/index.js:346:12)", "url": "/api/auth/login", "method": "POST", "user": "anonymous" } [2026-02-05T00:43:03.070Z] [ERROR] ❌ 작업보고서 수정 실패 Context: { "reportId": "1784", "error": "데이터베이스에서 작업 보고서를 수정하는 중 오류가 발생했습니다." } [2026-02-05T00:43:03.073Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "PUT", "url": "/api/daily-work-reports/1784", "statusCode": 500, "duration": "14ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T01:58:17.302Z] [ERROR] ❌ 월별 근태 통계 조회 실패 Context: { "year": 2026, "month": 2, "error": "Unknown column 'dar.status' in 'field list'" } [2026-02-05T01:58:17.305Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", "url": "/api/attendance/monthly-stats?year=2026&month=2", "method": "GET", "user": "hyungi" } [2026-02-05T01:58:17.307Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/monthly-stats?year=2026&month=2", "statusCode": 500, "duration": "34ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T01:58:41.217Z] [ERROR] ❌ 월별 근태 통계 조회 실패 Context: { "year": 2026, "month": 2, "error": "Unknown column 'dar.status' in 'field list'" } [2026-02-05T01:58:41.219Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", "url": "/api/attendance/monthly-stats?year=2026&month=2", "method": "GET", "user": "hyungi" } [2026-02-05T01:58:41.220Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/monthly-stats?year=2026&month=2", "statusCode": 500, "duration": "10ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T01:59:44.122Z] [ERROR] ❌ 월별 근태 통계 조회 실패 Context: { "year": 2026, "month": 2, "error": "Unknown column 'dar.status' in 'field list'" } [2026-02-05T01:59:44.128Z] [ERROR] ❌ 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 월별 근태 통계 조회 중 데이터베이스 오류가 발생했습니다\n at Object.getMonthlyAttendanceStatsService (/usr/src/app/services/attendanceService.js:246:11)\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)\n at async /usr/src/app/controllers/attendanceController.js:144:16", "url": "/api/attendance/monthly-stats?year=2026&month=2", "method": "GET", "user": "hyungi" } [2026-02-05T01:59:44.132Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/attendance/monthly-stats?year=2026&month=2", "statusCode": 500, "duration": "58ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T02:01:01.783Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::20005", "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" } [2026-02-05T02:01:14.935Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::20005", "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" } [2026-02-05T02:01:31.840Z] [ERROR] ❌ 처리되지 않은 예외 Context: { "error": "listen EADDRINUSE: address already in use :::20005", "stack": "Error: listen EADDRINUSE: address already in use :::20005\n at Server.setupListenHandle [as _listen2] (node:net:1940:16)\n at listenInCluster (node:net:1997:12)\n at Server.listen (node:net:2102:7)\n at app.listen (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/node_modules/express/lib/application.js:635:24)\n at Object. (/Users/hyungiahn/Documents/code/TK-FB-Project/api.hyungi.net/index.js:207:20)\n at Module._compile (node:internal/modules/cjs/loader:1692:14)\n at Object..js (node:internal/modules/cjs/loader:1824:10)\n at Module.load (node:internal/modules/cjs/loader:1427:32)\n at Module._load (node:internal/modules/cjs/loader:1250:12)\n at TracingChannel.traceSync (node:diagnostics_channel:322:14)" } [2026-02-05T04:41:23.154Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/patrol/workplaces/12/detail?date=2026-02-05", "statusCode": 500, "duration": "7ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T04:41:24.151Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/patrol/workplaces/11/detail?date=2026-02-05", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T04:41:24.509Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/patrol/workplaces/10/detail?date=2026-02-05", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T04:45:43.179Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/patrol/workplaces/9/detail?date=2026-02-05", "statusCode": 500, "duration": "10ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T04:59:59.755Z] [ERROR] ❌ 날씨 API 호출 실패 Context: { "error": "Request failed with status code 429" } [2026-02-05T05:09:23.015Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/patrol/workplaces/2/zone-items", "statusCode": 500, "duration": "17ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/26.2 Safari/605.1.15" } [2026-02-05T22:28:00.070Z] [ERROR] ❌ 최근 작업 현황 조회 실패 Context: { "start": "2026-01-01", "end": "2026-01-31", "limit": 2000, "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" } [2026-02-05T22:28:00.073Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", "method": "GET", "user": "hyungi" } [2026-02-05T22:28:00.075Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", "statusCode": 500, "duration": "15ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" } [2026-02-05T22:28:00.077Z] [ERROR] ❌ 에러 분석 실패 Context: { "start": "2026-01-01", "end": "2026-01-31", "error": "에러 분석 실패: Table 'hyungi.error_types' doesn't exist" } [2026-02-05T22:28:00.077Z] [ERROR] ❌ 에러 분석 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 에러 분석 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:301:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", "method": "GET", "user": "hyungi" } [2026-02-05T22:28:00.078Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", "statusCode": 500, "duration": "12ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" } [2026-02-05T22:28:05.917Z] [ERROR] ❌ 최근 작업 현황 조회 실패 Context: { "start": "2026-01-01", "end": "2026-01-31", "limit": 2000, "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" } [2026-02-05T22:28:05.918Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", "method": "GET", "user": "hyungi" } [2026-02-05T22:28:05.919Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", "statusCode": 500, "duration": "9ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" } [2026-02-05T22:28:05.919Z] [ERROR] ❌ 에러 분석 실패 Context: { "start": "2026-01-01", "end": "2026-01-31", "error": "에러 분석 실패: Table 'hyungi.error_types' doesn't exist" } [2026-02-05T22:28:05.920Z] [ERROR] ❌ 에러 분석 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 에러 분석 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:301:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", "method": "GET", "user": "hyungi" } [2026-02-05T22:28:05.921Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/work-analysis/error-analysis?start=2026-01-01&end=2026-01-31", "statusCode": 500, "duration": "6ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" } [2026-02-05T22:28:20.786Z] [ERROR] ❌ 최근 작업 현황 조회 실패 Context: { "start": "2026-01-01", "end": "2026-01-31", "limit": 2000, "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" } [2026-02-05T22:28:20.787Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", "method": "GET", "user": "hyungi" } [2026-02-05T22:28:20.787Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=2000", "statusCode": 500, "duration": "2ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" } [2026-02-05T22:28:20.792Z] [ERROR] ❌ 최근 작업 현황 조회 실패 Context: { "start": "2026-01-01", "end": "2026-01-31", "limit": 100, "error": "최근 작업 현황 조회 실패: Table 'hyungi.error_types' doesn't exist" } [2026-02-05T22:28:20.793Z] [ERROR] ❌ 최근 작업 현황 조회 중 오류가 발생했습니다 Context: { "code": "DATABASE_ERROR", "stack": "DatabaseError: 최근 작업 현황 조회 중 오류가 발생했습니다\n at /usr/src/app/controllers/workAnalysisController.js:247:11\n at process.processTicksAndRejections (node:internal/process/task_queues:95:5)", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=100", "method": "GET", "user": "hyungi" } [2026-02-05T22:28:20.794Z] [ERROR] ❌ HTTP Request - Server Error Context: { "method": "GET", "url": "/api/work-analysis/recent-work?start=2026-01-01&end=2026-01-31&limit=100", "statusCode": 500, "duration": "3ms", "ip": "::ffff:185.199.108.133", "user": "hyungi", "userAgent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/144.0.0.0 Safari/537.36" }