정보처리/프로그래밍언어활용

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

피갓자 2025. 5. 11. 09:00

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

배치 프로그램

배치 프로그램(Batch Program)의 개념

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

배치 프로그램의 유형

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

배치 스케줄러

배치 스케줄러(Scheduler)의 개념

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

배치 스케줄러의 종류

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

Cron 표현식

  • 스케줄러를 실행하기 위해 작업이 실행되는 시간 및 주기 등을 설정하게 되는데 크론 표현식을 통해 배치 수행시간을 설정

리눅스(Linux)/유닉스(Unix) 크론 표현식

  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 표현식 특수문자

  • * : 모든 수
  • ? : 해당 항목을 미사용
  • - : 기간 설정
  • , : 특정 기간 설정
  • / : 시작 시간과 반복 간격 설정
  • 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 11 11 1 1 ? : 1월 1일 11시 11분마다 실행