Spring/Batch

Spring/Batch

[Spring Batch] Step의 예외 제어하기(스킵, 재시도)

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow5. FlowJob의 실행 과정6. 청크 기반 프로세싱의 구조 및 생성7. 청크 기반 프로세싱의 진행 과정8. Flat File, JSON 형식 파일 읽기 및 쓰기9. DB 데이터 읽기 및 쓰기10. Step의 예외 제어하기(스킵, 재시도) 이번 포스팅에서는 `Step`에서 예외가 발생하는 경우 무조건 실패 처리를 하는 것이 아니라, `ExceptionHandler`를 통해 커스텀하게 제어하는 방법에 대해서 살펴볼 것이다.그리고 Spring Batch에서 제공하는 `FaultT..

Spring/Batch

[Spring Batch] Flat File, JSON 형식 파일 읽기 및 쓰기

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow5. FlowJob의 실행 과정6. 청크 기반 프로세싱의 구조 및 생성7. 청크 기반 프로세싱의 진행 과정8. Flat File, JSON 형식 파일 읽기 및 쓰기 (현재 포스팅) 이번 포스팅에서는 파일 기반으로 읽기 및 쓰기 작업을 수행하는 `ItemReader`, `ItemWriter` 구현체들에 대해 알아볼 것이다. Spring Batch에서는 Flat File을 기반으로 읽기를 제공하는 `FlatFileItemReader`, 쓰기를 제공하는 `FlatFileItemWri..

Spring/Batch

[Spring Batch] 청크 기반 프로세싱 진행 과정

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow5. FlowJob의 실행 과정6. 청크 기반 프로세싱의 구조 및 생성7. 청크 기반 프로세싱 진행 과정 (현재 포스팅) 이번 포스팅에서는 청크 기반 프로세싱을 수행하는 `ChunkOrientedTasklet`의 구현을 상세하게 알아볼 것이다. `ChunkOrientedTasklet`은 `Tasklet`의 구현체이기 때문에, `TaskletStep`을 통해 실행되며, `TaskletStep`에 대해 아직 다룬 적이 없기 때문에 어떤식으로 동작하여 `Tasklet`을 실행시키는 ..

Spring/Batch

[Spring Batch] 청크 기반 프로세싱의 구조 및 생성

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow5. FlowJob의 실행 과정6. 청크 기반 프로세싱의 구조 및 생성 (현재 포스팅)  지난 포스팅 까지는 `Job`과 `Step`의 컨텍스트를 중점으로 아키텍처와 기능들을 알아보았는데, 이번에는 작업의 최소 단위인 `Step` 내부의 `Tasklet` 컨텍스트를 중점으로 청크 기반 프로세싱(Chunk-oriented Processing)이 뭔지, 어떤 구조로 되어있는지, 어떻게 생성하는지 알아볼 것이다. 청크 기반 프로세싱 대량의 데이터를 일괄적으로 처리하도록 설계된 배치 ..

Spring/Batch

[Spring Batch] FlowJob의 실행 과정

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow5. FlowJob의 실행 과정(현재 포스팅) 이번 포스팅에서는 `FlowJob`이 어떤 과정으로 실행이 되는지 확인해볼 것이다. 이 과정을 이해하기 위해 상태 전이를 다루는 `State`와 `StateTransition`에 대해서 우선 살펴볼 것이고, `Flow`를 빌드하면 어떻게 `State`와 `StateTransition`이 빌드되는지도 알아볼 것이다. 그리고 `Flow`가 어떤 방식으로 구현이 되어 동작되는 것인지 `SimpleFlow` 구현체를 알아볼 것이고, 이 과..

Spring/Batch

[Spring Batch] Job의 흐름 제어 - Flow

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow (현재 포스팅) 이번 포스팅에서는 `Job`에서 `Step`의 흐름을 제어하는 방법에 대해서 알아볼 것이다. Spring Batch에서는 `Flow`가 이 역할을 수행하며, Flow를 만드는 방법과 Flow를 통해 Job을 실행시키는 방법에 대해서 다룰 것이다. 이번 포스팅에서도 역시 Spring Batch의 소스코드를 직접 봐가면서 내용을 다루는데, 소스코드가 굉장히 많이 함축되어 있음으로 더 자세한 사항은 직접 확인하는 것을 권장한다.흐름 프로그래밍에서 흐름(Flow)이라..

Spring/Batch

[Spring Batch] Job과 Step의 실행 과정

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정 (현재 포스팅)  이번 포스팅에서는 `Job`을 실행하면 어떤 과정으로 실행되는지, `Step`은 또 어떻게 실행되는 건지 한번 알아보자. 이 과정을 통해 1번 포스팅에서 설명했던 도메인 객체들이 어떤 역할을 하는지, 언제 생성이 되는지 확인할 수 있으며, 2번 포스팅에서 다뤘던 `JobBuilder`, `StepBuilder`에서 설정했던 부분들이 어느 시점에 작동하는지 확인할 수 있을 것이다.  직접 Spring Batch의 소스코드를 들여다보며 그 과정을 천천히 설명할 건데, 소스코드 자체가 너무 장황하기..

Spring/Batch

[Spring Batch] Job과 Step의 구조 및 생성

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 기본 도메인 이해2. Job과 Step의 구조 및 생성 (현재 포스팅) 이번에는 Spring Batch에서 제공하는 `Job`과 `Step`의 기본 구현이 어떤 구조로 되어있는지 살펴보고, 이를 생성할 수 있는 각각의 빌더 클래스들(`JobBuilder`, `StepBuilder`)을 살펴볼 것이다. 그리고 `Job`과 `Step`각각의 빌더 클래스에서 설정할 수 있는 공통 속성들과, 공통 속성들을 설정할 수 있는 각 빌더 클래스의 API에 대해서 상세하게 알아볼 것이다. Job의 구조와 생성 `Job` 인터페이스는 위와 같이 기본 구현되어 있다.  `AbstractJob`에서 공통 기..

Spring/Batch

[Spring Batch] Spring Batch 기본 도메인 이해

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 기본 도메인 이해 (현재 포스팅) 배치 애플리케이션 Batch 라는 단어를 영영사전에서 찾아보면 "a set of jobs that are processed together on a computer" 라고 설명한다. 컴퓨터에서 함께 처리되는 일련의 작업이라고 해석할 수 있는데, 말 그대로이다. 회원 멤버십 갱신, 구독 기능 처럼 대량의 데이터를 사용하는 복잡한 비즈니스 로직을 수행하거나, 월간 사용량 모니터링 처럼 통계성 데이터를 집계하는 등 대규모로 데이터를 일괄 처리할 때는 배치 애플리케이션을 구성하여 처리하곤 한다. Spring에서는 이러한 배치 애플리케이션을 설계할 수 있도록 S..

괴발자
'Spring/Batch' 카테고리의 글 목록