배치 프로세싱 개요
배치 프로세싱은 주기적으로 발생하거나 반복적으로 처리해야 하는 작업을 자동화하기 위한 도구입니다. 이를 위해 스프링 배치와 쿼츠 스케줄러가 주로 사용됩니다.
주요 도구
- 스프링 배치 (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시에 실행
배치 프로그램 설계 및 작성
- 배치 프로그램 관리대장 확인: 프로그램 관리 대장을 확인하여 배치 프로그램의 기능을 확인합니다.
- 배치 설계서 확인: 배치 설계서를 참고하여 배치 프로그램을 구현합니다.
- DTO 및 VO 구현: 데이터 전송 객체와 값 객체를 구현합니다.
- SQL문 작성: 배치 프로그램에 필요한 SQL 문을 작성합니다.
- DAO 구현: 데이터 접근 객체를 구현하여 데이터베이스에 접근합니다.
- Service 클래스 구현: 배치 프로그램의 비즈니스 로직을 구현합니다.
- 스케줄러 등록: 쿼츠 스케줄러를 사용하여 작성한 배치 프로그램을 정기적으로 실행할 수 있도록 등록합니다.
아직 작성중인 글이며 추가로 들어가야하는 내용이나 틀린점이 있다면 알려주시면 감사하겠습니다.
'Backend > Spring' 카테고리의 다른 글
[Spring] Swagger 스프링 3.x버전 적용 (0) | 2024.04.15 |
---|---|
동기,비동기 처리 필요성 및 소켓서버 (0) | 2024.03.23 |
[Spring] PostConstruct를 사용한 테스트 환경 구축 (0) | 2024.03.23 |
[Spring] JPA (0) | 2024.03.23 |
[Spring/JWT] Access Token 과 Refresh Token (0) | 2023.11.14 |