스프링 배치

이다은·2024년 9월 4일

스프링 배치

목록 보기
1/5

스프링 배치

Spring Batch는 대량의 데이터 처리를 위한 경량화된 프레임워크로, 반복적인 작업을 수행하는 일괄 처리(Batch Processing) 작업을 효율적으로 처리할 수 있는 기능을 제공

스프링 배치 특징

  • 대용량 데이터 처리: Spring Batch는 방대한 양의 데이터를 처리할 수 있음. 데이터 처리 작업을 분산 처리할 수 있어서, 대용량 데이터 처리에 적합함.

  • 트랜잭션 관리: 데이터 처리 중 실패한 작업은 롤백하여 데이터 일관성을 유지할 수 있음

  • 재시도 기능
    Spring Batch는 작업 중 실패한 경우, 작업을 재시도할 수 있는 기능을 제공하고 재시도 횟수를 설정할 수 있음

스프링 배치 용어

  • Step - 배치 처리를 정의하고 제어하는 독립된 작업의 단위, 배치 처리 작업의 최소 단위
    1)Tasklet - 하나의 트랜잭션에서 수행되는 단순한 작업
    2)Chunk - 트랜잭션 범위 내에서 Chunk 단위로 데이터를 읽어 처리하는 방식

  • Job - 처음부터 끝까지 독립적 실행 가능하며 하나의 배치 작업을 나타내고 고유하고 순서가 지정된 여러 스텝들의 모음,JobInstance로 표현되며, JobInstance는 Job의 실행에 대한 실제 인스턴스를 나타냄

  • JobLauncher - Job을 실행하는 인터페이스. Job을 실행하기 위해서는 JobLauncher를 통해 Job을 실행해야 함

  • JobRepository - Job과 관련된 메타 정보를 저장하고 조회하기 위한 인터페이스. JobInstance, JobExecution, StepExecution 등의 정보를 포함하고 있음

  • JobInstance - Job의 실행을 나타내는 인스턴스

  • JobExecution - JobInstance의 실행에 대한 정보를 저장

  • StepExecution - Step의 실행에 대한 정보를 저장. StepExecution은 Step안에서 Tasklet 혹은 Chunk 방식으로 실행됨

Scheduler

  • Spring에서 Batch Job을 실행시키기 위해서는 Quartz, Scheduler, Jenkins 등 전용 Scheduler를 사용할 수 있음
  • 각각의 Scheduler는 사용 방법과 설정 방법이 다르므로, 구현하고자 하는 Batch Job에 맞는 Scheduler를 선택하여 사용해야 됨

0개의 댓글