Job

**배치처리 과정을 하나의 단위**로 만들어놓은 객체

JobInstance

**Job 실행의 단위**를 나타내며 Job을 실행시킬 때마다 하나의 JobInstance가 생성

예를 들어 Job을 1월 1일, 1월 2일 2번을 실행시키면 **각각의 JobInstance가 생성**되고

1월 1일 실행한 JobInstance만 다시 실행하면 1월 1일에 관한 데이터만 처리해준다.

JobParameters

**JobInstance를 구별**하기 위한 객체 구별 외에도 JobInstance에 전달되는 매개변수 역할도 함

JobExecution

**JobInstance 실행 시도**에 대한 객체

실패한 JobInstance를 재실행시키면 똑같은 JobInstance를 돌리지만 JobExecution은 개별 생성

JobInstance 실행에 대해 상태, 시작, 종료, 생성시간 등의 정보를 담고있다.

JobRunner

**외부 요청에 의해 작업 실행을 담당**하는 클래스, JobLauncher 인스턴스화

예를 들어 쉘 스크립트 같은 외부 트리거로 메소드 호출 가능

JobLauncher

Job, JobParameters를 사용하여 **Job을 실행**하는 객체

JobRepository

Job이 실행되면 **JobRepository에 JobExecution, StepExecution을 생성**하고