11월 28일
(1)Batch Layer 란?
대용량 데이터 처리를 위한 기반 환경을 제공하는 Layer 임.
(2)Batch 란?
인간과 상호작용 없이 Time Based Event형태로 작업할 수 있는 시스템적인 작업을 의미 함.
대용량 작업이나 복잡한 작업은 배치를 통해 쉽게 작업을 할 수 있다.
예) pc에서 프린트 출력시, 웹사이트 로그 분석, 주기적으로 계산 처리해야 하는 회계결산이나 급여작업
(3)Batch 작업의 특징
(3-1)관리자에 의한 실행:배치 관리자에 의해서 배치 실행
(3-2)스케줄링 사용:특정시간대 배치를 실행 할 수 있음
(3-3)백그라운드 실행:사용자의 요청을 기다리지 않고 백그라운드 상에서 실행할 수 있다.
-JobLauncher는 Job을 실행시켜주는 역할을 한다.
Job과 Job Parameters를 이용하여 요청된 Batch 작업을 실행 후 JobExecution을 반환.
-Job은 업무의 단위인데 실행시킨 작업의 단위 또는 묶음형태의 단위이다.
Step의 묶음형태의 단위 이다.그래서 Job은 Step을 1개이상 가지고 있어야함.
-Step은 Job안에서 실제로 해야될 일들, 실제로 일을 하는 단위(Task)이다.
Job 내부를 구성하고 있음.
-JobRepository는 JobLauncher,Job,Step에 발생하는 metaData를 저장한다.
-Item은 파일을 처리하기 위한 가장 작은 요소이다.
-ItemReader를 통해서 플랫파일이나 데이터베이스에서 데이터를 읽을수가 있고,
-ItemProcessor 읽어들인 데이터를 변형이 필요하거나 비즈니스 로직을 넣어야 할때 사용하며,
-ItemWriter 읽어들인 데이터와 처리한 데이터를 output할때, 즉 출력할때 사용함.
*Tier별 설명
(1)Run Tier
스케줄링과 어플리케이션의 실행을 담당한다.
(2)Job Tier
Job에대한 전반적인 실행을 담당함.
(3)Application Tier
Job을 실행하는데 필요한 컴포넌트들로 구성.
(4)Data Tier
데이터베이스와 플랫파일에 물리적인 데이터소스와 결합이 이루어 질때 이용함.
*Spring Batch 흐름 중 중요설명
-Job Configuration(App Context): Job에 대한 설정을 하는 곳
-Business Logic: 실질적인 ItemProcessor와 같다. 데이터를 변형이 필요하거나 비즈니스 로직을 넣어야 할때 사용하는 곳이다.
-ItemWriter가 DB Access config를 통해서 설정되어져 있는 ORM을 통해서 최종적으로 데이터를 Writing 할수 있음.
-JOb Runner 외부 실행 모듈과 JobLauncher를 연결해주는 모듈
-Step Execution은 Step을 수행하기 위한 단 한번의 Step 시도를 의미하며 매번 시도될 때마다 생성.