반응형

목차

1. Spring Batch?

2. Spring Batch의 특징

3. Spring Batch에 대한 오해

4. Spring Batch의 조건

5. Spring Batch의 실사례

6. Spring Batch의 장점

7. Spring Batch의 용어

 

1. Spring Batch?

Spring 환경에서 대용량의 데이터 처리를 위한 기능을 제공하는 프레임 워크이다. 이름 그대로 스프링 배치(Batch)이기 때문에 Spring과 같은 특성을 띤다. 주기적으로 대용량의 데이터를 처리해야 하는 규모 있는 엔터프라이즈 시스템을 운영하기 위해 스프링 배치를 자주 사용한다.

 

 

2. Spring Batch의 특징

대용량 데이터 처리

Spring Batch는 방대한 양의 데이터를 처리할 수 있다. (로킹/추적, 트랜잭션 관리, 통계 등)

 

스케줄러

배치는 일괄처리라는 뜻을 가지고 있기 때문에 지정한 스케줄러에 의해 시간에 맞춰 수행한다.

 

재시도 기능

Spring Batch는 작업 중 실패한 경우, 작업을 재시도할 수 있는 기능을 제공한다. 또한 재시도 횟수를 지정할 수 있다.

 

 

 

3. Spring Batch에 대한 오해

Spring Batch는 스케줄러가 아니다.

Batch는 데이터를 대용량으로 일괄처리하기 위한 Job이라는 형태의 객체를 제공한다. 해당 Job을 제공받아 실행을 시키는 스케줄러는 별도로 만들어줘야 한다. 

 

 

4. Spring atch의 조건

배치 프로그램은 자동화가 되어야 한다.

배치 업무를 수행하는 동안 다른 작업의 수행을 방해해서는 안된다.

어느 시점에 대용량 데이터를 처리할 수 있어야 한다.

 

 

 

5. Spring Batch의 실사례

Spring Batch를 사용하면 이전에 수동으로 처리하던 작업을 자동화할 수 있다. 예를 들면 한 고객이 매일 수천, 수만건의 주문을 입력하는 경우, 이러한 데이터를 처리하는 작업을 자동화할 수 있다. Spring Batch를 사용하여 데이터를 일괄 처리하고, 처리 결과를 DB에 저장할 수 있다. 이를 통해 시간과 인력에 소모되는 비용을 절약할 수 있다.

 

 

 

6. Spring Batch의 장점

대용량 데이터에 최적화되어 있으며 고성능

수동으로 처리하지 않도록 자동화 되어 있음

예외 상황과 비정상적인 동작에 대해 방어 기능이 존재

로깅, 통계처리, 트랜잭션 관리 등 재사용 가능한 기능을 지원

 

 

 

7. Spring Batch의 용어

Job

Job은 하나 이상의 Step을 가진다. 하나의 배치 작업을 나타내며 Job은 JobInstance로 표현된다. JobInstance는 Job의 실행에 대한 실제 인스턴스를 나타낸다.

 

Step

Step은 배치 처리 작업의 최소 단위다. Step은 Tasklet/Chunk 방식으로 구성된다.

- Tasklet : 하나의 트랜잭션에서 수행되는 단순한 작업

- Chunk : 트랜잭션 범위 내에서 Chunk단위로 데이터를 읽어 처리하는 방식

 

JobLauncher

Job을 실행하는 인터페이스다. Job을 실행하기 위해서는 JobLauncher를 통해 Job을 실행해야 한다.

 

JobRepository

Job과 관련된 메타 정보를 저장하고 조회하기 위한 인터페이스. JobInstance, JobExecution, StepExecution 등의 정보를 포함하고 있다.

 

JobInstance

Job의 실행을 나타내는 인스턴스

 

JobExecution

JobInstance의 실행에 대한 정보를 저장

 

StepExecution

Step의 실행에 대한 정보를 저장. StepExecution은 Step안에서 Tasklet/Chunk 방식으로 실행된다.

반응형

+ Recent posts