본문 바로가기

STUDY/스프링 배치

(3)
3. 스프링 배치: Job, JobParameter, JobInstance, JobExecution Job Job이란 개념적으로 스프링 배치가 수행할 하나의 작업 그 차체를 의미한다. "일별 판매 정산" 일괄처리 작업이 있다면 "일별 판매 정산"이 Job으로 만들어지는 것이다. Spring Batch의 객체로써 보면, 위와같은 모습이다. 이름, 재시작 가능여부, JobParametersIncremeter, JobParametersValidator를 가져올 수 있는 메소드. 그리고 Job을 실행할 메소드를 기본적으로 가지고 있다. 하위에는 이를 구현한 여러 종류의 Job들이 있다. JobInstance JobInstance란 Job에 JobParameters가 전달되어 만들어지는 실행가능한 논리적 작업 단위 객체이다. JobInstance에 실제 내부 동작을 위한 필드나 메소드는 존재하지않고, Job의 ..
2. 스프링 배치: 배치 테이블 스키마 배치 테이블 생성 스프링 배치는 실행된 작업마다 여러 요소(Job, JobParameter, Step...)들의 상태, 그리고 성공/실패에 관한 이력을 알아서 저장해준다. 개발자는 스프링 배치가 사용할 배치 테이블을 생성하고, DB 연결정보를 정의해주기만 하면 된다. 배치 테이블을 생성하기위한 DB 스키마는 소스에 포함되어있으니, 사용하는 DB에 맞는 스키마을 찾아서 사용하면 된다. 메타 테이블 종류 batch_job_instance: 실행된 배치의 JobInstance 정보가 저장되는 테이블 JOB_INSTANCE_ID: 실행된 JobInstance의 id VERSION: 배치 테이블의 낙관적 락 전략을 위해 사용되는 데이터 JOB_NAME: 실행된 Job의 이름 JOB_KEY: JobParameter..
1. 스프링 배치: Hello World Spring Batch 일괄 처리(Batch Process) 일괄처리(Batch Process)는 사용자의 개입 없이 또는 정해진 로직대로 스케줄링/실행되는 작업을 의미한다. 즉각적으로 처리될 필요가 없는 작업의 경우, 자원의 효율적 사용을 위해 이와 같은 방식을 사용한다. 예를 들어 쇼핑몰에서 매일의 판매 집계 데이터를 만드려고 한다면, 각각의 판매가 이루어 졌을때마다 데이터를 만들고 수정할 수도 있지만, 매일 자정에 일괄 처리를 한다면 더욱 효율적으로 같은 결과를 얻을 수 있다. 스프링 배치(Spring Batch) 스프링 배치는 일괄 처리를 위해 만들어진 프레임 워크이다. 스프링 배치는 개발자가 일괄 처리를 위한 부가적인 기능에 대한 고민 없이, 서비스를 위한 일괄처리 작업 구현에만 집중할 수 있도록 해준다. 일괄 처리를..