Spring/Spring Batch
[Spring Batch] 배치 도메인 이해
[Spring Batch] 배치 도메인 이해
2024.06.30@SpringBootApplication@EnableBatchProcessing(dataSourceRef = "batchDataSource", transactionManagerRef = "batchTransactionManager")public class SpringBatchMasterApplication { public static void main(String[] args) { SpringApplication.run(SpringBatchMasterApplication.class, args); }} 스프링 배치 애플리케이션을 활성화하려면 @EnableBatchProcessing 애너테이션을 메인 클래스 위에 붙여줘야 한다. 애너테이션은 4개의 설정 클래스를 실행시켜 스프링 배치 초기 설정과 초기화를..
[Spring Batch] ItemReader / ItemWriter
[Spring Batch] ItemReader / ItemWriter
2024.02.27Step에서 데이터를 읽어오는 역할을 담당하는 ItemReader를 구현할 때는 개발자가 직접 ItemReader 인터페이스를 구현해 read 메서드를 구현한 후 Step에 추가할 수도 있고, 스프링 배치가 기본적으로 제공하는 ItemReader를 사용할 수도 있다. @Bean @StepScope public FlatFileItemReader flatFileItemReader( @Value("#{jobParameters['inputFile']}") FileSystemResource fileSystemResource ) { FlatFileItemReader flatFileItemReader = new FlatFileItemReader(); // flatFileItemReader.setResource(new..
[Spring Batch] 스프링 배치 내부 흐름
[Spring Batch] 스프링 배치 내부 흐름
2024.02.25스프링 배치는 대용량 데이터를 효율적으로 처리하기 위해 설계된 프레임워크이다. 1. Chunk 단위로 나눠서 작업 데이터를 일정량의 Chunk 단위로 묶어서 처리한다. 각 Chunk는 여러 Item으로 구성되고 배치 작업은 Item을 하나씩 읽고 처리한 후 모든 Item이 처리되면 결과를 갱신한다. 대량의 데이터를 한 번에 처리할 때 발생할 수 있는 메모리 부하를 줄이고 로직 수행 중 오류가 발생한 경우 유연하게 복구할 수 있다. 2. 예외처리 스프링 배치는 Job을 여러 Step으로 구성하는 방식으로 사용한다. Step은 독립적인 작업 단위로, 특정 Step에서 예외가 발생했을 때 그 Step에 대해서만 예외를 처리할 수 있어 유연하다. 3. 트랜잭션 각 Chunk 처리 과정에서 트랜잭션을 시작하고 처..