spring(44)
-
[퍼옴] 7. Spring Batch 가이드 - ItemReader
앞의 과정들을 통해 Spring Batch가 Chunk 지향 처리를 하고 있으며 이를 Job과 Step으로 구성되어 있음을 배웠습니다. Step은 Tasklet 단위로 처리되고, Tasklet 중에서ChunkOrientedTasklet을 통해 Chunk를 처리하며 이를 구성하는 3 요소로 ItemReader, ItemWriter, ItemProcessor가 있음을 배웠습니다. 즉, ItemReader & ItemWriter & ItemProcessor의 묶음 역시 Tasklet이란 이야기입니다. 이들의 묶음을 ChunkOrientedTasklet에서 관리하기 때문이죠. 이번 시간부터 이 3 요소를 차근차근 배워보겠습니다. 7-1. ItemReader 소개 Spring Batch의 Chunk Tasklet..
2021.04.06 -
[퍼옴] 6. Spring Batch 가이드 - Chunk 지향처리
Spring Batch의 큰 장점 중 하나로 Chunk 지향 처리를 얘기합니다. 이번 시간에는 Chunk 지향 처리가 무엇인지 한번 살펴보겠습니다. 6-1. Chunk? Spring Batch에서의 Chunk란 데이터 덩어리로 작업 할 때각 커밋 사이에 처리되는 row 수를 얘기합니다. 즉, Chunk 지향 처리란한 번에 하나씩 데이터를 읽어 Chunk라는 덩어리를 만든 뒤, Chunk 단위로 트랜잭션을 다루는 것을 의미합니다. 여기서 트랜잭션이라는게 중요한데요. Chunk 단위로 트랜잭션을 수행하기 때문에실패할 경우엔 해당 Chunk 만큼만 롤백이 되고, 이전에 커밋된 트랜잭션 범위까지는 반영이 된다는 것입니다. Chunk 지향 처리가 결국 Chunk 단위로 데이터를 처리한다는 의미이기 때문에 그림으로..
2021.04.06 -
[퍼옴] 5. spring batch 가이드 - spring batch scope & Job Parameter
이번 시간에는 Spring Batch의 Scope에 대해서 배워보겠습니다. 여기서 말하는 Scope란@StepScope,@JobScope를 얘기합니다. 무의식적으로 사용하는 이 어노테이션들이 실제로 어떤 일들을 하는지 알아보겠습니다. 그리고 이 둘과 떨어질 수 없는Job Parameter도 함께 배워보겠습니다. 5-1. JobParameter와 Scope Spring Batch의 경우 외부 혹은 내부에서 파라미터를 받아 여러 Batch 컴포넌트에서 사용할 수 있게 지원하고 있습니다. 이 파라미터를Job Parameter라고 합니다. Job Parameter를 사용하기 위해선 항상 Spring Batch 전용 Scope를 선언해야만 하는데요. 크게@StepScope와@JobScope2가지가 있습니다. 사용..
2021.04.06 -
[퍼옴] 4. Spring Batch 가이드 - Spring Batch Job Flow
자 이번 시간부터 본격적으로 실전에서 사용할 수 있는 Spring Batch 내용들을 배워보겠습니다. 작업한 모든 코드는Github에 있으니 참고하시면 됩니다. 앞서 Spring Batch의 Job을 구성하는데는 Step이 있다고 말씀드렸습니다. Step은실제 Batch 작업을 수행하는 역할을 합니다. 이전에 작성한 코드를 보시면 Job은 코드가 거의 없죠? 실제로 Batch 비지니스 로직을 처리하는 (ex: log.info()) 기능은 Step에 구현되어 있습니다. 이처럼 Step에서는Batch로 실제 처리하고자 하는 기능과 설정을 모두 포함하는 장소라고 생각하시면 됩니다. Batch 처리 내용을 담다보니, Job 내부의Step들간에 순서 혹은 처리 흐름을 제어할 필요가 있는데요. 이번엔 여러 Step..
2021.04.06 -
[퍼옴] 3. Spring Batch 가이드 - 메타 테이블 엿보기
이번 시간에는 Spring Batch의 메타 테이블에 대해 좀 더 자세히 살펴보겠습니다. 작업한 모든 코드는 Github에 있으니 참고하시면 됩니다. 지난 시간에 Spring Batch의 메타 테이블을 살짝 보여드렸는데요. batchdomain 이 메타 테이블들의 역할이 무엇인지, 어떤 것들을 담고 있는지 실습을 통해 하나씩 소개드리겠습니다. 3-1. BATCH_JOB_INSTANCE 먼저 볼 것은 BATCH_JOB_INSTANCE 입니다. 로컬 MySQL에서 조회를 해보면 아래와 같이 1개의 ROW가 검색이 됩니다. JOB_INSTANCE_ID BATCH_JOB_INSTANCE테이블의 PK JOB_NAME 수행한 Batch Job Name 방금 실행했던 simpleJob이 있는 것을 볼 수 있습니다. ..
2021.04.06 -
[퍼옴] 2. Spring Batch 가이드 - 배치Job 실행해보기
이번 시간에는 간단한 Spring Batch Job을 생성 & 실행하면서 전반적인 내용을 공부해보겠습니다. 작업한 모든 코드는Github에 있으니 참고하시면 됩니다. 2-1. Spring Batch 프로젝트 생성하기 기본적인 프로젝트 개발 환경은 다음과 같습니다. IntelliJ IDEA 2018.2 Spring Boot 2.0.4 Java 8 Gradle lombok 기능을 많이 사용합니다. lombok 플러그인을 본인의 IDE에 맞게 설치하시면 좋습니다 :) Intellij IDEA,Eclipse 이를 기반으로 프로젝트 생성을 시작하겠습니다. 저는 IntelliJ Ultimate (유료) 버전에서 실행하지만, Eclipse도 화면 구성이 크게 다르진 않을것 같습니다. 먼저 Spring Boot 프로젝..
2021.04.06