Spring8 5. Spring Batch 청크 프로세스 활용 Step3 - ItemReaderAdapter 지금까지 Cursor 기반, Paging 기반 ItemReader에 대해 알아보는 시간을 갖었다. 추가적으로 배치 Job안에서 이미 존재하는 Dao 또는 다른 서비스를 ItemReader안에서 사용하고자 할때 위임 역할을 하는 것이 ItemReaderAdapter이다. 해당 내용은 간단해서 바로 소스 코드 작성하면서 이해해보자. 1) CustomerService 클래스 생성 public class CustomerService { public int cnt = 0; public T customRead() { return (T) ("item" + cnt++); } } 2) ItemReaderAdapterConfiguration 클래스 생성 @Configuration @RequiredArgsConstr.. 2022. 10. 3. 4. Spring Batch 청크 프로세스 활용 Step2 - Paging 기반의 ItemReader 지난 시간에는 Spring Batch 청크 프로세스 활용편으로 Cusor Based / Paging Based의 차이점과 Cursor 기반인 JdbcCursorItemReader와 JpaCursorItemReader에 대해 알아봤습니다. 이번 시간에는 Paging 기반인 JdbcPagingItemReader와 JpaPagingItemReader에 대해 알아보겠습니다. JdbcPagingItemReader Paging 기반의 JDBC 구현체로서 쿼리에 시작 행 번호(offset)와 페이지에서 반환 할 행 수(limit)를 지정해서 SQL을 실행 스프링 배치에서 offset과 limit을 PageSize에 맞게 자동으로 생성해 주며 페이징 단위로 데이터를 조회할 때 마다 새로운 쿼리가 실행 페이지마다 새.. 2022. 10. 3. 3. Spring Batch 청크 프로세스 활용 Step1 - Cursor 기반의 ItemReader 지난 시간에 스프링 배치 청크 프로세스에 대한 전체적인 이해, ChunkOrientedTasklet 객체에 대한 설명, 그리고 ChunkProvider, ChunkProcessor에 대해 알아보는 시간을 갖었다. 이번 시간에는 ChunkProvider가 요청하는 ItemReader에 대해서 알아보자. 우선, ItemReader는 아래와 같이 5개의 구현체가 있습니다. 1) Flat Files - FlatFileItemReader 2) XML - StaxEventItemReader 3) Json - JsonItemReader 4) DB - JDBC ItemReader, JPA ItemReader 인프런 강의에는 전부 설명이 나와있지만, 현재 회사의 경우에는 DB - JDBC ItemReader, J.. 2022. 10. 3. 1. Spring Batch 이해하기 이직한 후에 현업을 하게되면서 전날 모은 데이터(사용자 데이터)를 배치 프로그램을 돌려서 AWS(S3)에 올리는 작업을 진행해야 했는데, Spring Batch를 사용해본 경험이 없기 때문에 다른 개발자님들의 블로그를 보며 정리해보았다. 1. 배치 어플리케이션이란? - 배치는 일괄처리란 뜻을 가지고 있습니다. 제가 현업에서 담당한 것처럼 매일 전날의 데이터를 집계 해야하는 상황에서 이 집계 과정을 어디서 수행하면 될까요? 현재 저는 웹 어플리케이션 밖에 모르기 때문에 Tomcat + Spring MVC를 떠올리게 됩니다. 하지만 이렇게 큰 데이터를 읽고, 가공하고, 저장한다면 해당 서버는 순식간에 자원을 다 써버려서 고객들의 요청을 처리하지 못하게 됩니다. 또한 이 집계 기능은 하루에 1번 수행되기 .. 2022. 10. 3. 이전 1 2 다음