반응형
Spring Batch란?
- Spring Batch는 대규모 작업을 처리하는데 사용되는 프레임워크
- 주로 데이터 마이그레이션, 대량 데이터 처리 등의 작업을 처리하는 데 사용된다.
Job
- job은 step 인스턴스를 위한 컨테이너 역할을 수행한다.
- job은 아래 내용들을 설정한다.
- job의 이름 설정.
- step 인스턴스의 정의 및 순서 설정.
- 작업을 다시 시작할 수 있는지 여부 설정.
JobInstance
- Job의 인스턴스를 말한다.
- 이전에 실행했던 JobInstance를 사용한다면 종료한 곳부터 시작하는 것을 의미한다.
- 동일한 JobParameters를 사용하면 이전에 실행했던 JobInstance를 사용하는듯??
- 새로운 JobInstance를 사용한다면 처음부터 시작하는 것을 의미한다.
JobParameters
- 배치 작업을 수행하는데 사용되는 매개 변수를 말한다.
JobExecution
- Job의 실행을 말한다.
- 만약 동일한 JobParameters로 실행할 경우 동일한 JobInstance로 새 JobExecution을 생성하여 실행한다.
- Job의 실행 시간, 종료시간, 실행 상태 등의 속성을 갖는다.
Step
- 배치 작업의 독립적이고 순차적인 단계를 캡슐화한 객체를 말한다.
- 모든 Job은 하나 이상의 Step을 갖는다.
StepExecution
- Step의 실행을 말한다.
- Step이 실행될 때마다 새 StepExecution이 생성된다.
- Step의 실행 시간, 종료 시간, 실행 상태, commit 수, rollback 수 등의 속성을 갖는다.
ExecutionContext
- JobExecution, StepExecution 전반에 걸쳐 접근 가능한 키=값 형태의 저장 공간을 말한다.
- ExecutionContext는 커밋 시점에 DB에 저장되어 어느 데이터까지 성공하였는지 관리하고, 이후 재실행시 이후 데이터부터 처리할 수 있도록 해준다.
JobRepository
- Job 및 Step에서 관련 정보들을 CRUD 할 수 있도록 제공하는 것을 말한다.
- @EnableBatchProcessing 어노테이션을 통해 JobRepository를 자동으로 설정할 수 있다.
JobLauncher
- JobParameters를 Job에 전달하여 배치를 실행시켜주는 객체를 말한다.
ItemReader
- Step에 대한 입력을 한 번에 하나씩 검색하는 객체를 말한다.
- ItemReader가 제공할 수 있는 항목을 모두 소진하면 null을 반환한다.
ItemWriter
- Step의 출력을 담당하는 객체를 말한다.
ItemProcessor
- Item의 비즈니스 처리를 담당하는 객체를 말한다.
- Reader에서 읽은 데이터를 변환하고 Writer에 전달할 때 사용한다.
- null을 반환하면 Writer에 전달하지 않는다.
참고
반응형
'Development > Spring Batch' 카테고리의 다른 글
[Spring Batch] 기본 예제 (0) | 2024.03.09 |
---|