상세 컨텐츠

본문 제목

Spring Batch 란?

SpringBatch

by 성찬우 2022. 8. 12. 16:05

본문

우선 배치는 대용량 트래픽을 한번에 처리하는 것을 의미한다.

어떤 예시들이 있을까?

  • 이메일 쿠폰 발송
  • 가맹점 정산
  • 거래 명세서 생성
  • 추천 시스템 데이터 작업

 

 매번 정산에 변경이 생길 때마다 업데이트를 하기에는 대규모 서비스에서는 부담이다.

또한 정산을 이미 했는데 자동화가 되지 않아 수동으로 다시한번 정산을 할 경우 정산 수치에 

문제가 발생할 것이다. 

 

즉, 

배치 작업은 특정 주기마다 데이터를 처리하는 작업. 

고객에게 보이지 않는 곳에서 서비스를 지탱하며 업무 및 시스템의 효율을 위해 사용된다.

 

스프링 배치의 구조

JobRepository 

 배치가 실행될 때, 수행되는 매타데이터를 관리하고 시작 및 종료 시간을 관리하며 Job의 상태등을

배치 수행 관련 데이터가 저장되고.

 

Job Launcher

 Job 을 실행시켜주는 역할

 

Job 

 수행 단위를 말한다.  예를들어 ) 이메일 발송 작업이 있다면, 이메일 발송 Job 이 있다라고 말할 수 있다.

 

Step

 Job을 세부적인 단계로 나누어 실행시키는 단위를 말한다.

Job이 하나라면 Step은 하나일 수도있도 N개일 수도있다.

 

 

Spring Batch의 특징

Spring Batch는 다음과 같은 조건을 만족해야한다. 

  • 대용량 데이터 : 대량의 데이터를 가져오고, 전달하고, 계산하는 등의 처리가 가능해야함.
  • 자동화 : 특수한 상황이 아닐 경우, 사용자 개입 없이 실행 되어야함.
  • 견고성 : 잘못된 데이터를 오류 없이 처리해야한다.
  • 신뢰성 : 로깅과 알림을 통해서 오류에 대해 전달 및 추적할 수 있어야한다.
  • 성능 : 지정된 시간 안에 처리를 완료 하거나 동시에 실행되는 다른 어플리케이션을 방해하지 않아야한다.

 

Spring Batch 는 Spring 프레임웤과 매우 유사한 형태를 띄고 있다. 

떄문에 의존성 주입, AOP, 서비스 추상화 등의 특징들을 잘 알고 있다면 사용함에 있어

빠른 이해가 가능하다고 한다.

 

 다음번엔 Spring Batch의 기본적인 사용 예제를 포스팅 해보도록 하겠다.

'SpringBatch' 카테고리의 다른 글

SpringBatch 스케줄러로 Job실행하기  (0) 2022.08.19
SpringBatch ExecutionContext  (0) 2022.08.19
Spring Batch DB 데이터 이관하기  (0) 2022.08.17
Spring Batch Listener  (0) 2022.08.16
Spring Batch 기본 예제.  (0) 2022.08.13

관련글 더보기

댓글 영역