반응형

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

+ Recent posts