배치처리 예제
실행환경 배치처리에 관한 예제이다.
배치실행환경 예제 설치법
전자정부 표준프레임워크 홈페이지에서 배치실행환경 소스파일을 다운 받아 압축을 풀고, m2 이클립스가 설치되어 있다는 가정하에 설명한다.
배치 Runner 예제
배치 수행에 사용되는 EgovBatchRunner의 사용법을 보여주는 예제이다. 비동기 방식으로 실행하는 Job의 시작, 정지, 재시작 방법을 보여준다.
이벤트알림 템플릿(Template) 예제
전자정부 표준프레임워크의 배치 수행중 특정시점에 이벤트가 발생하는 경우 EventNoticeTrigger를 활용하여 SMS, Email 등을 통해 사용자가 설정한 관련정보를 발신하는 과정을 보여주는 예제이다. EgovEventNoticeTriggerFunctionalTests 예제는 일반 파일을 처리하는 과정에서 특정시점(Step 수행 시)에 배치수행과 관련한 내용을 Email로 보내주는 과정을 보여주는 과정을 보여준다.
배치 템플릿을 이용한 EgovCommandLineRunner 예제
CommandLine 배치 템플릿 프로젝트를 이용하여 EgovCommandLineRunner의 사용법을 보여주는 예제이다.
배치 템플릿을 이용한 EgovSchedulerRunner 예제
Scheduler 기반의 배치 템플릿 프로젝트를 이용하여 EgovSchedulerRunner의 사용법을 보여주는 예제이다.
작업 전후처리 예제
전자정부 표준프레임워크에서 배치 수행시, Core에서 제공하는 Processor 클래스를 이용하여 Job과 그 하위 구성요소인 Step, Chunk 전후에 적절한 선행/후행 처리 과정을 보여주는 예제이다.
재시도(Retry) 예제
배치 수행 시, 데이터를 처리하는 과정에서 실패한 데이터처리를 재시도하는 과정을 보여주는 예제이다. EgovRetrySampleFunctionalTests 예제는 ItemProcessing, ItemWriting 에서 발생한 예외상황에 대해 정해진 설정대로 Retry를 수행하는 과정을 보여준다. 설정된 retry-limit 만큼 재시도를 허용함으로써 Job 전체의 실패를 줄일 수 있다.
저장소(Repository) 예제
배치 수행 시, 데이터 처리 대상(DB,File등)에 대한 설정을 보여주는 예제이다. EgovRepositoryFunctionalTests 예제는 리소스가 DB 인 jdbcCursorIoJob 과 리소스가 File인 delimitedIoJob의 수행과정을 보여주면서, 데이터가 DB에서 DB로 File 에서 File로 처리 된다.
작업그룹 예제
배치 수행 시, 업무에 따라 필요한 일련의 Job들을 구분하기 위해서 이를 카테고리화 하여 관리 하는 기능을 보여주는 예제이다.
단순처리(Tasklet) 예제
배치 수행 시, Job의 실행중 itemReader와 ItemWriter 등의 인터페이스 사용이 필요없는 단순처리되는 작업(파일이동 등)을 보여주는 예제이다.
배치 실행로그 예제
배치 수행 시, 처리되는 배치관련 정보들에 대한 기록(Log)을 Registry 와 DB에 저장되고 이를 확인하는 과정을 보여주는 예제이다.
대용량 처리를 위한 멀티스레드 기반의 병행처리 예제
배치 수행 시, 대용량 처리를 위해 Job을 멀티스레드 기반으로 병행처리하는 과정을 보여준다. 실행 유형별로 멀티쓰레드 방식, Parallel 방식, 파티셔닝 방식 등이 있다.
건너뛰기(Skip) 기능 예제
배치 수행 중, 데이터를 처리하는 과정에서 에러가 발생한 데이터를 건너뛰고 다음 데이터를 처리하는 기능을 보여주는 예제이다. EgovSkipSampleFunctionalTests 예제는 ItemReading,ItemProcessing, ItemWriting 에서 발생한 예외상황에 대해 정해진 설정대로 Skip을 수행되는 과정을 보여준다.
동기/비동기 처리 예제
일괄(배치)처리 작업 수행 시, 작업처리가 종료될 때까지 대기하는 동기방식 처리와 작업처리의 종료를 Callback매커니즘을 이용하여 전달받는 비동기처리에 대한 예제를 보여준다.
기존 업무 재사용 예제
기존 업무를 배치의 ItemReader나 ItemWriter로 사용한 예제이다. 스프링 배치에서 제공하는 Item의 Adapter를 사용하면 XML설정만으로도 기존 업무를 손쉽게 사용할 수 있다. 스프링 배치에서 제공하는 Adapter 중에 ItemReaderAdapter와 PropertyExtractingDelegatingItemWriter클래스를 사용하여 기존 업무를 사용하는 기능을 예제로 제공한다.
MultiResource 예제
한 step에서 여러개의 파일을 처리하는 기능을 예제로 제공한다. 스프링 배치에서는 MultiResourceItemReader와 MultiResourceItemWriter를 제공한다.
JdbcPaging 예제
DB를 페이지단위로 읽어서 데이터처리를 수행하는 기능을 예제로 제공한다. 스프링 배치에서는 JdbcPagingItemReader,JpaPagingItemReader등을 제공한다.또한 paging쿼리를 제공하는 인터페이스 PagingQueryProvider를 제공하며 각 DB종류별로 OraclePagingQueryProvider, HsqlPagingQueryProvider, MySqlPagingQueryProvider, SqlServerPagingQueryProvider, SybasePagingQueryProvider 등의 구현클래스를 제공한다.
JdbcCursor 예제
DB를 한 행씩 읽어서 데이터처리를 수행하는 기능을 예제로 제공한다. 스프링 배치에서는 JdbcCursorItemReader, HibernateCursorItemReader를 제공한다.
Ibatis 예제
iBatis를 사용하여 Database의 데이터를 읽고 쓰는 기능에 대한 예제를 제공한다. 스프링 배치에서는 IbatisPagingItemReader와 IbatisBatchItemWriter를 제공한다.
FixedLength 예제
플랫 파일의 데이터를 고정된 길이만큼 처리하는 기능을 예제로 제공한다. 스프링 배치에서는 플랫 파일을 처리하기 위해 FlatFileItemReader와 FlatFileItemWriter를 제공한다.
Delimited 예제
플랫 파일의 데이터를 구분자(delimiter)로 구분하여 처리하는 기능을 예제로 제공한다. 스프링 배치에서는 플랫 파일을 처리하기 위해 FlatFileItemReader와 FlatFileItemWriter를 제공한다.
CompositeItem 예제
서로 다른 유형으로 업무 처리하는 예제로 스프링 배치에서는 CompositeItemProcessor와 CompositeItemWriter를 제공한다. CompositeItemWriter를 사용하여 서로 다른 타입의 writer로 업무를 처리하는 기능을 예제로 제공한다.
재시도(Restart) 예제
Job이 restart 되는 기능을 예제로 제공한다.
배치실행환경 예제 JUnit Test 설명
배치실행환경 예제에서는 JUnit을 이용하여 배치를 수행하고 성공여부 판단 및 테스트 내용 확인을 한다. 초보 사용자의 이해를 돕기위해 예제에서 공통으로 사용하는 JUnitTest의 기본설정과 테스트 수행방법을 설명한다.