Spring Batch3 스프링 배치가 제공하는 기본 ItemReader 상속해서 사용하기 🤔 배경 프로젝트 배치 모듈 개발 컨벤션을 정하는 과정에서 처음에 Job 설정 파일에 관련된 모든 Bean(Job, Step, ItemReader, 등)을 넣자고 했을 때 "그러면 Chunk 기반 Step을 구성 중에 ItemReader와 ItemWriter 중 하나는 스프링에서 제공하는 기본적인 클래스를 사용하고, 하나는 기능이 복잡해서 별도로 만든다고 하면 어떻게 하는 게 좋을까?" 라는 질문이 나왔다. 예를 들면, ItemReader는 구현이 단순해서 FlatFileItemReader를 사용하고, Writer는 복잡해서 별도 클래스에 ItemWriter를 구현한다는 의미이다. 해당 질문을 듣고 나는 "ItemReader는 설정 파일에 Bean으로 등록하고, Writer는 별도 클래스로 빼는 게 맞는.. 2023. 9. 10. Spring Batch + Quartz를 활용한 스케줄러 구현하기 Spring 배치 작업을 실행하도록 Quartz를 활용해 스케줄러를 구성하는 방법에 대해 알아본다. 해당 포스팅은 스프링 배치나 Quartz에 대해서 깊게 다루지는 않는다. 스프링 배치를 활용해서 스케줄링을 구현할 때 어떻게 구현하는지 참고 용도로 활용하길 바란다. 0. 개발 환경 - JDK 17 - Spring Boot 3.0.1 - Spring Batch 5 - Quartz 2.3.2 1. Dependency(Maven) spring-boot-starter-batch, spring-boot-starter-quartz 의존성을 추가한다. org.springframework.boot spring-boot-starter-batch org.springframework.boot spring-boot-start.. 2023. 8. 6. [Batch] 스프링 배치 개념, 특징과 용어 정리 ✏️ 배경 처음 고도화를 맡게 된 프로젝트에서는 배치 처리가 @Scheduled를 사용한 단순한 스케줄링이 전부였다. 이러한 단순한 스케줄링에는 여러 가지 문제점이 있었다. 1. 처리 도중 문제가 발생하면 모든 데이터가 롤백되어 처음부터 다시 처리해야 된다. 2. 언제 어디서 어떠한 이유로 에러가 발생했는지 알 수 없어서 로그를 추적하기가 어렵다. 3. 배치가 성공 및 실패 여부를 나중에 알게 되어 즉시 반응하기가 어렵다. 이러한 문제점을 해결하고자 스프링 배치를 도입했고 기존 배치 서비스를 개선할 수 있었다. 스프링 배치 활용하면서 스프링 배치의 유용한 점들을 직접 경험하게 되었고, 다음에 더 잘 활용하기 위해 스프링 배치 기술에 대한 정리 및 학습을 목적으로 Batch 카테고리를 만들게 되었다. 🔎 .. 2023. 4. 22. 이전 1 다음