Spring Batch 시작하기

박병찬·2021년 9월 29일
0

spring batch

목록 보기
1/2
post-custom-banner

📌Spring Batch란?

배치(Batch)는 일괄처리란 뜻
단발성으로 대용량의 데이터를 처리하는 어플리케이션을 배치 어플리케이션이라고 한다.

Spring Batch는 Spring의 특성을 그대로 가져왔기 때문에
DI, AOP, 서비스 추상화 등 Spring 프레임워크의 3대 요소를 모두 사용할 수 있다.

🔥 장점

  • 대용량 데이터 처리에 최적화되어 고성능을 발휘한다.
  • 효과적인 로깅, 통계 처리, 트랜잭션 관리 등 재사용 가능한 필수 기능을 지원한다.
  • 수동으로 처리하지 않도록 자동화돼있다.
  • 예외사항과 비정상 동작에 대한 방어 기능이 있다.
  • 스프링 부트 배치는 반복적인 작업 프로세스를 이해하면 비니지스로직에 집중할 수 있다.

🔧 구조


검정색: 외부 어플리케이션(스케쥴러, DB 등)
파란색: 어플리케이션 서비스
연두색: 개발자가 구성해야 하는 것

Run Tier

  • 어플리케이션의 예약 및 시작과 관련이 있는 계층.
  • 배치 작업의 시간 기반 및 상호 의존적인 스케줄링을 제공할뿐만 아니라 병렬 처리 기능을 제공.

Job Tier

  • 배치 작업의 전체 실행을 담당.
  • 배치 단계를 순차적으로 실행하여 모든 단계가 올바른 상태에 있고 모든 적절한 정책이 시행 되도록하는 역할.

Application Tier

  • 프로그램을 실행하는 데 필요한 구성 요소가 포함됨.
  • 이 계층에는 요구된 배치의 기능을 처리하고 Tasklet 실행에 대한 정책을 시행하는 특별한 Tasklet이 포함됨.

Data Tier

  • 데이터베이스, 파일 또는 대기열을 포함 할 수있는 물리적 데이터 소스와의 연결을 제공.

🔧 spring batch 모듈


스프링 배치는 layer 구조로 조립된 세 개의 tier로 이뤄져 있다.

Core 모듈

  • batch job을 실행, 모니터링, 관리하는 API로 구성됨.
  • Job,Step, JobLaucher 등의 클래스가 여기에 소속된다.

Infrastructure 모듈

  • 스프링배치 프레임웍의 실행 흐름의 틀이 되는 코드를 제공.
  • ItemReader, ItemWriter 등의 클래스가 이에 속한다.

Application

  • 최종개발자가 설정으로 Core 모듈의 클래스를 사용하고, Infrastructure 모듈의 인터페이스를 구현해서 개발하게 된다.
  • Core와 Infrastructure 모듈은 Spring framework core에 의존적이고, Core는 Infrastructure에 의존적이다.

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

profile
안녕하세요
post-custom-banner

0개의 댓글