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 모듈에서는 쿼츠 크론 표현식 기준으로 서술
문제 나오면 리눅스/유닉스 크론인지 쿼츠 크론인지 잘 보고 풀 것!!
리눅스 /유닉스 크론 : 분시일월요연
쿼츠 크론 : 초분시일월요연
'WorkOut > 정보처리기사' 카테고리의 다른 글
요구사항 확인 | 소프트웨어 개발 방법론 _ 프로젝트 관리 (0) | 2024.04.19 |
---|---|
요구사항 확인 | 소프트웨어 개발 방법론 (1) | 2024.04.19 |
서버 프로그램 구현 | 모듈 구현 및 테스트 (0) | 2024.04.18 |
서버 프로그램 구현 | 개발환경 구축 (0) | 2024.04.16 |
SQL 문제 풀이 | SQL 활용 및 최적화 (0) | 2024.04.15 |