topic난이도 · 약 14

배치 프로그램 & 스케줄러

대용량·비대화형·정기 실행. Quartz · Spring Batch · cron 표현식 6필드.

#배치#Quartz#cron#SpringBatch
왜 배우는가

배치 프로그램의 특징 3가지(대용량·비대화형·정기실행)와 cron 표현식 6필드가 서술형 출제 포인트. 특히 cron "0 0 2 * * ?"의 해석을 빈칸으로 묻는 문제가 2024년 실기에 등장. Quartz vs Spring Batch 차이도 단골.

배치 프로그램(Batch Program)은 사용자 개입 없이 정해진 시간에 대용량 데이터를 일괄 처리하는 프로그램이다. 야간 정산, 통계 집계, 로그 아카이빙이 대표 사례.

특징설명
대용량(Bulk)한 번에 수만~수천만 건 처리
비대화형(Non-interactive)사용자 입력 없이 자동 실행
정기 실행(Scheduled)시간·이벤트 기반 주기적 가동
견고성(Robust)실패 시 재시작·롤백
자동화(Automated)운영자 개입 최소화

cron 표현식 6필드 — `초 분 시 일 월 요일` 순서. 예: `0 0 2 * * ?` = "매일 새벽 2시". `*`=모두, `?`=지정 없음(일/요일 충돌 회피), `/`=주기, `,`=목록.

Quartz vs Spring BatchQuartz는 "언제 실행할까"(스케줄링). Spring Batch는 "대용량을 어떻게 처리할까"(배치 프레임워크: Chunk·ItemReader·ItemProcessor·ItemWriter). 실무에선 Quartz로 Spring Batch 잡을 트리거하는 조합이 표준.

cron 예시 해석 - `*/5 * * * * *` = 5초마다 - `0 30 9 * * MON-FRI` = 평일 오전 9:30 - `0 0 0 1 * ?` = 매월 1일 자정

실기 드릴 4문항
edit실기 드릴 · 단답형

배치 프로그램의 3가지 필수 특성(대용량·비대화형 외)을 쓰시오.

space_bar실기 드릴 · 빈칸 채우기

cron 표현식 `0 0 2 * * ?`의 의미는 ( )마다 새벽 2시 실행이다.

edit실기 드릴 · 단답형

스케줄링 엔진으로 자주 쓰이는 Java 오픈소스와, 대용량 배치 처리 프레임워크로 자주 쓰이는 Spring 모듈의 이름을 각각 쓰시오.

check_circle실기 드릴 · OX

Linux cron의 필드는 왼쪽부터 `분 시 일 월 요일` 5개이지만, Quartz cron은 맨 앞에 를 추가한 6필드다.