728x90
반응형
SMALL

Batch란, 일괄 처리라는 뜻을 가지고 있다. 데이터를 실시간으로 처리하지 않고 일괄적으로 모아서 한번에 처리하는 방식을 말한다. 만약에 이런 작업을 항시 Running중인 웹 기반으로 구현한다면 매우 비효율적일 것이다. 일괄처리를 작업하는 순간에만 애플리케이션이 Running되고 리소스를 사용해야 효율적인 프로그램이라 할 수 있다. 

 

예를 들면, 특정 서비스의 포인트 예약 적립이나, 유효기간 만료와 같은 작업은 매일 한번에 데이터를 처리하는 방식이 주를 이룬다. 즉, 특정 시기에 특정 데이터들을 처리하면 되는 경우엔, 배치 작업과 굉장히 잘 어울린다고 할 수 있다. 

 

다양한 데이터 처리 방식

그럼 배치 작업이 아닌 다른 방식은 무엇이 있을까? 다음 표가 대표적인 세가지 데이터 처리 방식이다.

  Batch-Proceessing Real-Time Stream-Processing
데이터 처리 시간 정해진 시간에 일괄 처리 실시간으로 반응이 일어남
요청이 들어오면 즉시 처리
(웹 애플리케이션이 대표적인 예)
준실시간 반응이 일어남
데이터 처리량 정해진 때에 정해진 양의 데이터를 한번에 처리함 요청을 개별적으로 처리 Stream을 통해 데이터가 들어오면 처리하기 시작함
구현 특징 데이터를 처리할 때만 애플리케이션이 Running하도록 구현함 Web Container에서 동작하도록 구현함  제 3의 도구를 사용하는 경우가 많음 (Kafka, RabbitMQ)
데이터 처리 시 어려움 데이터 볼륨이 너무 큰 경우에 처리가 어려움
처리가 특정한 시간에 집중됨
동시에 많은 요청이 일어나는 경우에 대처가 어려움 Stream의 input과 output의 flow를 컨트롤하기 어려움 
제 3의 도구와 다수의 stream으로 인해 Fail처리가 어려움
  • Real-Time 처리 방식은 보통의 웹 서비스, 그러니까 Spring MVC로 구현한 애플리케이션을 생각하면 된다. 사용자가 요청을 하면 그 요청에 대한 응답이 즉각적으로 일어난다.

이렇게 대표적으로 세가지 데이터 처리 방식 중에 이 카테고리에서 배워볼 방식은 Batch-Processing이다. 그리고 이를 구현하기 위해 Spring Batch를 배워볼 것이다.

 

Spring Batch의 특징

  • 가볍고 포괄적인 배치 프레임워크
  • 로깅, 추적, 트랜잭션 관리, 작업처리 통계, 재시작, 건너뛰기, 리소스 관리 등 대량의 레코드 처리에 필수적인 재사용 가능한 기능을 제공
  • 최적화 파티셔닝 기술로 대용량 고성능 배치 작업 가능
  • 확장성이 매우 뛰어남

 

Spring Batch 프레임워크는 Spring 기반 위에서 구현할 수 있기 때문에 Spring에서 제공하는 많은 것들과 같이 사용할 수 있고, 위 특징들을 누릴 수가 있어 배치 작업을 위한 최고의 프레임워크라 할 수 있다.

 

 

Spring Batch의 핵심 키워드

Spring Batch를 사용할 때 필수적으로 이해해야 할 개념들은 다음과 같다.

  • Job
  • Step
  • Tasklet
  • Chunk Processing
  • ItemReader
  • ItemProcessor
  • ItemWriter
  • Listener

이 개념들에 대해 이제 하나씩 차근차근 알아보는 시간을 가져보자!

 

728x90
반응형
LIST

'Spring Batch' 카테고리의 다른 글

ItemReader  (1) 2024.10.09
Chunk Processing  (5) 2024.10.09
Tasklet  (0) 2024.10.09
Step  (2) 2024.10.09
Job  (7) 2024.10.09

+ Recent posts