본문 바로가기
Spring Batch

Spring Batch 개발기 ( 1. Spring Batch란?? )

by SICDev 2021. 6. 23.
반응형

배치❓❓❓

일괄 처리(batch processing)란 최종 사용자의 개입 없이 또는 (자원이 허가한다면) 실행을 스케줄링할 수 있는 작업(job)의 실행을 의미한다. 

 

위키피디아에서 검색해보면 이렇게 정의되어있다❗❗
우리가 아무것도 하지 않아도 알아서 데이터를 처리하는 것이 바로 배치이다👍


배치는 그럼 어디서 많이 쓰일까❓❓

  • 매일 100만 개의 데이터를 수집해서 통계를 해야 내야 한다면❓
  • 모든 휴면계정의 사람들에게 일괄적으로 이메일, 문자를 보내야 한다면❓
  • 1시간마다 API를 호출해 10만 개의 데이터를 DB에 넣어야 한다면❓

보통 대용량의 데이터를 처리할 때 많이 쓰이게 된다❗


스프링 배치❓❓

역시 위키피디아에서 검색해보면❓❗

스프링은 특정 시간대에 실행하거나 대용량의 자료를 처리하는데 쓰이는 일괄 처리(Batch Processing)를 지원하는 배치 프레임워크를 제공한다. 기본적으로 스프링 배치는 Quartz 기반으로 동작한다.

 

스프링 진형에서도 배치 프레임워크를 제공해준다❗


Spring Batch 프로젝트는 Accenture와 Spring Source의 공동 작업으로 2007년에 탄생했고, Accenture의 배치 노하우 & 기술력과 Spring 프레임워크가 합쳐져 만들어진 것이 Spring Batch라고 한다.
(내 배치 소스코드 만들려고 왔는데 머 그런 거까지 알아야 되니??)

그것까지 알아야 되니?


스프링 배치의 조건 5가지❗

스프링 배치를 이용하기 전에 배치 어플리케이션이 최소한으로 만족해야 하는 조건들을 살펴보자!

  1. 대용량 데이터 - 배치 어플리케이션은 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리를 할 수 ​​있어야 한다.
  2. 자동화 - 배치 어플리케이션은 심각한 문제 해결을 제외하고는 사용자 개입 없이 실행되어야 한다.
  3. 견고성 - 배치 어플리케이션은 잘못된 데이터를 충돌/중단 없이 처리할 수 있어야 한다.
  4. 신뢰성 - 배치 어플리케이션은 무엇이 잘못되었는지를 추적할 수 있어야 한다. (로깅, 알림)
  5. 성능 - 배치 어플리케이션은 지정한 시간 안에 처리를 완료하거나 동시에 실행되는 다른 어플리케이션을 방해하지 않도록 수행되어야 한다.

다음엔 배치가 대충 무엇인지 알아보았으니 Job(?)과 Step(?)을 만들어 배치를 간단하게 만들어보자❗❗

 

 

 

 

 

 

참고

https://jojoldu.tistory.com/324?category=902551 

 

반응형