Spring Batch (1 - 간단한 소개)

삐까튜·2022년 3월 18일
0

SpringBatch

목록 보기
1/1

현재 회사에서 가장 많이 사용하는 기술은 spring batch 이다.
배치를 이곳에 와서 처음 접하고 사용하게 되었는데 그 과정에서 배운 것들을 정리해보려고 한다.


입사 1년차 주니어 백엔드 개발자(나) 상태


Batch?

스프링 배치의 공식 문서에 따르면,

Many applications within the enterprise domain require bulk processing to perform business operations in mission critical environments.

즉, '어플리케이션은 벌크 처리를 필요하다' 라고 말하고 있다.
여기에서 이 벌크 처리가 곧 '배치'성 작업이라고 생각한다.

해당 설명에 좀 더 자세한 Use Case를 이야기 하자면,

    1. 회원 관리 : 한 달동안 로그인하지 않았던 회원들을 대상으로 어느 일시에 일괄적으로 휴면회원으로 전환
    2. 정산 : 예시로 어느 쇼핑몰에서 22년 3월에 판매한 상품들에 대해 일괄적으로 정산을 수행

이 두 예시의 공통점은 무엇일까?
대량의 데이터에 대해 일괄적인 처리이다.
또 다른 공통점은, 반복적인 처리이다. (첫 번째 예시는 매일 혹은 회사 정책에 맞게 주기적으로 처리할 것이고, 두 번째도 마찬가지로 매달 정산을 수행할 것이다.)


그렇다면 이들을 배치로 처리하지 않는다면 어떤 일이 발생할까?

1. 이벤트가 발생할 때마다 처리
  물론 될 수도 있다.. 그러나, 트래픽이 많은 어플리케이션에 이들을 실시간으로 처리하면 리소스가 낭비될 것
2. 주기적으로 이들을 수동으로 수행
  이런 반복적인 작업이 1~2개만 있으면 괜찮을 수도 있다. 하지만, 이러한 작업이 과연 하나만 있진 않을 것이다. 일정 개수 이상이면 이들을 스케쥴링하여 실행하는 것이 더 효율적인 방법이지 않을까?

이보다 더 많은 문제점들이 있을 수도 있다..


그렇다면 Spring Batch란?

말 그대로 Batch 작업을 Spring 프레임워크 위에서 처리하는 것이다.
Quartz와 같은 스케쥴링 프레임워크가 아니다.

profile
백엔드 개발자

0개의 댓글