스프링 배치 기초

스프링 배치

1. 스프링 배치 개념

  • 배치란 무엇인가

    • 데이터를 일정 기간 또는 일정량을 기준으로 묶어서 처리하는 방식

    • 즉, 일괄 처리하는 방식을 말한다.

  • 스프링 배치란 무엇인가

    • 앞서말한 배치 작업을 처리하기위해 필요한 구조와 기능들 스프링에서 제공하는 프레임워크


2. 스프링 배치 기능

  • 배치 작업 모니터링

  • 배치 작업 트랜잭션 관리

  • 배치 작업 통계 정보 제공

  • 배치 작업 시작, 재시작, 건너뛰기 등의 정책 설정

  • 다양한 배치 실행 방법 지원

    • Quartz, CommandLine, JMX 콘솔, OSGI, 동기/비동기 등등

3. 스프링 배치 주요 개념

  • Job

    • 하나의 배치 작업을 정의하는 개념

    • Job Instance

      • Job의 실행에 대한 논리적인 개념을 의미

      • 배치가 실제 실행되면, 각각의 실행을 Instance라고 한다.

      • 예를 들어, 매주 1번씩 실행되는 배치 작업이 있다면 그 매주 실행되는 각각의 배치 작업을 Job Instance라고 한다.

      • 동일한 Job Parameters를 가진 Job Instance는 생성할 수 없다.

    • Job Execution

      • 배치 작업이 실행될 때, 실제로 수행된 Execution을 의미

      • 예를 들어, 월요일 오전마다 수행되는 배치 작업이 있을 때, 첫 번째 배치 작업은 실패하고 두 번째에 재 시도하여 성공했다면, 두 번의 시도는 각각이 다른 Job Execution이고 같은 작업의 시도만 다를 뿐이니 Job Instance는 같다.

      • Job에 대한 실행 결과(Failed, Completed)를 가진다.

    • Job Parameter

      • Job Instance가 실행될 때, 전달되는 파라미터를 의미
  • Step

    • Job에 대한 순차적인 처리 단계를 의미

    • Step Execution

      • 한번의 Step 실행 시도를 의미

      • 시작/종료 시간과 상태를 의미하는 속성들과 commit 속성, item 개수 속성을 가진다.

    • Item Reader

      • Step의 처리 대상이 되는 데이터를 조회하는 역할
    • Item Processor

      • Step의 Item Reader를 통해 전달된 하나의 아이템에 대한 비지니스 로직을 처리하는 역할
    • Item Writer

      • Step의 처리 결과를 기록하는 역할

댓글