본문 바로가기
Backend/Spring

[Spring] 배치 스케줄러-작성중

by pjhcsol 2024. 3. 23.

배치 프로세싱 개요

배치 프로세싱은 주기적으로 발생하거나 반복적으로 처리해야 하는 작업을 자동화하기 위한 도구입니다. 이를 위해 스프링 배치와 쿼츠 스케줄러가 주로 사용됩니다.

주요 도구

  • 스프링 배치 (Spring Batch): 스프링 프레임워크의 핵심 요소를 활용하여 배치 프로세싱을 구현합니다.
  • 쿼츠 스케줄러 (Quartz Scheduler): 오픈소스 기반의 스케줄러로, 주기적으로 작업을 실행할 수 있습니다.

Cron 표현식

스케줄러를 설정할 때 사용하는 Cron 표현식은 다음과 같습니다.

  • 초 분 시 일 월 요일 연도

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

  • 분(0-59)
  • 시간(0-23)
  • 일(1-31)
  • 월(1-12)
  • 요일(1-7)
  • 연도(1970-2099)

쿼츠 크론 표현식

  • 초(0-59)
  • 분(0-59)
  • 시간(0-23)
  • 일(1-31)
  • 월(1-12)
  • 요일(1-7)
  • 연도(1970-2099)

특수문자

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

예제

  • 0 0 12 * * ?: 매일 12시에 실행
  • 0 15 10 * * ?: 매일 오전 10시 15분에 실행
  • 0 * 14 * * ?: 오후 2시부터 3시 사이 매 분마다 실행
  • 0 0/5 14,20 * * ?: 오후 2시부터 2시 55분까지 5분마다 실행, 오후 8시부터 8시 55분까지 5분마다 실행
  • 0 0 20 ? * MON-FRI: 매주 월요일부터 금요일까지 오후 8시에 실행

배치 프로그램 설계 및 작성

  1. 배치 프로그램 관리대장 확인: 프로그램 관리 대장을 확인하여 배치 프로그램의 기능을 확인합니다.
  2. 배치 설계서 확인: 배치 설계서를 참고하여 배치 프로그램을 구현합니다.
  3. DTO 및 VO 구현: 데이터 전송 객체와 값 객체를 구현합니다.
  4. SQL문 작성: 배치 프로그램에 필요한 SQL 문을 작성합니다.
  5. DAO 구현: 데이터 접근 객체를 구현하여 데이터베이스에 접근합니다.
  6. Service 클래스 구현: 배치 프로그램의 비즈니스 로직을 구현합니다.
  7. 스케줄러 등록: 쿼츠 스케줄러를 사용하여 작성한 배치 프로그램을 정기적으로 실행할 수 있도록 등록합니다.

 

아직 작성중인 글이며 추가로 들어가야하는 내용이나 틀린점이 있다면 알려주시면 감사하겠습니다.