-
7. MyBatisPagingItemReader로 DB내용을 읽고, MyBatisItemWriter로 DB에 쓰기Spring 2024. 11. 18. 19:51
MyBatis는 자바 기반의 SQL Mapper로, 애플리케이션에서 데이터베이스와 상호작용하기 위한 도구입니다. 주로 SQL 문을 직접 작성하고 이를 자바 코드와 연결하는 데 사용됩니다. 1. MyBatisItemReader MyBatisPagingItemReader Spring Mybatis에서 제공하는 ItemReader 인터페이스를 구현하는 클래스이다.MyBatis의 Object Relation Mapper를 이용하며 다음과 같은 특징을 가지고 있다.장점:간편한 설정: MyBatis 쿼리 매퍼를 직접 활용하여 데이터를 읽을 수 있어 설정이 간편하다.쿼리 최적화: MyBatis의 다양한 기능을 활용하여 최적화된 쿼리를 작성할 수 있다.동적 쿼리 지원: 런타임 시 조건에 따라 동적으로 쿼리를 생성할 수..
-
5. JdbcPagingItemReader로 DB내용을 읽고, JdbcBatchItemWriter로 DB에 쓰기Spring 2024. 11. 5. 17:38
이전에는 csv 파일을 읽고 쓰는 것에 배웠습니다. 이번에는 DB에서 데이터를 읽고 CSV 파일로 쓰거나 CSV 파일을 읽고 DB에 저장하는 방법에 대해 알아보자. 1. JdbcPagingItemReaderJdbcPagingItemReader는 Spring Batch에서 제공하는 ItemReader로, 데이터베이스로부터 데이터를 페이지 단위로 읽는다.대규모 데이터 처리 효율성: 메모리 사용량을 최소화하고 커밋 간격을 설정하여 대규모 데이터를 효율적으로 처리할 수 있다.쿼리 최적화: SQL 쿼리를 직접 작성하여 최적화된 데이터 읽기가 가능하다.커서 제어: 데이터베이스 커서를 사용하여 데이터 순회를 제어할 수 있다.2. 쿼리 Provider 생성하기@Beanpublic PagingQueryProvider q..
-
4. FlatFileItemReader로 단순 파일 읽고, FlatFileItemWriter로 파일에 쓰기Spring 2024. 11. 4. 17:49
CSV 파일을 읽고 내용을 집계하여 CSV 파일로 쓰도록 FlatFileItemReader와 FlatFileItemWriter에 대해 알아보자 1.FlatFileItemReaderFlatFileItemReader는 Spring Batch에서 제공하는 기본적인 ItemReader로, 텍스트 파일로부터 데이터를 읽습니다.고정 길이, 구분자 기반, 멀티라인 등 다양한 형식의 텍스트 파일을 지원하며, 다음과 같은 장점을 가집니다.간단하고 효율적인 구현: 설정 및 사용이 간편하며, 대규모 데이터 처리에도 효율적입니다.다양한 텍스트 파일 형식 지원: 고정 길이, 구분자 기반, 멀티라인 등 다양한 형식의 텍스트 파일을 읽을 수 있습니다.확장 가능성: 토크나이저, 필터 등을 통해 기능을 확장할 수 있습니다.사용처: 고..
-
3.SpringBatch ChunkModel과 TaskletModelSpring 2024. 10. 21. 01:36
SpringBatch에서 데이터 처리 단위인 ChuckModel과 TaskletModel의 차이점에 대해 알아보고자 한다. 1. Chunk ModelChunk Model은 처리할 데이터를 일정단위(청크) 로 처리하는 방식이다ChunkOrientedTaskLet은 Spring Batch에서 제공하는 TaskLet 인터페이스의 구현체Chunk size 만큼 ItemReader, ItemProcessor, ItemWrite 처리하며, commit-interval이라는 설정값을 이용하여 조정이 가능Chunk는 최대 Size만큼의 크기를 가진다. 예를 들어 20개의 소스를 처리해야하고, Chunk Size가 2인 경우 Chunk는 2개씩 처리되기 때문에 총 10번의 반복이 필요하다. 즉 10번의 트랜잭션을 탄다..
-
2.SpringBatch 코드 설명 및 아키텍처 알아보기Spring 2024. 10. 20. 22:27
앞선 과정에서 SpringBatch 프로젝트를 구성 및 실행을 해보았습니다.이번에는 Job, step에 대해 알아보고 SpringBatch 아키텍처에 대해 학습해보도록 하겠습니다.1.Spring Batch 아키텍처JobSpring Batch에서 일괄 적용을 위한 일련의 프로세스를 요약하는 단일 실행 단위가 된다. StepJob을 구성하는 처리단위이다.하나의 Job에는 여러 Step이 들어갈 수 있다. 1: N 구조로 되어있다.하나의 Job에 여러 Step을 재사용, 병렬화, 조건분기 등을 수행할 수 있다.Step은 tasklet 모델 / chunk 모델의 구현체가 탑재되어 실행된다.JobLauncherJob을 수행하기 위한 인터페이스이다.JobLauncher는 사용자에 의해서 직접 수행된다.자바 커맨드를..
-
1.SpringBatch 빠르게 시작하기Spring 2024. 10. 20. 17:49
페이스북에서 SpringBatch 스터디 모집한다는 글을 보았고, 신청해서 참여하게 되었습니다.스터디 진행 방식은 Devocean 블로그 pringBatch 연재 시리즈를 보고 실습을 통해, SpringBatch의 기초를 학습하고 서로 논의를 하며공부하는 스터디입니다. 앞으로 스터디가 진행되는 동안 공부한 내용을 정리하고자 합니다.틀리거나 보충 할 내용이 있다면 댓글 부탁드립니다.참고 : [SpringBatch 연재 01] SpringBatch 빠르게 시작하기1. SpringBatch 프로젝트 구성인텔리제이를 통해 프로젝트 이름 및 JDK 17로 프로젝트 생성 후 build.gradle에 필요한 의존성을 설정합니다.plugins { id 'java' id 'org.springframework..
-
인프라 공방 8기를 마치며교육 2022. 10. 18. 21:05
평소 인프라에 대해 학습하고자 하는 욕구 및 갈증이 있던 참에 NEXTSTEP에서 인프라공방8기를 모집 중인 걸 발견하였다. 마침 구직 중이기도 했고, 인프라에 대해 제대로 피드백을 받으며 학습해야겠다고 생각이 들어 비싼 비용(70만 원)이 듦에도 결제했다. 교육 기간은 2022-09-18부터 ~ 2022-10-16까지 동안 약 한 달여간 진행되는 강의였다. 이전에도 들었었던 TDD 교육에 비해 짧았지만, 오히려 공부해야 될 내용은 많게 느껴졌다. 배운 내용(미션 완료) 네트워크 aws vpc 구성(망분리) 배포(배포 스크립트) 응답 개선 부하 테스트 쿼리 최적화 인덱스 설계 미션 수행하지 못한 목록 (aws를 이용한)스케일 아웃 모니터링 쿠버네티스 구성하기 클러스터 운영하기 일하며 배우지 못했던 망 분..