추가 작업 등록 - Phase 9. 실행 로그 및 DB 쿼리 로그
This commit is contained in:
@@ -359,6 +359,48 @@ chocoadmin/
|
||||
- [x] 비인증 접근 차단 코드 확인 (`proxy.ts`, API route `auth()` 검사)
|
||||
- [x] Docker 재시작 후 정상 동작 확인 절차 문서화 (`docs/phase/phase8.md`)
|
||||
|
||||
### Phase 9. 실행 로그 및 DB 쿼리 로그
|
||||
|
||||
> local/stage에서는 개발과 디버깅에 충분한 상세 로그를 남기고, production에서는 운영에 필요한 수준으로 로그 양과 민감정보 노출을 제한한다.
|
||||
|
||||
- [ ] 로그 정책 정의 문서 작성 (`docs/phase/phase9.md`)
|
||||
- [ ] 환경 구분: `local`, `stage`, `production`
|
||||
- [ ] 로그 레벨 구분: `debug`, `info`, `warn`, `error`
|
||||
- [ ] 로그 출력 형식: 사람이 읽기 쉬운 콘솔 출력 + 필요 시 JSON line 확장 가능 구조
|
||||
- [ ] 민감정보 마스킹 대상 정의: 비밀번호, 인증 토큰, 쿠키, DB 접속 문자열, secret, 개인정보성 필드
|
||||
- [ ] 서버 실행 로그 유틸 구현
|
||||
- [ ] 공통 logger 모듈 추가 (`lib/logger.ts`)
|
||||
- [ ] request 단위 correlation id 생성 및 로그에 포함
|
||||
- [ ] API route 시작/종료, 처리 시간, status code, action 결과 기록
|
||||
- [ ] 인증 실패, 권한 없음, 유효성 검증 실패, 비즈니스 예외를 구분해 기록
|
||||
- [ ] DB query 로그 구현
|
||||
- [ ] Prisma query event 또는 Prisma Client 설정 기반 query 로깅 적용
|
||||
- [ ] local/stage: query문, params, duration, 결과 row/count 또는 요약 결과를 사람이 보기 쉬운 format으로 출력
|
||||
- [ ] production: query문 전체/결과 전체 출력 금지, duration, table/action 추정값, affected count, slow query 중심으로 출력
|
||||
- [ ] production slow query threshold 설정 (`DB_SLOW_QUERY_MS`)
|
||||
- [ ] 결과 로그 최대 길이 제한 (`DB_LOG_RESULT_LIMIT`) 및 초과 시 truncate 표시
|
||||
- [ ] 환경변수 추가
|
||||
- [ ] `APP_ENV=local|stage|production`
|
||||
- [ ] `LOG_LEVEL=debug|info|warn|error`
|
||||
- [ ] `DB_QUERY_LOG=off|summary|full`
|
||||
- [ ] `DB_SLOW_QUERY_MS`
|
||||
- [ ] `DB_LOG_RESULT_LIMIT`
|
||||
- [ ] 주요 API에 로그 적용
|
||||
- [ ] 로그인 성공/실패 로그
|
||||
- [ ] 마에스트로 목록/상세 조회 로그
|
||||
- [ ] 연장 신청 조회/승인/취소 로그
|
||||
- [ ] 업그레이드 신청 조회/승인/거절 로그
|
||||
- [ ] 중복 처리 방지로 `409` 반환 시 warning 로그
|
||||
- [ ] Docker/NAS 로그 운영 절차 문서화
|
||||
- [ ] `docker compose logs -f` 확인 방법
|
||||
- [ ] stage와 production의 권장 `.env` 로그 설정 예시
|
||||
- [ ] Nginx Proxy Manager access/error log와 애플리케이션 로그를 같이 확인하는 절차
|
||||
- [ ] 검증
|
||||
- [ ] local에서 query문과 결과 전체가 출력되는지 확인
|
||||
- [ ] stage에서 query문과 결과 전체가 출력되는지 확인
|
||||
- [ ] production 설정에서 결과 전체가 출력되지 않고 summary/slow query 중심으로 출력되는지 확인
|
||||
- [ ] 로그에 비밀번호, token, cookie, secret, DB password가 노출되지 않는지 확인
|
||||
|
||||
---
|
||||
|
||||
## 10. MVP 범위
|
||||
|
||||
Reference in New Issue
Block a user