개발그래머
임요환
« 2025/07 »
일 |
월 |
화 |
수 |
목 |
금 |
토 |
|
|
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
|
|
관리 메뉴
개발그래머
Spring Batch 소개 본문
배치 작업이란?
배치작업 ↔ 실시간작업
배치작업
- 특정주기마다 작업들을 한 번에 모아서 처리
- 주문결제 후 배송
- 은행 정산
- 이메일 쿠폰 발송
- 가맹점 정산
- 거래 명세서 생성
- 추천 시스템 데이터 작업
스프링 배치로 작업이 필요한 이유
- 풍부한 기능
- 일관성 된 코드
- 기존 서비스가 스프링 프레임워크로 되어 있는 경우 호환 가능
- 완성도 있고 유지보수와 확장성 있는 개발 가능
스프링 배치 구성
JobLauncher
- JobExecution을 JobRepository로부터 얻고 Job을 실행
- @EnableBatchProcessing 어노테이션을 통해 JobRepository를 자동으로 구성
Job
- 전체 배치 프로세스를 캡슐화하는 엔티티
- 전체 계층구조의 최상위
- Step을 위한 단순한 인스턴스 컨테이너
- 정의와 Step들의 순서
- 하나이상의 Step으로 구성
Step
- 실제 일괄 처리를 정의하고 제어하는 모든 정보를 포함
- chunk와 tasklet으로 구성가능
JobRepository
- 위의 정보들을 위한 영속성 메커니즘
- JobLaucher, Job, Step을 위한 CRUD 작업 제공
ItemReader
- Step 한 항목에 대한 입력 검색을 나타내는 추상화
- 제공할 수 있는 항목을 소진하면 null 반환
ItemProcessor
- item의 비지니스 처리를 나타내는 추상화
- ItemReader 가 item을 읽고 ItemWriter가 item을 쓰는 동안 ItemProcessor는 다른 비즈니스 처리를 변환하거나 적용하기 위한 액세스 지점을 제공
- item을 처리하는 동안 항목이 유효하지 않은 것으로 확인되면 null을 반환
ItemWriter
- Step의 배치, itemchunked의 출력을 나타내는 추상화
- 다음에 수신해야 입력에 대해 알지 못하고 현재 호출에서 전달된 항목만 알고 있음