배치 어플리케이션이란?
단발성으로 대량의 데이터를 처리하는 어플리케이션
배치 어플리케이션의 조건?
- 대용량 데이터 : 대용량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 함.
- 자동화 : 심각화 문제 해결을 제외하고는 사용자의 개입 없이 실행되어야 함.
- 견고성 : 배치 어플리케이션은 잘못된 데이터를 충돌/중단 없이 처리할 수 있어야 함.
- 신뢰성 : 무엇이 잘못되었는지 추적할 수 있어야 함.
- 성능 : 지정한 시간 안에 처리를 완료하거나 동시에 실행되는 다른 어플리케이션을 방해하지 않도록 수행되어야 함.
Batch vs Quartz?
Quartz는 스케줄러의 역할을 하며, Batch와 같이 대용량 데이터 배치 처리 기능은 지원하지 않는다.
Batch는 Quartz의 다양한 스케줄 기능을 지원하지 않아 보통 Quartz와 Batch를 조합해서 사용한다.
정해진 스케줄마다 Quartz가 Spring Batch를 실행하는 구조이다.
Spring Batch?
Spring Framework 기반으로 일괄처리를 위한 오픈 소스 프레임워크이며, 로깅/추적, 트랜잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 재사용 가능한 기능을 제공한다.
참고 자료
https://jojoldu.tistory.com/324?category=902551