분류 전체보기

ETC

이벤트 기반 MSA 개선하기(1) - 배경

이번 포스팅을 시작으로 이벤트 기반의 MSA를 개선하는 과정에 대해서 시리즈로 작성하려고 합니다. 이번 포스팅에서는 레거시의 구조 및 문제점과 이를 해결하기 위해 어떻게 MSA로 전환했는지 공유드리며, MSA로 전환했음에도 남아있는 문제점들을 해결하기 위해 이벤트 기반의 MSA로 전환하게 된 과정까지 작성해보겠습니다. MSA 전환 배경 레거시의 구조저희 서비스 백엔드는 톰캣 웹 애플리케이션 서버에 서블릿 애플리케이션을 배포하여, JDBC를 사용해 DB와 통신하는, 전형적인 모놀리식 아키텍처의 레거시 웹 애플리케이션으로 구축되어 있었습니다. 심지어 서비스 레이어도 없었고, 백엔드 서버는 주로 DB에서 데이터를 읽어와 프론트에 전달하는 역할만 수행하여, 대부분의 비즈니스 로직은 클라이언트 또는 AWS Lam..

Spring/Batch

[Spring Batch] 배치 작업 확장하기

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의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기 - 현재 포스팅  서버 개발자라면 스케일 업, 스케일 아웃이라는 용어를 들어봤을 것이다. 방식의 차이가 있지만, 공통적으로 시스템의 처리량과 성능을 향상하기 확장(스케일링) 방법론을 지칭하는 용어들이다. 배치 작업 ..

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의 예외 제어하기(스킵, 재시도) - 현재 포스팅11. 배치 작업 확장하기 이번 포스팅에서는 `Step`에서 예외가 발생하는 경우 무조건 실패 처리를 하는 것이 아니라, `ExceptionHandler`를 통해 커스텀하게 제어하는 방법에 대해서 살펴볼 것이다.그리고 Spri..

Spring/Batch

[Spring Batch] DB 데이터 읽기 및 쓰기

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의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기 이번 포스팅에서는 DB에서 데이터를 가져와 읽고 쓰는 방법에 대해서 알아볼 것이다. Spring Batch에서는 JDBC를 기반으로 DB로부터 아이템을 읽고 쓰는 `JdbcCursorItemReade..

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 형식 파일 읽기 및 쓰기 - 현재 포스팅9. DB 데이터 읽기 및 쓰기10. Step의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기 이번 포스팅에서는 파일 기반으로 읽기 및 쓰기 작업을 수행하는 `ItemReader`, `ItemWriter` 구현체들에 대해 알아볼 것이다. Spring Batch에서는 Flat File을 기반으로..

Spring/Batch

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

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의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기 이번 포스팅에서는 청크 기반 프로세싱을 수행하는 `ChunkOrientedTasklet`의 구현을 상세하게 알아볼 것이다. `ChunkOrientedTasklet`은 `Tasklet`의 구현체이기 때..

Spring/Batch

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

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의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기  지난 포스팅 까지는 `Job`과 `Step`의 컨텍스트를 중점으로 아키텍처와 기능들을 알아보았는데, 이번에는 작업의 최소 단위인 `Step` 내부의 `Tasklet` 컨텍스트를 중점으로 청크 기반 ..

Spring/Batch

[Spring Batch] FlowJob의 실행 과정

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의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기 이번 포스팅에서는 `FlowJob`이 어떤 과정으로 실행이 되는지 확인해볼 것이다. 이 과정을 이해하기 위해 상태 전이를 다루는 `State`와 `StateTransition`에 대해서 우선 살펴볼..

Spring/Batch

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

Spring Batch 시리즈를 포스팅하고 있습니다. 기준이 되는 버전은 5.x 버전입니다.1. Spring Batch 소개2. Job과 Step의 구조 및 생성3. Job과 Step의 실행 과정4. Job의 흐름 제어 - Flow - 현재 포스팅5. FlowJob의 실행 과정6. 청크 기반 프로세싱의 구조 및 생성7. 청크 기반 프로세싱의 진행 과정8. Flat File, JSON 형식 파일 읽기 및 쓰기9. DB 데이터 읽기 및 쓰기10. Step의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기 이번 포스팅에서는 `Job`에서 `Step`의 흐름을 제어하는 방법에 대해서 알아볼 것이다. Spring Batch에서는 `Flow`가 이 역할을 수행하며, Flow를 만드는 방법과 Flow를 통해 ..

Spring/Batch

[Spring Batch] Job과 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의 예외 제어하기(스킵, 재시도)11. 배치 작업 확장하기  이번 포스팅에서는 `Job`을 실행하면 어떤 과정으로 실행되는지, `Step`은 또 어떻게 실행되는 건지 한번 알아보자. 이 과정을 통해 1번 포스팅에서 설명했던 도메인 객체들이 어떤 역할을 하는지..

괴발자
'분류 전체보기' 카테고리의 글 목록