Spring

spring batch 링크모음

91cm 2020. 4. 21. 00:09


Spring Batch란?

- 스프링 배치는 벡엔드의 배치처리 기능을 구현하는 데 사용하는 프레임워크입니다.

배치는 스프링 배치 설정 요소들을 간편화시켜 빠르게 설정하는 데 도움을 줍니다.


Spring Batch 장점

1) 대용량 데이터 처리에 최적화되어 고성능을 발휘

2) 효과적인 로깅, 통계 처리, 트랜잭션 관리 등 재사용 가능한 필수 기능을 지원

3) 수동으로 처리하지 않도록 자동화되어 있습니다.

4) 예외사항과 비정상 동작에 대한 방어 기능 존재.


Spring Batch 단점

- 스케줄 기능 제공하지 않음

- 스케줄링을 위해 jenkins나, Quarz를 같이 사용


Spring Batch 개념

https://jojoldu.tistory.com/324

http://wiki.gurubee.net/pages/viewpage.action?pageId=4949437


*batch 실행 방법

https://jojoldu.tistory.com/325


*batch 메타 테이블 설명

- Spring Batch를 사용하기 위해서는 기본적으로 필요한 테이블이 있습니다

- bach core폴더안에 테이블 생성 스크립트가 들어 있습니다(schema-xxx-.sql db종류별로)

https://jojoldu.tistory.com/325

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:brte:batch_core:history_management


*@Scope와 jobparamter

- jobparameter를 사용하려면 @Scope를 사용해야 합니다

https://jojoldu.tistory.com/330

https://ahndy84.tistory.com/25


*@StepScope 사용시 주의 사항

https://jojoldu.tistory.com/132


Batch의 청크지향 처리

- 청크 지향 프로세싱은 트랜잭션 경계 내에서 청크 단위로 데이터를 읽고 생성하는 프로그래밍 기법입니다

- 청크란 item이 transaction에 commit되는 수를 말합니다

https://jojoldu.tistory.com/331


ItemReader

- batch 처리를 위해 데이터를 읽어옵니다

https://jojoldu.tistory.com/336


*itemProcessor

- 읽어온 데이터를 가공합니다, 필수는 아닙니다

https://jojoldu.tistory.com/347


*itemWriter

- 가공하거나, 읽어온 데이터를 입력하자

https://jojoldu.tistory.com/339


*pagingItemReader 사용시 주의 사항

https://jojoldu.tistory.com/166

https://jojoldu.tistory.com/337


*writer에 List전달하기

https://jojoldu.tistory.com/140


*bach의 분기처리

- 세부조건에 따라 step의 실행여부를 결정 할 수 있습니다

https://jojoldu.tistory.com/328

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:brte:batch_core:flow_control


bach의 listener

https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte2:brte:batch_core:listener


*ExitStatus class

https://docs.spring.io/spring-batch/docs/current/api/org/springframework/batch/core/ExitStatus.html


docs.spring.io

https://docs.spring.io/spring-batch/docs/current/reference/html/readersAndWriters.html


batch skip로직 동작방식

docs.spring.io


batch-processing (spring.io 가이드)

https://spring.io/guides/gs/batch-processing/


배달의 민족 우하한 스프링배치 후기

https://blog.junu.dev/34

https://blog.deliwind.com/posts/210


모든 batch가 실행되지 않게 하는법(자동시작 방지)

https://cnpnote.tistory.com/entry/SPRING-Spring-Batch-Job%EC%9D%84-%ED%8A%B9%EC%A0%95-%EC%88%9C%EC%84%9C-Spring-Boot%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95


jobparameter로 받을 수 있는 type

https://hodolman.com/17


spring batch + spring boot java config example

https://howtodoinjava.com/spring-batch/java-config-multiple-steps/


spring batch properies 

https://zetawiki.com/wiki/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8_SPRING_BATCH_%ED%94%84%EB%A1%9C%ED%8D%BC%ED%8B%B0


특정순서대로 job을 실행시키는 방법

https://cnpnote.tistory.com/entry/SPRING-Spring-Batch-Job%EC%9D%84-%ED%8A%B9%EC%A0%95-%EC%88%9C%EC%84%9C-Spring-Boot%EB%A1%9C-%EC%8B%A4%ED%96%89%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95