1.Spring Batch 소개
Spring Batch

1.Spring Batch 소개

반응형

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는 아래와 같은 동작 시나리오를 가지고 있다.
    1. 배치 프로세스를 주기적으로 커밋한다
    2. 동시 다발적인 Job의 배치 처리 및 대용량 병렬 처리
    3. 실패 후 수동 또는 스케쥴링에 의한 재시작
    4. 의존관계가 있는 Step 여러 개를 순차적으로 처리한다
    5. 조건적 Flow 구성을 통한 체계적이고 유연한 배치 모델을 구성한다.
    6. 반복, 재시도 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)

REFERENCE.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B0%B0%EC%B9%98

반응형

'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