기업 내 다양한 시스템의 배치 작업을 통합 관리하고 모니터링할 수 있는 자동화 스케줄러 시스템으로, 작업 의존성 관리, 실패 시 자동 복구, 실시간 모니터링 기능을 제공합니다.
자동화 배치 관리 시스템
Spring Batch + Quartz + React
기업 내 여러 시스템에서 실행되는 다양한 배치 작업을 통합적으로 관리하고 모니터링하기 위한 시스템입니다. 기존 시스템에서는 배치 작업이 개별 서버에 분산되어 있어 관리의 어려움과 장애 발생 시 대응 지연 문제가 있었습니다.
복잡한 배치 작업 간의 의존성을 시각적으로 정의하고 관리할 수 있는 기능을 제공합니다. 선행 작업이 완료되어야 후속 작업이 시작되는 워크플로우를 구성하여 데이터 정합성을 유지하고 효율적인 작업 처리를 가능하게 합니다.
워크플로우 관리
의존성 기반 작업 흐름 제어
대시보드 모니터링
실시간 작업 상태 및 리소스 모니터링
모든 배치 작업의 실행 상태, 진행률, 성공/실패 여부를 실시간으로 모니터링할 수 있는 대시보드를 제공합니다. 문제 발생 시 즉시 관리자에게 알림을 보내고, 자동 복구 메커니즘을 통해 신속하게 대응할 수 있습니다.
작업 실패 시 정의된 정책에 따라 자동으로 재시도하거나 대체 작업을 실행하는 자동 복구 메커니즘을 구현했습니다. 이를 통해 야간 배치 작업의 안정성을 크게 향상시키고, 관리자의 야간 비상 대응 필요성을 최소화했습니다.
자동 복구 시스템
장애 감지 및 자동 대응
관리자 콘솔
작업 관리 및 설정 인터페이스
기술적 지식이 없는 운영 담당자도 쉽게 배치 작업을 관리할 수 있는 직관적인 웹 인터페이스를 제공합니다. 작업 생성, 수정, 활성화/비활성화, 수동 실행 등 다양한 관리 기능을 드래그 앤 드롭 방식의 사용자 친화적 UI로 구현했습니다.
여러 서버에서 실행되는 작업 간의 동기화와 단일 장애점 문제를 해결하기 위해 Quartz Scheduler의 클러스터링 기능과 분산 락 메커니즘을 구현했습니다. 이를 통해 고가용성을 유지하면서도 작업 간 의존성 충돌 문제를 해결했습니다.
수백 개의 작업 간 복잡한 의존성을 효율적으로 관리하기 위해 DAG(Directed Acyclic Graph) 알고리즘을 적용하고, 의존성 순환 감지 및 최적 실행 경로 계산 기능을 구현했습니다. 이를 통해 작업 간 데드락 발생을 원천적으로 방지했습니다.
수많은 배치 작업에서 발생하는 대용량 로그를 효율적으로 수집하고 분석하기 위해 ELK 스택(Elasticsearch, Logstash, Kibana)을 도입하고, 로그 패턴 분석을 통한 이상 징후 자동 감지 알고리즘을 개발했습니다.