권혁성
d07bad16df
feat:DB 트리거 기반 데이터 변경 추적 시스템 구현
Phase 1: DB 기반 구축
- trigger_audit_logs 테이블 (RANGE 파티셔닝 15개, 3개 인덱스)
- 789개 MySQL AFTER 트리거 (263 테이블 × INSERT/UPDATE/DELETE)
- SetAuditSessionVariables 미들웨어 (@sam_actor_id, @sam_session_info)
Phase 2: 복구 메커니즘
- TriggerAuditLog 모델, TriggerAuditLogService, AuditRollbackService
- 6개 API 엔드포인트 (index, show, stats, history, rollback-preview, rollback)
- FormRequest 검증 (TriggerAuditLogIndexRequest, TriggerAuditRollbackRequest)
Phase 3: 관리 도구
- v_unified_audit VIEW (APP + TRIGGER 통합, COLLATE 처리)
- audit:partitions 커맨드 (파티션 추가/삭제, dry-run)
- audit:triggers 커맨드 (트리거 재생성, 테이블별/전체)
- 월 1회 파티션 자동 관리 스케줄러 등록
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-09 09:17:15 +09:00
..
2026-02-09 09:17:15 +09:00
2026-01-20 20:51:42 +09:00
2026-01-19 20:23:30 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-30 18:07:44 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-01-20 20:51:42 +09:00
2026-02-07 09:50:52 +09:00
2026-01-31 08:33:19 +09:00
2026-01-20 20:51:42 +09:00
2025-12-19 14:52:53 +09:00
2026-01-13 19:49:06 +09:00
2025-11-06 17:45:49 +09:00
2025-12-16 21:57:07 +09:00
2025-12-18 13:51:40 +09:00
2026-01-23 10:05:50 +09:00
2026-01-30 19:53:09 +09:00
2026-01-28 21:09:53 +09:00
2026-01-15 20:23:07 +09:00
2026-01-23 21:32:23 +09:00
2025-12-17 21:02:20 +09:00
2026-01-16 15:38:52 +09:00
2025-12-22 15:30:38 +09:00
2026-01-22 23:18:33 +09:00
2026-01-26 20:29:22 +09:00
2025-12-26 01:32:07 +09:00
2026-01-22 23:19:05 +09:00
2025-11-14 13:45:54 +09:00
2025-11-06 17:45:49 +09:00
2026-01-27 15:17:30 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2026-01-29 15:04:55 +09:00
2025-12-22 15:30:38 +09:00
2026-01-02 11:15:05 +09:00
2026-01-22 09:47:29 +09:00
2026-01-29 21:56:53 +09:00
2025-12-26 15:00:57 +09:00
2026-01-15 17:14:04 +09:00
2026-02-07 03:27:07 +09:00
2026-01-31 09:39:55 +09:00
2026-01-14 20:29:00 +09:00
2026-01-26 20:29:22 +09:00
2025-11-06 17:45:49 +09:00
2026-01-26 20:29:22 +09:00
2026-01-15 17:14:04 +09:00
2025-11-06 17:45:49 +09:00
2025-11-10 22:09:28 +09:00
2025-11-10 22:09:28 +09:00
2025-12-09 09:39:41 +09:00
2026-01-15 08:52:53 +09:00
2025-12-18 14:21:37 +09:00
2026-02-07 03:27:07 +09:00
2026-01-20 20:43:38 +09:00
2026-01-11 23:29:32 +09:00
2025-12-26 15:48:06 +09:00
2025-12-26 18:58:43 +09:00
2026-01-22 22:47:59 +09:00
2026-01-20 20:43:38 +09:00
2026-02-07 03:27:07 +09:00
2025-12-02 22:55:10 +09:00
2025-12-29 17:31:09 +09:00
2025-12-09 09:39:41 +09:00
2025-12-22 17:42:59 +09:00
2026-02-07 09:50:52 +09:00
2026-02-07 09:50:52 +09:00
2025-12-19 16:53:49 +09:00
2025-12-18 10:56:16 +09:00
2025-11-06 17:45:49 +09:00
2025-12-18 16:20:29 +09:00
2025-12-19 16:14:04 +09:00
2026-01-13 19:49:06 +09:00
2026-01-09 22:19:11 +09:00
2026-02-03 18:59:12 +09:00
2026-02-03 18:59:12 +09:00
2026-01-20 20:43:38 +09:00
2026-01-20 20:43:38 +09:00
2026-01-23 09:08:37 +09:00
2026-01-30 18:07:44 +09:00
2026-01-13 19:49:06 +09:00
2026-02-07 03:27:07 +09:00
2025-11-11 18:03:11 +09:00
2025-12-17 22:51:17 +09:00
2026-01-15 17:14:04 +09:00
2026-01-22 23:19:05 +09:00
2026-02-07 03:27:07 +09:00
2026-01-26 20:29:22 +09:00
2026-01-13 19:49:06 +09:00
2026-01-09 16:34:59 +09:00
2026-01-31 08:33:19 +09:00
2026-01-21 20:46:53 +09:00
2026-02-07 05:06:28 +09:00
2025-12-30 22:27:08 +09:00
2026-01-19 20:53:36 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-11-06 17:45:49 +09:00
2025-12-30 22:58:50 +09:00
2026-01-26 20:29:22 +09:00
2025-11-14 14:09:53 +09:00
2025-12-29 21:04:32 +09:00
2026-01-30 18:07:44 +09:00
2026-01-28 13:57:46 +09:00
2025-12-22 17:42:59 +09:00
2026-01-26 20:29:22 +09:00
2025-12-26 15:46:31 +09:00
2026-01-22 23:18:33 +09:00
2026-01-15 17:14:04 +09:00
2026-02-09 09:00:57 +09:00
2026-01-20 16:14:46 +09:00
2025-12-17 20:46:37 +09:00