전체 글
-
Spring-Batch 09-10 Custom ItemReader/ItemWriter 구현방법 && 스프링배치 플로우 컨트롤 하기Spring-Batch 2024. 12. 10. 16:05
Querydsl은 스프링배치에서 지원해주고 있지 않아 직접 인터페이스를 상속받아 구현해야합니다. QuerydslPagingItemReader- Querydsl 을 활용할 수 있도록 직접 ItemReader 의 구현체로 작성- AbstractPagingItemReader를 이용- JPA 엔티티에 의존하지 않고 추상화된 쿼리 작성 가능- 런타임 시 조건에 따라 동적으로 쿼리를 생성 가능 public class QuerydslPagingItemReader extends AbstractPagingItemReader { private EntityManager em; private final Function> querySupplier; private final Boolean alwaysReadFro..
-
F-lab 세미나 후기 (2)카테고리 없음 2024. 11. 29. 22:19
11월 말 F-lab 세미나의 참석하여 2개의 세미나를 참석하게 되었습니다. 도움되는 말들을 많이 듣게되어 이렇게 후기를 작성하게 됩니다.### 당신의 Roadmap 은 무엇인가요모두에게 도움이 될 수 있는 사람이 되기를 희망합니다.: 이력서에 항상 첫 문구에 목표 : 이루려는 어떤 것을 마음 속으로 정함 또는 이루려는 어떤 것.목표가 있는 사람은 그 자체만으로도 동기부여가 되기때문에 행동을 하게되는데 그것으로 인해서 원하는 목표를 이루게 되고 원하는 것을 이룰 수 있게 되는 형태입니다.과연 내 목표가 개발의 Guru(전문가)가 되는 것일까?개발에 미친듯이 빠져서 하는 사람들은 금요일쯤에 문제가 발생했는데 다음주 쯤에 해결해보자. 하고 주말이 지나고 월요일에 만나서 갑자기 생각해본거를 말해보기 시작하는 ..
-
Spring-Batch 08. 여러 단계에 걸쳐 데이터 변환하기Spring-Batch 2024. 11. 22. 17:28
해당 실습 과정은 ch06, 07의 소스코드를 기반으로 작성합니다.CompositeItemProcessorItemProcessor 인터페이스를 구현하는 클래스로, 여러 개의 ItemProcessor를 하나의 Processor로 연결하여 여러 단계의 처리를 수행할 수 있도록 한다. Delegates : 처리를 수행할 ItemProcessor 목록TransactionAttribute : 트랜잭션 속성 설정 장점- 여러 단계로 나누어 처리를 수행, 코드를 명확하고 쉽게- 각 단계별 Processor 재사용 , 다른 Job 활용 가능- 다양한 ItemProcessor 조합 -> 원하는 처리 과정 구현 가능 단점설정 복잡성 : 여러 개의 Processor를 설정 , 관리 -> 복잡해질 수 있음성능 저하 : 여러 ..
-
Spring-Batch 07. MyBatisPagingItemReader로 DB 내용을 읽고, MyBatisItemWriter DB에 쓰기Spring-Batch 2024. 11. 20. 23:38
MyBatis 는 쿼리를 mapper 파일에 직접 기술하고, 이를 DB Tool를 통해 수행할 수 있는 장점이 있는 도구입니다.MyBatis와 Spring Batch를 같이 사용하는 방법을 알아봅시다. MyBatis 종속성 implementation 'org.mybatis.spring.boot:mybatis-spring-boot-starter:3.0.1' MyBatisJobConfig@Slf4j@Configurationpublic class MybatisJobConfig { public static final int CHUNK_SIZE = 2; public static final String ENCODING = "UTF-8"; public static final String MYBA..
-
Spring-Batch 06. JpaPagingItemReader로 테이블 읽기, JpaItemWriter로 테이블에 데이터 쓰기Spring-Batch 2024. 11. 10. 13:46
JPA 설정 종속성 설정dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-batch' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.batch:spring-batch-test' compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok..
-
[탐구] 추상화 클래스를 상속한 JobStep 클래스에 대해서Spring-Batch 2024. 11. 6. 13:59
JobStep은 JobRepository를 통해서 I/O 레코드와 상태정보를 저장한다.위의 스프링 배치 아키텍처의 설명을 읽다가 JobStep 클래스의 구조가 궁금하여 JobStep코드를 직접 리딩해보는 시간을 가졌습니다.org.springframework.batch:spring-batch-core 파일 내에 step/job 패키지에 존재했습니다. JobStep은 Job Parameter key 값과 Job을 가지고 있고, JobLauncher도 포함되어 있습니다. JobStep은 어떤 역할을 하는 것일까요? JobStep이 상속받아 사용하는 AbstractStep 이라는 추상화 클래스의 기능 구조를 알아보았습니다. JobStep 클래스 자체가 Job 과 Step 간의 역할 분담을 위한 것이라는걸 메..
-
FlatfileReadWrite를 사용하여 경제종합지수 전월대비율 계산하기Spring-Batch 2024. 11. 3. 15:04
KOSIS (통계청) 사이트에 접속하여 경기종합지수 자료를 다운받는다.파일을 csv로 다운받는다.Chunk 방식으로 파일을 읽고, 전월대비 비율을 계산하여, 다시 Flatfile로 저장하자.FlatFileItemReader을 이용하여 해당 파일을 읽는다.파일은 CSV파일다.파일 인코딩은 EUC-KR 이므로 해당 설정을 하여 읽어 들인다.ItemProcess를 구현하고, 전월대비 비율을 구하고, 값을 변경한다.FlatFileItemWriter을 이용하여 전월대비 비율값을 포함한 리포트 문서를 csv파일로 작성한다. https://kosis.kr/statHtml/statHtml.do?orgId=101&tblId=DT_1C8015&vw_cd=MT_ZTITLE&list_id=J1_1&scrId=&seqNo=&..
-
Spring-Batch 05. JdbcPagingItemReader로 DB 내용을 읽고, JdbcBatchItemWriter로 DB에 쓰기Spring-Batch 2024. 11. 3. 13:55
DB에 있는 데이터를 읽어서 csv 파일에 입력하기 위한 JobJdbcPagingReaderJobConfig package org.schooldevops.springbatch.sample.config;import lombok.extern.slf4j.Slf4j;import org.schooldevops.springbatch.sample.domain.Customer;import org.springframework.batch.core.Job;import org.springframework.batch.core.Step;import org.springframework.batch.core.job.builder.JobBuilder;import org.springframework.batch.core.launch.sup..