IT Memory Note

[정보처리기사] 서버 프로그램 구현 : 배치 프로그램 구현 본문

자격증/정보처리기사

[정보처리기사] 서버 프로그램 구현 : 배치 프로그램 구현

h00ddu 2024. 8. 21. 19:44

 

1️⃣ 배치 프로그램(Batch Program)

 


(1) 배치 프로그램의 개념

 

  • 사용자와의 상호작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 방법

 

(2) 배치 프로그램의 유형

 

유형 설명
이벤트 배치 사전에 정의해 둔 조건 충족 시 자동으로 실행
온디맨드 배치 사용자의 명시적 요구가 있을 때마다 실행
정기 배치 정해진 시점(주로 야간)에 정기적으로 실행

 


 

(3) 배치 스케줄러(Batch Scheduler)

 

1. 배치 스케줄러의 개념

 

  • 일괄 처리(Batch Processing)를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

배치 스케줄러의 개념도


2. 배치 스케줄러의 종류

 

종류 설명
스프링 배치
(Spring Batch)
스프링 프레임워크의 DI, AOP, 서비스 추상화 등 스프링 프레임워크의 3대 요소를 모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러 배치 애플리케이션
쿼츠 스케줄러
(Quartz Scheduler)
스프링 프레임워크에 플러그인되어 수행하는 작업(Job)과 실행 스케줄을 정의하는 트리거를 분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

 


3. Cron 표현식

 

  • 스케줄러를 실행시키기 위해 작업이 실행되는 시간 및 주기 등을 설정하게 되는데 크론 표현식을 통해 배치 수행시간을 설정함
  • 크게 리눅스(Linux)/유닉스(Unix)와 쿼츠(Quartz)로 구분됨

< 리눅스/유닉스 크론 표현식 >

순서 필드 이름 허용 값
1 분(Minutes) 0 ~ 59, 특수문자
2 시간(Hours) 0 ~ 23, 특수문자
3 일(Day of Month) 0 ~ 31, 특수문자
4 월(Months) 1 ~ 12, JAN ~ DEC, 특수문자
5 요일(Day of Week) 1 ~ 7, SUN-SAT, 특수문자
6 연도(Year)(생략 가능) 1970 ~ 2099, 특수문자

 

< 쿼츠 크론 표현식 >

순서 필드 이름 허용 값
1 초(Seconds) 0 ~ 59, 특수문자
2 분(Minutes) 0 ~ 59, 특수문자
3 시간(Hours) 0 ~ 23, 특수문자
4 일(Day of Month) 0 ~ 31, 특수문자
5 월(Months) 1 ~ 12, JAN ~ DEC, 특수문자
6 요일(Day of Week) 1 ~ 7, SUN-SAT, 특수문자
7 연도(Year)(생략 가능) 1970 ~ 2099, 특수문자

 

< Cron 표현식의 특수문자 >

기호 의미
* 모든 수
? 해당 항목을 미사용
- 기간 설정
, 특정 기간 설정
/ 시작 시간과 반복 간격 설정
L 마지막 기간에 동작
W 가장 가까운 평일에 동작
# 몇 번째 주, 요일 설정

 

< Cron 표현식의 예 >

사용 예 의미
0 - 12 * * ? 매일 12시에 실행
0 15 10 * * ? 매일 오전 10시 15분에 실행
0 * 14 * * ? 오후 14시에서 15싱 사이에 매 분마다 실행
0 0/5 14,20 * * ? 매일 15시에 시작하여 14시 55분까지 5분마다 실행, 20시 정각부터 20시 55분까지 5분마다 실행
0 0 20 ? * MON-FRI 매주 월요일과 금요일 사이 20시에 실행
0 15 10 15 * ? 매달 15일 10시 15분에 실행
0 15 10 L * ? 매달 마지막 날 10시 15분에 실행
0 15 10 ? * 6L 2020-2021 2020년부터 2021년 매달 마지막 금요일 10시 15분에 실행
0 15 10 15 * ? 매달 15일 10시 15분에 실행
0 11 11 1 1 ? 1월 1일 11시 11분마다 실행