Spring Batch Listener리스너는 배치 처리의 주요 순간들을 관찰하고 각 시점에 필요한 동작을 정의할 수 있는 강력한 도구이다. 즉, 배치 처리 중 발생하는 특정 이벤트를 감지하고 원하는 로직을 실행할 수 있게 해준다.Job 시작 전후, Step 실행 전후는 물론, 청크 단위 또는 아이템 단위 처리 시점까지 모든 과정에 개입할 수 있다. 이를 통해 로깅, 모니터링, 에러 처리 등 우리가 원하는 로직을 자유롭게 추가할 수 있다.JobExecutionListenerJobExecutionListener는 Job 실행의 시작과 종료 시점에 호출되는 리스너 인터페이스이다.public interface JobExecutionListener { default void beforeJob(JobExec..
JobParameters란 무엇인가?JobParameters는 배치 작업에 전달되는 입력 값이다.이 값은 배치가 어떤 조건에서, 어떤 데이터를 다룰지를 결정하는 데 핵심적인 역할을 한다.프로퍼티와 JobParameters의 결정적 차이1. 입력값 동적 변경./gradlew bootRun --args='--spring.batch.job.name=systemTerminationSimulationJob'2. 메타데이터여기서 JobParameters의 진짜 강점이 드러난다. Spring Batch는 JobParameters의 모든 값을 메타데이터 저장소에 기록하며, 이를 통해 다음과 같은 중요한 기능을 제공한다.Job 인스턴스 식별 및 재시작 처리Job 실행 이력 추적JobParameters 전달하기1. 커맨드..
Job: 하나의 완전한 배치 처리 작업Step: Job의 세부 실행 단계(하나의 Job은 여러 Step으로 구성될 수 있다)ItemReader: 데이터를 읽어오는 컴포넌트ItemProcessor: 데이터를 가공하는 컴포넌트ItemWriter: 데이터를 저장하는 컴포넌트 스프링 배치는 다음과 같은 다양한 데이터 소스를 기본적으로 지원한다.플랫 파일 (CSV, TXT): FlatFileItemReader, FlatFileItemWriter를 사용해 간단히 처리.XML/JSON: StaxEventItemReader, JsonItemReader, JsonFileItemWriter 등을 사용한 구조화된 데이터 처리.관계형 데이터베이스: JdbcCursorItemReader, JdbcBatchItemWriter ..