- 통합 캐싱 시스템 구축: * utils/cache.js: Redis + 메모리 캐시 하이브리드 시스템 * Redis 연결 실패 시 자동 메모리 캐시 fallback * 캐시 키 생성, TTL 관리, 패턴 기반 무효화 * 캐시 미들웨어 및 무효화 헬퍼 함수 - 데이터베이스 쿼리 최적화: * utils/queryOptimizer.js: 쿼리 성능 분석 및 최적화 * 페이지네이션 헬퍼 (최대 100개 제한) * 인덱스 최적화 제안 시스템 * 배치 삽입 최적화 (100개 단위) * 최적화된 쿼리 템플릿 (작업자, 프로젝트, 작업보고서) - 응답 압축 및 최적화: * gzip 압축 미들웨어 (1KB 이상, 레벨 6) * 압축 제외 헤더 지원 (x-no-compression) * 성능 모니터링 시스템 - 성능 모니터링 API: * /api/performance/* 엔드포인트 추가 * 캐시 통계 및 관리 (조회, 초기화) * DB 성능 통계 (연결 수, 슬로우 쿼리) * 인덱스 분석 및 최적화 제안 * 쿼리 실행 계획 분석 (EXPLAIN) * 시스템 리소스 모니터링 - 실제 적용 사례: * workerController.js에 캐싱 및 페이지네이션 적용 * 캐시 히트/미스 로깅 * 캐시 무효화 자동 처리 - 보안 및 권한: * 성능 관련 API는 관리자 권한 필요 * 쿼리 분석은 시스템/관리자만 접근 가능 * 캐시 초기화는 관리자 전용 - Swagger 문서화: * 모든 성능 API 완전 문서화 * 요청/응답 스키마 및 예시 포함
32 lines
821 B
JSON
32 lines
821 B
JSON
{
|
|
"name": "hyungi-api",
|
|
"version": "1.0.0",
|
|
"main": "index.js",
|
|
"scripts": {
|
|
"start": "pm2-runtime start ecosystem.config.js --env production",
|
|
"dev": "pm2-runtime start ecosystem.config.js --env development"
|
|
},
|
|
"dependencies": {
|
|
"@simplewebauthn/server": "^13.1.1",
|
|
"async-retry": "^1.3.3",
|
|
"bcryptjs": "^2.4.3",
|
|
"compression": "^1.8.1",
|
|
"cors": "^2.8.5",
|
|
"dotenv": "^16.4.5",
|
|
"express": "^4.18.2",
|
|
"express-rate-limit": "^7.5.1",
|
|
"express-validator": "^7.2.1",
|
|
"helmet": "^7.2.0",
|
|
"jsonwebtoken": "^9.0.0",
|
|
"multer": "^1.4.5-lts.1",
|
|
"mysql2": "^3.14.1",
|
|
"node-cache": "^5.1.2",
|
|
"pm2": "^5.3.0",
|
|
"qrcode": "^1.5.4",
|
|
"redis": "^5.9.0",
|
|
"sqlite3": "^5.1.6",
|
|
"swagger-jsdoc": "^6.2.8",
|
|
"swagger-ui-express": "^5.0.1"
|
|
}
|
|
}
|