배치 처리를 위해서 스프링이 제공하는 솔루션입니다. 배치 처리란 대량의 데이터를 일괄적으로 처리하는 것을 말합니다.JVM(Java Virtual Machine)에서 배치 처리를 위한 사실상의 표준이 되어있습니다.
스프링 배치를 구현할 때 주의사항
가능하면 복잡한 구조와 로직을 피해야합니다. 아무래도 대량의 데이터를 다루는데로직도 복잡하면 실행시간도 오래걸리고 서버도 다운되고 그럽니다. 가능하면 심플하게 구현하는게 좋습니다.
스프링 배치는 데이터를 다룹니다. 저의 경우 데이터베이스에 insert, update, delete까지도 하는데요, 이런 경우 데이터 무결성을 유지하기 위해서 '유효성 검사'를 꼭 걸어두어야 합니다. 새벽에 배치를 돌려놨는데, 아침에 출근했더니 데이터베이스가 없어져있으면 슬프니까요.
스프링 배치는 부하가 일어나는 작업이기 때문에,
가급적 새벽에 돌리는 것이 좋습니다. 업무시간에 배치를 돌려야하는 경우, 배치 처리가 진행되는 동안 서비스에 영향이 없는지 모니터링이 필요하겠죠. 배치를 새벽 3시에 돌린다고 예약을 걸려면 스케쥴러라는 것이 필요한데요, 스케쥴러에 대한 선택권이 있으시면스프링 스케쥴러를 사용하는 것을 추천드립니다.