일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 오류
- eclipse
- 자바스크립트
- error
- Linux
- srollIntoView
- EACCES
- 리눅스
- Ubuntuos
- frontend
- java
- JS
- Ubuntu에 Docker
- 설치
- 손쉬운 사용 키보드
- MariaDB
- 프론트엔드
- 손쉬운사용키보드
- 백수일지
- javascript
- remotessh
- 사용자화면
- reactjs
- React
- scroll
- MAC
- vscode
- WINDOWS10
- apache
- Today
- Total
평범한 이야기
Spring Batch - 기초정리 본문
글쓴이는 신입 자바개발자로서 알게되는 모든 것들을 무조건적으로 작성하기로 하였고, 이는 다른 분들의 글을 참고하여 기본적인 내용들을 습득해 나가는 과정을 작성하는 것입니다. 따라서, 100% 신뢰는 금물이며 인용된 글도 있음을 앞서 말씀드립니다. ( 저도 그저 배워가는 사람들 중 한 명입니다. 저를 위해 메모를 하는 용도이나, 이 글을 통해 도움을 얻으셨다면 감사합니다. ) 많은 선배님들의 걸음 덕분에 저도 이 글을 작성합니다. 감사합니다.
배치란
- 매일 정해진 시간에 일관처리
- DB 추출을 하여 파일 저장
- 오류로 종료된 시점 부터 재시작(CHUNK PROCESSING) 가능
구성
1 JOB
= 배치작업
= FLOW
- 최소 하나의 STEP 을 가짐
- 유지보수 및 모니터링을 위해 2개 ~ 10개 이하의 STEP 을 갖길 권장함.
2. STEP
= 읽고 가공하고 쓰기를 하나로 묶은 단위
= CHUNK PROCESSING (재시작)
= 하나의 트랜잭션
CHUNK PROCESSING 이란
1. ITEM READER (interface) : 읽기
2. ITEM PROCESOR (interface) : 가공
3. ITEM WRITER (interface) : 쓰기
1. ITEM READER (interface) : 읽기
> Public interface ItemReader<T>
> T read() 메소드
-
읽어들인 데이터 반환.
-
만일 Null 을 반환할 경우 읽어야 하는 총 데이터의 마지막임을 알 수 있음.
(예, DB 하나의 행(row) , Json 배열 하나의 element 반환 등 ) -
메소드의 반환 값은 ItemProcessor의 INPUT 으로 활용 됨.
2. ITEM PROCESSOR (interface) : 가공
> Public interface ItemProcessor <I , O>
> O process( I item )
-
ITEMREADER 에게서 Object 를 넘겨 받아 원하는 방식으로 가공한 뒤 ITEMWRITER 에게 값을 넘겨주는 역할
-
한번에 하나의 item 처리
-
INPUT 과 OUTPUT 을 지정해줘야 함
- INPUT = ITEMREADER 에게서 넘겨받은 타입 ( I = T )
- OUTPUT = ITEMWRITER 에게 넘겨줄 타입 ( O = T )
-
(별표) ItemProcessor 가 꼭 필요한 것은 아님. 데이터 가공이 필요하지 않다면 ITEMREADER -> ITEMWRITER 로 바로 값 넘김 가능.
3. ITEM WRITER (interface) : 쓰기
> Public interface ItemWriter <T>
-
ITEMREADER 또는 ITEMPROCESSOR 가 넘겨주는 데이터를 LIST 에 하나씩 차곡차곡 쌓음
-
COMMIT-INTERVAL 프로퍼티(property) 에 정의된 개수만큼 데이터가 모이면 write() 메소드 실행
- INTERVAL 는 STEP 에서 설정 가능 ( STEP 안의 CHUNK 에 작성 )
'컴퓨터 속 이야기 > Spring' 카테고리의 다른 글
Caused by: org.xml.sax.SAXParseException; 예기치 않은 파일의 끝입니다. (0) | 2021.03.04 |
---|---|
[eclipse] Maven 프로젝트를 위한 환경 구축 (0) | 2021.03.02 |