Stack Empty
Spring-Batch 소개 본문
공식 홈페이지에서 Spring-Batch를 다음과 같이 설명하고 있다.
'스프링 배치는 엔터프라이즈 어플리케이션 운영에 필요한 반복적인 작업을 위해 개발된 경량화 되고 종합적인 일괄 처리 프레임워크입니다.'
해당 설명대로 이를 위해 아래와 같은 기능등을 제공하고 있다.
- 주기적인 Commit 배치 프로세스
- 동시 배치 처리 : Job 병행 처리
- 엔터프라이즈 메세지 지향 처리
- 대규모의 병행 배치 처리
- 작업 실패 후의 수동 혹은 스케쥴을 적용한 재시작
- 독립적 스탭(스프링 배치의 가장 작은 작업 단위)을 순차적으로 처리
- 부분적 처리 -> 이미 처리한 부분 skip
- 전체적으로 적용되는 배치 트랜잭션
또한 Spring-Batch를 도입해야 하는 이유에 대해서도 아래와 같이 설명을 하고 있다.
- 배치 개발시에 Spring의 프로그래밍 모델 사용 가능
- 이는 비지니스 로직에 집중하고, Infrastructure는 프레임워크가 관리하도록 한다.
- Infrastructure, 배치 실행 환경, 배치 어플리케이션간의 완전한 분할 (SoC)
- SpringMVC의 그것처럼 모든 배치 환경에서 구현할 수 있는 공통되며, 핵심이 되는 실행 서비스를 Interface로 제공
- 모든 레이어에서 막강한 Spring Framework를 활용하여 쉽게 환경을 구성할 수 있고, 커스터마이징 해서 서비스를 확장가능
- POJO를 완벽하게 제공하므로 기존 핵심 서비스를 수정치 않고 쉽게 교체하거나 확장 가능
- 막강한 빌드/배포 Framework인 Maven을 사용해 어플리케이션과 아키텍처 JAR를 완전히 분리하여 단순한 배포모델 제공
위에 나열된 것만 보더라도 스프링 배치를 도입해야 할 이유가 충분해 보인다.
스프링에서 제공하는 Spring-Batch의 Infrastructure Layer이다.
스프링 배치의 Execution Environments 레벨은 배치의 추적 및 관리를 위한 많은 기능을 제공한다. (Job의 입력, 추적, 일정, Retry, 결과 처리 등)
Infrastructure 레벨은 배치를 묶어 실행가능하게 하며, 예외가 발생하여 실패한 부분을 재실행 가능케 한다. 양쪽다 트랜잭션이 필수며 이를 위해 스프링의 공통된 프로그래밍 모델 템플릿을 사용할 수 있다. (TransactionTemplate, JdbcTemplate, JmsTemplate. 등)
'Spring Framework > Batch' 카테고리의 다른 글
배치 처리의 중요성 (0) | 2013.06.26 |
---|