일괄 처리(batch processing)
최종 사용자의 개입 없이 또는 (자원이 허가한다면) 실행을 스케줄링할 수 있는 작업(job)의 실행을 의미한다.
배치를 사용했을 때 얻는 이점
- 많은 사용자 사이에서 컴퓨터 자원을 공유할 수 있다.
- 작업 프로세스의 시간대를 컴퓨터 리소스가 덜 사용되는 시간대로 이동한다.
- 분 단위의 사용자 응답 대기와 더불어 컴퓨터 리소스의 유휴 사용을 피한다.
- 전반적인 이용률을 높임으로써 컴퓨터의 비용을 더 잘 상환하도록 도와 준다.
일괄 처리 시스템은 일정 기간마다 주기적으로 한꺼번에 처리할 필요가 있고, 그룹별로 분류시킬 수 있는 성질을 가지고 있으며, 순차 접근방법을 사용할 수 있는 업무. 즉, 처리 요건이 일괄적인 업무에 대해 유사한 자료를 한데 모아 일정한 형식으로 분류한 뒤 한번에 일괄 처리함으로써 시간과 비용을 절감하여 업무의 효율성을 향상시킨다.
Spring Batch
스프링 배치는 일괄처리를 위한 오픈소스 프레임워크다.
현대 기업 시스템에서 흔히 볼 수 있는 강력한 배치 응용 프로그램의 개발을 가능하게 하도록 설계된 가볍고 포괄적인 솔루션이다. 이러한 Spring Batch는 Spring Framework의 POJO 기반 개발 접근 방식을 기반으로한다.
스프링 배치는 다음과 같은 세 가지 특징이 있다.
- 로깅 및 추적과 트랜잭션 관리, 작업 처리통계, 작업 재시작, 건너뛰기, 리소스 관리 등 대용량 레코드 처리에 필수적인 재사용 가능한 기능을 제공한다.
- 최적화 및 파티셔닝 기술을 통해 매우 높은 볼륨 및 고성능 배치 작업이 가능하다.
- 단순하거나 복잡한 대용량 배치 작업은 확장성이 뛰어난 방식으로 프레임워크를 활용해 상당한 양의 정보를 처리할 수 있다.
스프링 배치의 기본 작동 원리
스프링 배치는 기본적으로 Job, Step을 통해 구현하여 실행한다.
JobLauncher : Job과 JobParameter를 사용해 Job을 실행하는 객체
JobParameter : JobInstance를 구별할 수 있는 매개변수 또는 객체
JobInstance : Job의 실행 단위
Job : 배치 처리 과정을 하나의 단위로 만들어 표현한 객체, 여러가지의 Step을 관리한다.
Step : 실질적인 배치 처리를 담당한다.
JobRepository : 배치 처리 정보를 담는 역할
Item : 처리할 데이터의 가장 작은 요소
ItemReader : Step의 대상이 되는 배치 데이터를 읽어오는 "인터페이스"
ItemProcessor : ItemReader에서 읽어 들인 Item에 대해 ItemWirter 하기 전에 필요한 로직 처리
ItemWriter : ItemReader에서 읽어온 값을 Insert, Update 처리한다.
기본적으로 스프링 배치는 JobLauncher가 Job을 가져와서 해당하는 Job 안에 구현된 Step에 따라 순차적으로 실행한다.
이후 하나의 Step은 읽고 (ItemReader), 처리하고 (ItemProcessor), 저장(ItemWriter)하는 일련의 절차를 수행한다.
실제 구현은 다음장 . .
'개발 > Spring' 카테고리의 다른 글
[Spring] CORS 설정 (0) | 2021.07.14 |
---|---|
[Spring Batch] 스프링 배치 구현하기 (0) | 2021.06.25 |
[Spring] Jar 파일 실행 ( IntelliJ, Maven ) (0) | 2021.06.12 |
[Spring] Eureka Server 환경 설정 (0) | 2021.05.06 |
[Spring] Spring Cloud 란 무엇인가 (0) | 2021.05.03 |