1. 스프링 배치 소개

2025. 7. 1. 20:53·Spring/Spring Batch

1. 개요


1. 스프링 배치 탄생 배경

  • 자바 기반 표준 배치 기술 부재
    • 배치 처리에서 요구하는 재사용 가능한 자바 기반 배치 아키텍처 표준의 필요성이 대두
      • 자바에는 IO, Network, Tread, JDBC 와 같은 표준 기술들이 존재. 표준으로 정의되어 있다는 것은 JSR(Java Specification Request) 에 정의되어 있다는 것을 의미한다.
      • 하지만 일괄 처리를 위한 배치와 관련된 기술적인 표준이 없었음. 
  • 스프링 배치는 SpringSource(현재는 Pivotal)와 Accenture(경영 컨설팅 기업) 의 합작품
    • Accenture - 배치 아키텍처를 구현하면서 쌓은 기술적인 경험과 노하우
    • SpringSource - 깊이 있는 기술적 기반과 스프링의 프로그래밍 모델
  • Accenture는 이전에 소유했던 배치 처리 아키텍처 프레임워크를 Spring Batch 프로젝트에 기증함

https://docs.spring.io/spring-batch/docs/4.3.x/reference/html/spring-batch-intro.html#spring-batch-intro

 

 

2. 배치 핵심 패턴

  • Read - 데이터베이스, 파일, 큐에서 다량의 데이터 조회한다.
  • Process - 특정 방법으로 데이터를 가공한다.
  • Write - 데이터를 수정된 양식으로 다시 저장한다.

 

3. 배치 시나리오

  • 배치 프로세스를 주기적으로 커밋
  • 동시 다발적인 Job 의 배치 처리, 대용량 병렬 처리
  • 실패 후 수동 또는 스케줄링에 의한 재시작
  • 의존관계가 있는 step 여러 개를 순차적으로 처리
  • 조건적 Flow 구성을 통한 체계적이고 유연한 배치 모델 구성
  • 반복, 재시도, Skip 처리

 

 

2. 아키텍처


https://docs.spring.io/spring-batch/docs/4.3.x/reference/html/images/spring-batch-layers.png

Application

  • 스프링 배치 프레임워크를 통해 개발자가 만든 모든 배치 Job 과 커스텀 코드를 포함
  • 개발자는 업무로직의 구현에만 집중하고 공통적인 기반기술은 프레임워크가 담당하게 한다

Batch Core

  • Job을 실행, 모니터링, 관리하는 API로 구성되어 있다
  • JobLauncher, Job, Step, Flow 등이 속한다

Batch Infrastructure

  • Application, Core 모두 공통 Infrastructure 위에서 빌드한다
  • Job 실행의 흐름과 처리를 위한 틀을 제공함
  • Reader, Processor Writer, Skip, Retry 등이 속한다
'Spring/Spring Batch' 카테고리의 다른 글
  • 2. 스프링 배치 시작
s_y_130
s_y_130
  • s_y_130
    About SY
    s_y_130
  • 전체
    오늘
    어제
    • 분류 전체보기 (436) N
      • JAVA (54)
        • 더 자바 8 (0)
        • JAVA (41)
        • JAVA (JVM) (13)
      • Computer Science (86)
        • CS Basic (7)
        • OOP (11)
        • Design Pattern (16)
        • Network (8)
        • HTTP (6)
        • WEB (22)
        • OS (16)
      • DataBase (29)
        • DB theory (15)
        • MySQL (14)
        • Redis (0)
      • Collection Framework (1)
        • 구현 (1)
      • Data Structure (14)
        • Linear (9)
        • Non-Linear (5)
      • Algorithm (19)
        • Basic (12)
        • 응용 (2)
        • 완전 탐색(Brute Force) (1)
        • 다익스트라 (1)
        • Algorithm Problem (3)
      • Spring (104)
        • 스프링 핵심 원리 - 기본편 (9)
        • 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 (7)
        • 스프링 MVC 2편 - 백엔드 웹 개발 핵심 기술 (11)
        • 스프링 DB 1편 - 데이터 접근 핵심 원리 (6)
        • 스프링 DB 2편 - 데이터 접근 활용 기술 (10)
        • 스프링 핵심 원리 - 고급편 (13)
        • 스프링 부트 - 핵심 원리와 활용 (9)
        • Spring Security 6.x (2)
        • Spring Batch (2)
        • Spring Cloud로 개발하는 MSA (1)
        • 재고시스템으로 알아보는 동시성이슈 해결방법 (4)
        • 개념 (27)
        • 테스트 (0)
        • Annotation (1)
        • Error Log (2)
      • TEST (0)
        • 부하 테스트 (0)
        • Practical Testing: 실용적인 테스트.. (0)
      • JPA (40)
        • 자바 ORM 표준 JPA 프로그래밍 (12)
        • 1편- 실전! 스프링 부트와 JPA 활용 (7)
        • 2편- 실전! 스프링 부트와 JPA 활용 (4)
        • 실전! 스프링 데이터 JPA (6)
        • 실전! Querydsl (6)
        • 개념 (5)
      • 백엔드 부트캠프[사전캠프] (35)
        • TIL (12)
        • 문제풀이 (23)
      • 백엔드 부트캠프 (5) N
        • Calculator (3)
        • Kiosk (2) N
      • Open Source (0)
      • Book Study (1)
        • Morden Java in Action (1)
        • Real MySQL 8.0 Vol.1 (0)
        • TDD : By Example (0)
      • AWS (0)
        • EC2 (0)
      • git (2)
      • AI (22)
        • Machine Learning (17)
        • Deep Learning (0)
        • TensorFlow (1)
        • PyTorch (1)
        • YOLO (1)
        • Data Analysis (0)
        • Ai code Error (1)
        • Numpy (1)
      • MY (0)
      • WEB (15)
        • Django (3)
        • WEB 개념 (1)
        • React (1)
        • Maven (10)
      • Python (6)
      • 기초수학 (3)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
s_y_130
1. 스프링 배치 소개
상단으로

티스토리툴바