Spring Batch란?

배치 처리는 주기적으로 대량의 반복적인 데이터 작업을 수행하기 위해 사용하는 방식이다. 예를 들어 백업, 삭제나 필터링 같은 특정 데이터를 처리하는 일을 개별 트랜잭션에서 진행해야 하는데 이런 작업들은 지금 당장 결과가 필요하지 않은 경우가 많다. 이러한 작업들을 모아서 자동으로 처리하는 것이 Batch이다.
Batch가 필요한 이유?
반복적으로 수행되어야 하는 태스크를 보다 효율적으로 실행하기 위함이다.
- 하루 매출 정산
- 월별 통계 계산
- 로그 분석
- 대량의 알림 발송
- 데이터 백업 / 정리
이런 작업을 리소스 사용량이 많은 시간대에 처리하면
- 응답 지연😱
- 서버 부하 폭증😱
- 서비스 장애 가능성 증가😱
등의 우려가 있다. 따라서 Batch는 서비스 운영의 부담을 덜어주는 역할을 한다.
Batch의 특징
1. 비실시간성
: 즉각적인 응답 필요하지 않은 작업을 수행하며 정해진 시점에 실행한다.
2. 대량의 데이터 처리
: 수천 ~ 수백만 건 단위를 처리할 수 있으며 성능과 안정성이 중요하다.
3. 자동화
: 사람의 개입을 최소화하고 자동화를 통해 반복적인 태스크를 효율적으로 처리한다.
4. 트랜잭션 관리
: 대량 처리 중 일부가 실패할 경우 전체가 롤백되는 것이 아니라 일정 단위로 나눠서 처리한다.
5. 멱등성 보장
: 같은 배치를 두 번 실행해도 결과값은 같아야 한다. 따라서 중복 처리 방지 로직을 붙여줘야 한다.
6. 실행 이력 관리
: 언제 실행되었으며 성공인지 실패했는지, 몇 건이나 처리했는지를 기록한다. 이는 운영 환경에서는 필수적인 부분이다.
[참고 자료]
https://aws.amazon.com/ko/what-is/batch-processing/
배치 처리란 무엇인가요? 배치 처리 시스템 설명 - AWS
배치 처리의 정의, 중요한 이유, 배치 처리의 작동 방식을 알아봅니다.
aws.amazon.com
'Programming > Spring' 카테고리의 다른 글
| [Spring]@Cacheable, @CachePut, @CacheEvict (0) | 2025.10.20 |
|---|---|
| [Spring] JWT의 구조 (0) | 2025.10.01 |
| [Spring] JPA에서 N+1이 발생하는 이유 (0) | 2025.09.24 |
| [Spring] Spring Framwork의 탄생 배경 (0) | 2025.07.16 |