(번역) Spring Batch Introduction

급식·2025년 2월 13일
0

Spring

목록 보기
3/3
post-thumbnail

원문 : https://docs.spring.io/spring-batch/reference/spring-batch-intro.html

엔터프라이즈 도메인의 많은 애플리케이션의 경우 미션 크리티컬한 환경에서 비즈니스 운영을 수행하기 위한 대량의 처리를 필요로 한다.(미션 크리티컬 : 업무 수행을 위하여 필수 불가결한 요소) 이러한 비즈니스 운영 요소로는 다음과 같은 것들이 있다.

  • 사용자의 상호작용 없이 가장 효율적으로 처리되어야 하는 대용량의 정보를 자동으로, 복잡하게 처리해야 하는 경우. 이러한 작업의 경우 보통 시간에 기반한 이벤트들이 주가 되는데, 월말 정산, 알림, 정합성 처리 등이 있다.
  • 보험금 결정, 보험율 조정 등 다양한 데이터 셋에 걸쳐 반복적으로 복잡한 비즈니스 규칙을 적용해야 하는 주기적인 애플리케이션
  • 내부/외부 시스템으로부터 받은 데이터를 통합하는 포맷팅, 검증, 트랜잭션 단위의 시스템 레코드 처리 등의 작업. 배치 프로세싱은 엔터프라이즈 애플리케이션에서 매일 수십억 건의 작업을 수행하는 데 사용됩니다.

스프링 배치는 경량의, 포괄적인 배치 프레임워크로써 엔터프라이즈 시스템에서 매일 수행해야 하는 중요한 다량의 배치 작업을 개발하기 위해 설계되었습니다. 스프링 배치는 사람들이 기대하는 스프링 프레임워크의 특성(생산성, POJO 기반 개발 접근 방식 및 일반적인 사용 편의성)을 기반으로 하며, 개발자가 필요할 때 더 발전된 엔터프라이즈 서비스에 쉽게 접근하여 사용할 수 있도록 합니다. 스프링 배치는 스케줄링 프레임워크가 아닙니다. 상업용, 오픈 소스에 걸쳐 Quartz, Tivoli, Control-M과 같은 우수한 엔터프라이즈급 스케줄러가 많습니다. 스프링 배치는 스케줄러를 대체하려고 하기 보단, 스케줄러와 함께 잘 작동하도록 만들어졌습니다.

스프링 배치는 로깅, 추적, 트랜잭션 관리, 작업 통계, 작업 재시작, 생략, 자원 관리 등을 포함한 대용량의 기록을 처리하는 데 반드시 필요한 재사용 가능 함수들을 제공합니다. 또한 최적화와 파티셔닝 기술을 통해 대용량, 고성능 배치 작업들을 가능케하는 기술적인 서비스와 기능들을 제공합니다. 스프링 배치는 데이터베이스에서 파일을 읽거나, 저장된 프로시저를 실행하는 등의 간단한 사례부터 대용량의 데이터를 데이터베이스 사이에 옮기거나, 변환하는 등의 복잡하고 방대한 작업까지 모두 수행할 수 있습니다. 이 프레임워크를 사용함으로써 방대한 양의 정보를 확장성이 높은 방식으로 고용량의 배치 작업을 수행할 수 있을 것입니다.

배경

오픈 소스 소프트웨어 프로젝트와 관련 커뮤니티는 웹 기반, 마이크로 서비스 기반 아키텍처 프레임워크에 큰 관심을 가져왔으며 이들에는 엔터프라이즈 IT 환경에서 데이터를 처리해야 할 필요가 계속해서 있었음에도 자바 기반 배치 프로세싱을 가능케 하는 재사용 가능한 아키텍처 프레임워크에 대한 관심이 낮았습니다. 표준화된, 재사용 가능한 배치 아키텍처의 부재로 인해 클라이언트 엔터프라이즈 IT 기능 내에서 개발된 많은 일회성 사내 솔루션이 개발되었습니다.

SpringSource(지금은 VMware)와 Accenture는 이를 해결하고자 했습니다. 배치 아키텍처의 구현에 대한 Accenture의 실무 산업 및 기술 경험, SpringSource의 깊이 있는 기술 경험, Spring의 입증된 프로그래밍 모델은 함께 앞서 언급한 자바 진영의 부족함을 해결하기 위한 고품질의 엔터프라이즈 소프트웨어를 만들기 위해 함께 노력했습니다. 두 회사 모두 스프링 기반의 배치 아키텍처 솔루션을 개발함으로써 비슷한 문제를 해결하고자 하는 수많은 클라이언트와 협업했습니다. 이러한 노력은 솔루션이 클라이언트들이 겪고 있던 현실 세계의 문제에 적용될 수 있다는 확신을 얻을 수 있게 만들어준 추가적인 디테일과 현실 세계의 제약에 대한 통찰을 얻게 해주었습니다.

Accenture는 지원, 개선, 기존 기능들을 추진하기 위한 자원과 함께 스프링 배치 프로젝트에 이전에 사용하던 배치 처리 아키텍처 프레임워크를 제공했습니다. Accenture의 기여는 메인프레임워 코볼, 유닉스의 C++, 어디서든 사용할 수 있는 자바 등 지난 몇 세대의 걸친 플랫폼에서 배치 아키텍처를 만들고자 노력한 경험에 기반한 것이었습니다.

Accenture와 SpringSource의 협업 방향은 소프트웨어 프로세싱의 접근, 프레임워크, 엔터프라이즈 유저가 배치 애플리케이션을 만들 때 계속해서 사용할 수 있는 도구를 만드는 데 집중했습니다. 그 결과 엔터프라이즈 IT 환경에 표준적이고 입증된 솔루션을 제공하고자 하는 기업과 정부 기관은 스프링 배치를 유용하게 사용하고 있습니다.

사용 시나리오

일반적인 배치 프로그램은 아래와 같은 경우가 있습니다.

  • 데이터베이스나 파일, 큐로부터 많은 기록을 읽는 경우
  • 특정 방식으로 데이터를 처리해야 하는 경우
  • 수정된 형태로 데이터를 다시 쓰는 경우

스프링 배치는 이러한 기본적인 배치 반복을 자동화하여 일반적으로 사용자와의 상호 작용 없이 오프라인 환경에서 유사한 트랜잭션을 세트 단위로 처리할 수 있는 기능을 제공합니다. 배치 작업은 대부분의 IT 프로젝트에서 사용되고 있고, 스프링 배치는 견고한 엔터프라이즈 급의 솔루션을 제공하는 유일한 오픈 소스 프레임워크입니다.

비즈니스 시나리오

스프링 배치는 아래와 같은 비즈니스 시나리오에 사용될 수 있습니다.

  • Commit batch process periodically.
  • Concurrent batch processing: parallel processing of a job.
  • Staged, enterprise message-driven processing.
  • Massively parallel batch processing.
  • Manual or scheduled restart after failure.
  • Sequential processing of dependent steps (with extensions to workflow-driven batches).
  • Partial processing: skip records (for example, on rollback).
  • Whole-batch transaction, for cases with a small batch size or existing stored procedures or scripts.

기술적 목표

스프링 배치는 아래와 같은 기술적인 목표를 달성하는 데 사용될 수 있습니다.

  • Let batch developers use the Spring programming model: Concentrate on business logic and let the framework take care of the infrastructure.
  • Provide clear separation of concerns between the infrastructure, the batch execution environment, and the batch application.
  • Provide common, core execution services as interfaces that all projects can implement.
  • Provide simple and default implementations of the core execution interfaces that can be used “out of the box”.
  • Make it easy to configure, customize, and extend services, by using the Spring framework in all layers.
  • All existing core services should be easy to replace or extend, without any impact to the infrastructure layer.
  • Provide a simple deployment model, with the architecture JARs completely separate from the application, built by using Maven.
profile
그래 다 먹고 살자고 하는 건데,, 🥹

0개의 댓글

관련 채용 정보