Spring Batch란 무엇인가?

Monday·2024년 6월 4일
post-thumbnail

배치 처리 (Batch Processing)

Spring Batch를 알아보기에 앞서 Batch Processing이란 과연 무엇일까?

배치 처리란?

배치처리는 컴퓨터가 주기적으로 대량의 반복적인 데이터 작업을 완료하기 위해 사용하는 방식이다.

배치 어플리케이션은 일괄적으로 자동으로 호출되는 작업(Job)에서
소프트웨어 프로그램을 실행하는 방법이다.

배치 처리를 사용하는 이유

사람의 개입을 최소화하고 반복 테스크를 보다 효율적으로 실행할 수 있기 때문에 배치 처리를 사용한다.

배치 처리의 특징

  • 사용자와의 상호작용이 없음
  • 반복적이고 주기적인 처리
  • 대량의 데이터
  • 복잡한 처리

Spring Batch

Spring Batch란?

Spring Batch는 이러한 특성을 가지는 배치 처리를 할 수 있는 배치 애플리케이션 개발을 가능하게 하기 위해 설계된 경량의 배치 프레임워크다.

Spring Framework의 특성(생산성, POJO 기반 개발 접근 방식, 사용 편의성)을 기반으로 구축되었으며 개발자가 필요할때 더 고급 엔터프라이즈 서비스를 사용할 수 있다.

Spring Bath가 제공하는 기능

  • 로깅 및 추적
  • 트랜잭션 관리
  • 작업 처리 통계
  • 작업 재시작
  • 건너뛰기 및 리소스 관리

기술 목표

  • Spring programming model을 사용하여 프레임워크가 인프라리를 관리하게 하여 개발자는 비즈니스 로직에만 집중을 할 수 있게 한다
  • 인프라, 배치 실행 환경, 배치 애플리케이션 간의 명확한 관심사 분리를 제공한다
  • 어떤 프로젝트에서도 사용될 수 있는 공통의 핵심적인 서비스를 인터페이스로 제공한다
  • 바로 사용가능한 간단하고 기본적인 인터페이스 구현을 제공한다
  • 모든 레이어에서 Spring Framework를 사용해여 서비스 구성, 맞춤화 및 확장하는 것을 쉽게 만든다
  • 인프라 레이어에 영향을 주지않고 기존의 서비스를 교체, 확장이 가능해야 한다
  • Maven을 사용하여 애플리케이션과 완전히 분리된 아키텍처 JAR로 간단한 배포 모델을 제공한다

정리

서비스를 개발하다보면 주기적으로 대용량의 데이터를 처리해야 하는 일이 생긴다.
이부분은 향로님께서 블로그에 너무 잘 설명해 주셨다.

이러한 작업은 주기적으로 처리해야 하기에 사람의 손을 거치지 않고
자동적으로 처리할 수 있다면 매우 좋을 것이다.

그렇기에 배치 작업이라는 방법을 사용하게 된다.

이러한 배치 작업을 할 수 있는 배치 애플리케이션을 손쉽게 만들 수 있도록
Spring 진영에서는 Spring Batch라는 프레임워크를 제공한다.

배치 처리를 하기 위해 다양한 기능을 구현해야 할 것이다.
단순히 로깅부터 실패한 작업을 다시 시도하는 등 많은 기능들이 필요할 것 이다.
이러한 작업을 손 쉽게 할 수 있도록 Spring Batch는 다양한 인터페이스를 제공한다.
그렇기에 개발자는 배치로 수행될 비즈니스 로직에만 집중을 할 수 있게 될 것이다.


참고 자료
What is Batch Processing
What is Batch Processing?
Spring Batch Documentation
Spring Batch 가이드

profile
차근차근 꾸준히

0개의 댓글