배치 작업 중의 정보를 저장하는 저장소 역할을 합니다
Job이 언제 수행되었고 끝났는지와 실행 횟수 등 배치작업의 수행과 관련된 모든
메타데이터를 저장합니다
JobLauncher, Job, Step 구현체 내부에서 CRUD 기능을 처리합니다
@EnableBatchProcssing 어노테이션만 선언하면 JobRepository가 자동으로 빈으로 생성됩니다
BatchConfigurer 인터페이스를 구현하거나 BasicBatchConfigurer를 상속해서
JobRepository 설정을 커스터마이징할 수 있습니다
내부적으로 AOP 기술을 통해 트랜잭션 처리를 하고 있습니다
트랜잭션 isolation의 기본값은 SERIALIZABLE로 최고수준이며, 다른 레벨로 지정가능합니다
메타테이블의 Table Prefix를 변경할 수 있으며 기본값은 BATCH_ 입니다
성능 등의 이유로 도메인 오브젝트를 DB에 저장하고 싶지 않을 경우 사용합니다
보통 Test나 프로토타입의 빠른 개발이 필요할 때 사용합니다