BackEnd/Spring Batch
-
06. JobBackEnd/Spring Batch 2021. 12. 16. 23:59
스프링 배치는 Job과 Step을 쉽게 생성 및 설정할 수 있도록 util 성격의 빌더 클래스들을 제공합니다. JobBuilderFactory JobBuilder를 생성하는 팩토리 클래스로 get(String name) 메서드를 제공합니다. jobBuilderFactory.get("jobName")으로 생성합니다. JobBuilder Job을 구성하는 설정 조건에 따라 두 개의 하위 빌더 클래스를 생성하고 실제 Job 생성을 위임합니다. SimpleJobBuilder: SimpleJob을 생성하는 Builder 클래스로 Job 실행과 관련된 여러 설정 API를 제공합니다. FlowJobBuilder: FlowJob을 생성하는 Builder 클래스로 내부적으로 FlowBuilder를 반환함으로써 Flow ..
-
05. 스프링 배치 초기화 설정BackEnd/Spring Batch 2021. 12. 16. 22:01
JobLauncherApplicationRunner Spring Batch 작업을 시작하는 ApplicationRunner로서 BatchAutoConfiguration에서 생성됩니다. 스프링 부트에서 제공하는 ApplicationRunner의 구현체로 애플리케이션이 정상적으로 구동되자 마다 실행됩니다. 기본적으로 빈으로 등록된 모든 Job을 실행시킵니다. BatchProperties Spring Batch의 환경 설정 클래스로 Job 이름, 스키마 초기화 설정, 테이블 Prefix 등의 값을 설정할 수 있습니다. application.properties or application.yml 파일에 설정합니다. batch: job: names: ${job.name:NONE} # Job 이름 (미지정 시 NON..
-
04. 도메인 언어(Domain Language)BackEnd/Spring Batch 2021. 12. 15. 21:26
JobLauncher Job과 Job Parameters를 인자로 받아 배치 Job을 실행시키는 역할을 합니다. 배치 작업을 수행한 후에는 최종 클라이언트에게 JobExecution을 반환합니다. 스프링 부트 배치가 구동이 되면 JobLauncher 빈이 자동으로 생성되며 JobLauncher.run(Job, JobParameters)로 Job을 실행합니다. 동기적 실행 기본값으로 taskExecutor를 SyncTaskExecutor로 설정할 경우 동기적으로 실행됩니다. JobExecution을 획득하고 배치 처리를 최종 완료한 이후 클라이언트에게 JobExecution을 반환합니다. 스케줄러에 의한 배치처리(배치처리 시간이 길어도 상관없는 경우)에 적합합니다. 비동기적 실행 taskExecutor를 ..
-
03. 메타데이터 스키마(Meta-Data Schema)BackEnd/Spring Batch 2021. 12. 11. 11:10
스프링 배치의 실행 및 관리를 위한 목적으로 여러 도메인들(Job, Step, JobParameters...)의 정보들을 저장, 업데이트 및 조회할 수 있는 스키마를 제공합니다. 과거, 현재의 실행에 대한 세세한 정보, 실행에 대한 성공과 실패 여부 등을 일목요연하게 관리함으로서 배치 운용에 있어 리스크 발생 시 빠른 대처가 가능합니다. 데이터베이스와 연동할 경우 필수적으로 메타 테이블이 생성 되어야 합니다. 데이터베이스 스키마를 제공하며 spring-bath-core 라이브러리 내 /org/springframework/batch/core 하위에 데이터베이스 유형별로 제공합니다. 아래는 h2 데이터베이스 스키마 파일입니다. 스키마(Schema) 생성 스키마 생성은 수동 생성과 자동 생성 방법이 있습니다...
-
02. Hello Spring Batch ProjectBackEnd/Spring Batch 2021. 12. 11. 09:28
Overview 해당 글에서는 간단한 스프링 배치 프로젝트를 생성하여 구조를 확인해 보겠습니다. 전체 소스코드는 https://github.com/HanseomKim/springbatch/tree/master/src/main/java/com/spring/springbatch 참고하시면 됩니다. 1. 프로젝트 생성 https://start.spring.io/ 에서 프로젝트를 생성합니다. [GENERATE] 의존성으로는 Spring Batch, Lombok, H2 Database을 추가합니다. 다운로드 받은 폴더를 압축 해제하고 작업 폴더로 옮긴 후 IntelliJ에서 File > Open > 다운로드받은폴더\pom.xml을 열면 됩니다. 의존성으로 H2 Databse를 추가하지 않으면 초기화 시 Faile..
-
01. Spring BatchBackEnd/Spring Batch 2021. 12. 7. 21:39
Spring Batch는 로깅/추적, 트랙잭션 관리, 작업 처리 통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 재사용 가능한 기능을 제공하는 가볍고 포괄적인 배치 프레임워크입니다. 또한 최적화 및 파티셔닝 기술을 통해 대용량 및 고성능 일괄 작업을 가능하게 하는 고급 기술 서비스 및 기능을 제공합니다. Spring Batch 특징 트랜잭션(Transaction) 관리 Chunk 기반 처리 선언적 I/O 시작/종료/재시작 재시작(Retry)/건너뛰기(Skip) 웹 기반 관리 인터페이스(Interface) (Spring Cloud Data Flow) Spring Batch Architecture Application 스프링 배치 프레임워크를 통해 개발자가 만든 모든 배치 Jo..