BackEnd
-
24. FaultTolerantBackEnd/Spring Batch 2022. 1. 4. 22:50
Spring Batch는 Job 실행 중에 오류가 발생할 경우 장애를 처리하기 위한 기능을 제공하며 이를 통해 복원력을 향상시킬 수 있습니다. 오류가 발생해도 Step이 즉시 종료되지 않고 Retry 혹은 Skip 기능을 활성화 함으로써 내결함성 서비스가 가능하도록 합니다. FaultTolerant 구조는 청크 기반의 프로세스 기반 위에 Skip과 Retry 기능이 추가되어 재정의 되어 있습니다. Skip: ItemReader / ItemProcessor / ItemWriter에 적용할 수 있습니다. Retry: ItemProcessor / ItemWriter에 적용할 수 있습니다. API package io.springbatch.springbatchlecture; import lombok.Require..
-
23. RepeatBackEnd/Spring Batch 2022. 1. 4. 22:35
Spring Batch는 특정 조건이 충족될 때까지 (또는 특정 조건이 아직 충족되지 않을 때까지) Job 또는 Step을 반복하도록 배치 애플리케이션을 구성할 수 있습니다. Spring Batch에서는 Step의 반복과 Chunk 반복을 RepeatOperation을 사용해서 처리하며, 기본 구현체로 RepeatTemplate를 제공합니다. 반복을 종료할 것인지 여부를 결정하는 세가지 항목 RepeatStatus 스프링 배치의 처리가 끝났는지 판별하기 위한 열거형(enum) CONTINUABLE: 작업이 남아 있음, FINISHED: 더 이상의 반복 없음 CompletionPolicy RepeatTemplate의 iterate 메소드 안에서 반복을 중단할지 결정 실행 횟수 또는 완료시기, 오류 발생 시..
-
22. ItemProcessorBackEnd/Spring Batch 2022. 1. 4. 21:25
CompositeItemProcessor ItemProcessor들을 연결(Chaining)해서 위임하면 각 ItemProcessor를 실행시킵니다. 이전 ItemProcessor 반환 값은 다음 ItemProcessor 값으로 연결됩니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.an..
-
21. ItemWriterAdapterBackEnd/Spring Batch 2021. 12. 31. 18:45
배치 Job 안에서 이미 존재하는 DAO나 다른 서비스를 ItemWriter 안에서 사용하고자 할 때 위임 역할을 합니다. setTargetObject에 존재하는 서비스를 setTargetMethod에 호출하려는 메서드명을 적용합니다. package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotatio..
-
20. ItemWriter (DB)BackEnd/Spring Batch 2021. 12. 31. 18:30
JdbcBatchItemWriter JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고, sql 속성에 실행할 쿼리를 설정합니다. JDBC의 Batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리합니다. 단건 처리가 아닌 일괄처리이기 때문에 성능에 이점을 가집니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; imp..
-
19. ItemWriter (Json)BackEnd/Spring Batch 2021. 12. 31. 17:55
JsonFileItemWriter 객체를 받아 JSON String으로 변환하는 역할을 합니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactory; import org.springframework.batch.core.launch.support..
-
18. ItemWriter (XML)BackEnd/Spring Batch 2021. 12. 31. 17:30
StaxEventItemWriter XML 쓰는 과정은 읽기 과정에 대칭적입니다. StaxEventItemWriter는 Resource, marshaller, rootTagName가 필요합니다. API package io.springbatch.springbatchlecture; import lombok.RequiredArgsConstructor; import org.springframework.batch.core.*; import org.springframework.batch.core.configuration.annotation.JobBuilderFactory; import org.springframework.batch.core.configuration.annotation.StepBuilderFactor..
-
17. ItemWriter (File)BackEnd/Spring Batch 2021. 12. 31. 17:00
FlatFileItemWriter 2차원 데이터(표)로 표현된 유형의 파일을 처리하는 ItemWriter입니다. 고정 위치로 정의된 데이터 필드나 특수 문자에 의해 구별된 데이터의 행을 기록합니다. Resource와 LineAggregator 두 가지 요소가 필요합니다. LineAggregator Item을 받아서 String으로 변환하여 리턴합니다. FieldExtractor를 사용해서 처리할 수 있으며, 구현체로는 PassThroughLineAggregator, DelimitedLineAggregator, FormatterLineAggregator가 있습니다. FieldExtractor 전달 받은 Item 객체의 필드를 배열로 만들고 배열을 합쳐서 문자열을 만들도록 구현하도록 제공하는 인터페이스입니다..