본문 바로가기
  • 適者生存
WorkOut/정보처리기사

서버 프로그램 구현 | 배치 프로그램

by lcrvvxln 2024. 4. 18.

08. 서버 프로그램 구현

Chapter 03. 배치 프로그램 구현

 

1. 배치 프로그램 (Batch Program)

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

(1) 배치 프로그램 유형

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

# 배치 프로그램 유형

※ 이온정 : 이벤트 배치 / 온디맨드 배치 / 정기 배치

▶ 이온 정수기

 
 

(2) 배치 스케줄러 (Scheduler)

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

배치 스케줄러 개념도

 

 

[1] 배치 스케줄러 종류

 

① 스프링 배치 (Spring Batch)

DI, AOP, 서비스 추상화스프링 프레임워크3대 요소모두 사용할 수 있는 대용량 처리를 제공하는 스케줄러 배치 애플리케이션

 

② 쿼츠 스케줄러 (Quartz Scheduler)

스프링 프레임워크플러그인되어 수행하는 작업(Job)실행 스케줄을 정의하는 트리거분리하여 유연성을 제공하는 오픈 소스 기반 스케줄러

 

쿼츠는 배치와 같이 대용량 데이터 배치 처리에 대한 기능을 지원하지 않습니다
    배치 또한 쿼츠의 다양한 스케줄 기능을 지원하지 않아 쿼츠 + 배치 조합해서 사용합니다.

 

 

[2] Cron 표현식

- 크론 표현식을 통해 스케줄러 실행 위한 작업 실행 시간주기배치 수행시간 설정

- 크론 표현식은 크게 리눅스(Linux) / 유닉스(Unix)쿼츠(Quartz)로 구분

 

  • 리눅스 / 유닉스 크론 표현식

1. 분 (Minutes) : 0~59, 특수문자

2. 시간 (Hours) : 0~23, 특수문자

3. 일 (Day of Month) : 1~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) : 1~31, 특수문자

5. 월 (Months) : 1~12, JAN~DEC, 특수문자

6. 요일 (Day of Week) : 1~7, SUN~SAT, 특수문자

7. 연도 (Year) (생략 가능) : 1970~2099, 특수문자

 

# Cron 표현식

※ 초분시일월요연 : 초 / 분 / 시간 / 일 / 월 / 요일 / 연도

 

 

※ 배치 프로그램은 상대적 중요도가 낮으므로 Cron 표현식 정도만 봐도 괜찮다

 

 

  • Cron 표현식 특수문자 의미

* : 모든 수

? : 해당 항목 미사용

- : 기간 설정

, : 특정 기간 설정

/ : 시작시간과 반복간격 설정

L : 마지막 기간에 동작

W : 가강 가까운 평일에 동작

# : 몇 번째 주, 요일 설정 

 

 

  • Cron 표현식 특수문자 의미

- 초분시일월요연

 

0 0 12 * * ? : 매일 12시에 실행 

0 15 10 * * ? : 매일 오전 10시 15분에 실행

0 * 14 * * ? : 오후 14시에서 15시 사이에 매 분마다 실행

0 0/5 14,20 * * ? : 매일 14시에 시작하여 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분마다 실행 

 

 

NCS 모듈에서는 쿼츠 크론 표현식 기준으로 서술 

문제 나오면 리눅스/유닉스 크론인지 쿼츠 크론인지 잘 보고 풀 것!!

리눅스 /유닉스 크론 : 분시일월요연
쿼츠 크론 : 초분시일월요연