배치 계층 구조에서 가장 상위에 있는 개념으로서 하나의 배치 작업 자체를 의미합니다
예를들어 API 서버의 접속 르고 데이터를 통계 서버로 옮기는 배치를 JOB 자체로 의미라고 의미합니다
Job Configuration을 통해 생성되는 객체 단위로서 배치 작업을 어떻게 구성하고
실행할 것인지 설정하고 명세한 객체를 의미합니다
배치 Job을 구성하기 위한 최상위 인터페이스이고 스프링 배치가 기본 구현체를 제공합니다
여러 Step을 포함하고 있는 컨테이너로서 반드시 한개 이상의 Step으로 구성해야합니다
순차적으로 Step을 실행시키는 Job으로 모든 Job에서 사용할 수 있는 표준 기능을 갖고 있습니다
특정한 조건과 흐름에 따라 Step을 구성하여 실행시키는 Job으로
Flow 객체를 실행시켜서 작업을 진행합니다
JobParameters로 부터 값을 받아 JobLauncher를 run(job.parameters)를 실행합니다
Job이 execute되면서 각 step을 진행합니다
이때, Job이라는 인터페이스는 void execute(JobExecution)이라는 Job 실행 메소드를 가지고 있습니다
Job 인터페이스를 구현한 AbstractJob이라는 추상 클래스에는 Job의 이름부터 재시작 여부
Step 실행 핸들러 등 다양한 정보를 가지고 있습니다
그리고 AbstractJob을 SimpleJob과 FlowJob으로 구현하며, 각각 Step과 Flow를 기반으로 동작합니다