티스토리 뷰

Server

Batch 프로그램과 스케줄러

니용 2021. 10. 21. 20:48
반응형

오늘은 배치 프로그램(Batch Program)과 배치 스케줄러(Batch Scheduler)에 대해서 알아보고자 합니다. 우선 배치 프로그램(Batch Program)이란 무엇일까요?

 

배치 프로그램(Batch Program)이란?

배치 프로그램은 사용자와의 상호 작용 없이 여러 작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것을 의미한다.

시나공 정보처리기사 실기 <길벗>

 

배치 프로그램(Batch Program)은 수행되는 주기에 따라서 구분해볼 수도 있습니다.

정기 배치 일, 주, 월과 같이 정해진 기간에 정기적으로 수행
이벤트성 배치 특정 조건을 설정해두고 조건이 충족될 때만 수행
On-Demand 배치 사용자 요청 시 수행

 


 

그럼 다음에는 배치 프로그램(Batch Program)이 갖추어야 하는 필수 요소를 살펴보겠습니다.

대용량 데이터 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 한다.
자동화 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 한다.
견고성 잘못된 데이터나 ㅔ이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 한다.
안정성/신뢰성 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할 수 있어야 한다.
성능 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야 한다.

 


 

이번에는 배치 스케줄러(Batch Scheduler)에 대해서 살펴보겠습니다!

 

 

배치 스케줄러(Batch Scheduler)란?

일괄 처리(Batch Processing) 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해 주는 도구
from. 시나공 정보처리기사 실기 <길벗>

 

배치 스케줄러(Batch Scheduler)는 특정 업무(Job)를 원하는 시간에 처리할 수 있도록 지원한다는 특성 때문에 잡 스케줄러(Job Scheduler)라고도 불립니다.

그럼 주로 사용되는 배치 스케줄러를 살펴볼까요?

 


 

1. 스프링 배치(Spring Batch)

- 스프링 배치(Spring Batch)는 Spring Source 사와 Accenture 사가 2007년에 공동 개발한 오픈소스 프레임워크입니다.

- 로그 관리, 추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작 등의 다양한 기능을 제공합니다.

- 스프링 배치(Spring Batch)의 주요 구성 요소와 역할

Job 수행할 작업 정의
Job Launcher 실행을 위한 인터페이스
Step Job 처리를 위한 제어 정보
Job Repository Step의 제어 정보를 포함하여 작업 실행을 위한 모든 정보 저장

 

2. Quartz

-Quartz는 스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리이다.

- 수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공한다.

-Quartz의 주요 구성 요소와 역할

Scheduler 실행 환경 관리
Job 수행할 작업 정의
JobDetail Job의 상세 정보
Trigger Job의 실행 스케줄 정의

 

3. Cron

- Cron은 리눅스의 스케줄러 도구로 crontab 명령어를 통해 작업을 예약할 수 있습니다.

- 편집기(Editor)에서 요일, 월, 일, 시 분을 기준으로 수행할 명령어를 지정합니다.

- 작업 예약 형식

[분] : 0~59

[시] : 0~23

[일] : 1~31

[월] : 1~12

[요일] : 0(일요일)~6(토요일)

[명령어]

예시 1) 30 1 * * * /root/com.sh

매월 매일 1시 30분에 com.sh를 실행합니다.

예시 2) 30 */3 * * * /root/com.sh

매월 매일 0:30부터 3시간마다 com.sh를 실행합니다.

(0:30, 3:30, 6:30 ... 21:30)

보다 자세한 내용은 이전 글에 작성해둔 것이 있어서 이 부분을 확인해보아도 좋을것 같습니다 :)

https://abbo.tistory.com/26

 

Cron 표현식

Author: 주니용 최근에 개발자의 편의성이 스프링 부트의 탄생에 따라 많이 좋아졌다. 이전에는 제공하지 않았던 배치를 스프링 부트에서 제공하기 때문이다. 이번 글에서는 배치에서 사용하고

abbo.tistory.com

 

반응형
댓글
공지사항