배치는 조용히 실패합니다
화면 오류는 사용자가 바로 알려 주지만, 새벽 2시에 도는 정산 배치는 실패해도 아무도 모릅니다. 다음 날 아침 영업팀이 "어제 매출이 안 보인다"고 물어 올 때에야 문제가 드러납니다.
원인은 대개 구조에 있습니다.
스케줄링과 의존성 관리
가장 흔한 사고는 시간으로 순서를 맞춘 경우에 생깁니다. 주문 집계를 01:00, 정산을 02:00에 걸어 두면 집계가 평소 40분에 끝나는 동안은 문제가 없습니다. 그러나 데이터가 늘어 집계가 70분 걸리는 날, 정산은 절반만 집계된 데이터로 돌아갑니다. 오류 없이 "성공"으로 끝나기 때문에 더 위험합니다.
중앙 스케줄러 도입은 작업이 20개를 넘거나, 선후행 관계가 3단계 이상이거나, 실행 서버가 2대 이상일 때 검토할 만합니다. 그 전에 할 일은 작업 목록 정리입니다. 작업명, 실행 시각, 선행 작업, 평소 소요 시간, 담당자를 한 표에 모으는 것만으로도 빠진 작업과 주인 없는 작업이 드러납니다.
실패해도 안전한 배치 만들기
배치는 반드시 실패한다는 전제에서 설계해야 합니다. 핵심은 다시 돌려도 안전한가입니다.
모니터링과 알림
실패 알림만으로는 부족합니다. 서버가 꺼져 있었거나 크론 설정이 지워졌다면 실패조차 발생하지 않기 때문입니다. 감지해야 할 것은 네 가지입니다.
알림은 1차 담당자와 30분 무응답 시의 2차 담당자를 정해 두어야 합니다. 모두가 받는 채널에만 올리면 아무도 보지 않습니다.
운영 이관과 인수인계
배치를 만든 사람과 운영하는 사람은 대개 다릅니다. 작업마다 다음 내용을 담은 재처리 절차서가 있어야 합니다.
배치 시간대 증가에도 미리 대비해야 합니다. 데이터가 해마다 30%씩 늘면 40분짜리 작업은 2년 뒤 약 68분이 됩니다. 거래처나 일자 범위로 4개 구간으로 나눠 병렬 처리하면 이론상 17분 안팎까지 줄어들지만, 실제로는 DB 부하 때문에 그보다 더 걸리므로 동시 실행 수를 측정하며 조정해야 합니다.
POLYGLOTSOFT가 돕는 방식
배치 운영은 한 번 구축하고 끝나는 일이 아니라 데이터와 업무가 바뀔 때마다 손봐야 하는 일입니다. POLYGLOTSOFT는 유지보수(SM) 계약 안에서 배치 작업 목록 정리, 멱등성·재시작 구조 재설계, 미실행·지연·건수 이상 모니터링 구축, 재처리 절차서 작성을 지속적으로 개선해 드립니다. 아침마다 정산 결과부터 확인하고 계신다면 POLYGLOTSOFT에 문의해 주시기 바랍니다.
