본문 바로가기

Java & Spring/SpringBatch

Spring Batch 개요

728x90

I. 배치 핵심 패턴

· Read - 데이터베이스, 파일, 큐에서 다량의 데이터를 조회한다. (추출)

· Process - 특정 방법으로 데이터를 가공한다. (변형)

· Write - 데이터를 수정된 양식으로 다시 저장한다. (적재)

 

@ DB에서 사용하는 ETL 작업과 비슷

E : Extract(추출)

- 여러 출처(데이터베이스, API, 로그 파일 등)에서 데이터를 끌어오는 단계

ex : MySQL, Oracle, CSV 파일, 외부 시스템 등에서 데이터 수집

T : Transform(변환)

- 데이터를 가공, 정체, 변환하는 단계

ex : 불필요한 컬럼 제거, 날짜 형식 통일, 코드값 변환, 집계 처리 등

L : Load(적재)

- 가공한 데이터를 목적지(DB, 데이터 웨어하우스 등)에 저장

ex : 정제된 데이터를 분석용 데이터베이스에 적재

 

II. 배치 시나리오

· 배치 프로세스를 주기적으로 커밋

- 최소한의 자원을 가지고 최대한의 성능을 낼 수 있는 커밋 전략, Spring Batch에서 해당 기능을 제공

 

· 동시 다발적인 Job의 배치 처리, 대용량 병렬 처리

@병렬처리

하나의 스레드가 아닌 멀티 스레드로 데이터를 처리.

 

· 실패 후 수동 또는 스케줄링에 의한 재시작

 

· 의존관계가 있는 step 여러 개를 순차적으로 처리

 

· 조건적 Flow 구성을 통한 체계적이고 유연한 배치 모델 구성

 

· 반복, 재시도, Skip 처리

 

III. Spring Batch 아키텍처

@ Application

· 스프링 배치 프레임워크를 통해 개발자가 만든 모든 배치 Job과 커스텀 코드를 포함.

· 개발자는 업무로직의 구현에만 집중하고 공통적인 기반 기술은 프레임웍이 담당하게 한다.

 

@ Batch Core

· Job을 실행, 모니터링, 관리하는 API로 구성되어 있다.

· JobLauncher, Job, Step, Flow 등이 속한다.

 

@ Batch Infrastructure

· Application, Core 모두 공통 Infrastructure 위에서 빌드한다.

· Job 실행의 흐름과 처리를 위한 틀을 제공한다.

· Reader, Processor Writer, Skip, Retry 등이 속한다.

 

 

 

 

728x90