Spring Batch
Spring Eco-system 에는 Spring Web, Spring Data, Spring Cloud 등 많은 수의 프레임워크가 존재한다. 그중 Spring Batch는 배치 프로그램 개발을 스프링 프레임워크 구성에 맞게 개발할 수 있는 환경을 제공한다.
또한 배치 프로그램의 기본적 구성 요소인 로깅, 병렬처리, 대용량 데이터 처리를 위한 작업들을 제공하고 있다. 스프링의 큰 장점 중 하나인 기술 복잡도를 대신 처리해주고 비지니스 복잡도에 개발자가 집중할 수 있도록 하여
배치 프로그램을 빠르게 개발할 수 있는 프레임워크이다.
Job & Step
스프링 배치의 가장 기본이 되는 구성요소는 Job과 Step이다. Job은 배치의 기본 단위가 된다.
예를 들면,
JOB: “매일 아침 6시마다 집 앞 공원에서 트랙을 3바퀴 돌고 온다.”
이렇게 Job을 선언하고 해당 Job을 수행하기 위한 Step을 정의한다.
Step 1: “아침 6시에 모닝콜이 올린다. 모닝콜을 끈다.”
Step 2: “물을 한 잔 먹고 화장실을 간다.”
Step 3: “간단하게 세수를 한다.”
Step 4: “신발끈을 묶는다.”
결과적으로 한 개의 Job이 N개의 Step을 가질 수 있다. Step의 정의 범위를 얼마만큼 어떻게 가져갈 지 정하는 건 오로지 개발자가 선택하는 부분이다.