반응형
1.개요(Spring Batch는 왜 등장했는가)
- 자바 기반의 표준 배치 기술이 존재하지 않기 때문에 등장했다.
- 자바에는 Network, TCP, UDP, Thread 등 개발에 필요한 기본 기술들이 JSP(Java Specification Request)에 명시되어있다.
- 하지만 배치와 관련된 기술은 JSR에 명시되어있지 않고 이것이 Spring Batch의 등장 배경이 되었다.
- 그렇기 때문에 재사용 가능한 자바 기반 배치 아키텍쳐가 필요하게 되었다.
- 그렇기에 Spring Batch가 등장하였다.
- Spring Batch는 SpringSource(현재는 Privotal)와 Accenture(경영 컨설팅기업) 두 기업의 합작품이다.
- Accenture-배치 아키텍쳐를 구현하면서 쌓은 기술적 경험 노하우를 보유한 회사
- SpringSource-깊이 있는 기술적 기반과 스프링의 프로그래밍 모델
- Accenture는 이전에 소유했던 배치 처리 아키텍쳐 프레임워크를 Spring Batch 프로젝트에 기여했다.
- 배치 핵심 패턴
- 배치에는 3가지의 핵심 패턴이 존재한다.
- Read : 데이터베이스, 파일, 큐에서 다양한 데이터를 조회한다.
- Process : 특정 방법으로 데이터를 가공한다
- Write : 데이터를 수정된 양식으로 다시 저장한다.
- Batch의 핵심 패턴은 DB의 ETL 개념과 비슷하다.
💡 Extract(Read), TransForm(Process), Load(Write)를 의미한다
Spring Batch의 동작 시나리오
- Spring Batch는 아래와 같은 동작 시나리오를 가지고 있다.
- 배치 프로세스를 주기적으로 커밋한다
- 동시 다발적인 Job의 배치 처리 및 대용량 병렬 처리
- 실패 후 수동 또는 스케쥴링에 의한 재시작
- 의존관계가 있는 Step 여러 개를 순차적으로 처리한다
- 조건적 Flow 구성을 통한 체계적이고 유연한 배치 모델을 구성한다.
- 반복, 재시도 Skip 처리를 진행한다.
2.Spring Batch아키텍쳐
- Spring Batch는 아래와 같은 3개의 아키텍쳐로 이루어져있다.
Application
- Spring Batch 프레임워크를 통해 개발자가 만든 모든 배치 Job과 커스텀 코드를 포함한다.
- 개발자는 업무로직의 구현에만 집중하고 공통적인 기반기술은 프레임워크가 담당한다.
Batch Core
- Job을 실행, 모니터링, 관리하는 API로 구성되어 있다.
- JobLauncher, Job, Step, Flow등이 속한다.
- 직접 Spring Batch를 추가한 다음 라이브러리를 확인해보자!(Job, Step, Flow 확인!)
Batch Infrastructure
- Application, Core 모두 공통 Infrastructure 위에서 빌드한다.
- Job 실행시 흐름과 처리를 위한 틀을 제공한다.
- Reader, Processor Write, Skip, Retry 등이 속한다.
- 직접 Spring Batch를 추가한 다음 라이브러리를 확인해보자!(Writer, Skip, Retry)
반응형
'Spring Batch' 카테고리의 다른 글
6.Spring Batch의 Flow (1) | 2024.11.07 |
---|---|
5.Spring Batch의 Step (0) | 2024.11.07 |
4.Spring Batch의 Job (0) | 2024.11.06 |
3.Spring Batch 도메인 이해하기 (0) | 2024.11.02 |
2.Spring Batch 시작하기 (0) | 2024.11.02 |