spring batch의 핵심 10가지
1. 왜 spring batch를 사용하는가?
2. 멱등성은 어떻게 유지하는가?
3. spring batch 메타데이터 테이블의 종류는 뭐가 있는가?
4. 배치 중간 실패 시 어떻게 처리하는가? - > skip, retry 기능 제공.
5. spring batch multi thread vs partitioning 의 차이
정해진 시간안에 처리해야하는 데이터가 많을 경우 성능을 높이기 위해 partitioning을 사용.
6. spring batch에서 왜 트랜잭션관리를 왜 chunk 단위로 하는지.
(청크기반에 개념을 정리해보기)
7. tasklet vs item(Reader, Processor, Writer) 의 차이점.
8. Cursor 기반 vs Paging 기반의 차이점.
: item Reader 사용시 cursor 기반의 클래스와 paging 기반의 클래스가 존재.
9. 배치 실행은 어떻게 하는가.
: jenkinse, Qutz 등 자신이 사용한 스케줄링 서비스로 실행했던 방법 설명.
10. 지연되는 배치 잡은 어떻게 모니터링하는가?
: 잡이 돌면서 원치않게 평상시보다 지연되는 경우, 이러한 경우에 연쇄적으로 물려있는 job에 문제가 생김.
이걸 어떻게 컨트롤해야하는가?
→ Job 의 상태들을 저장해 놓고 현재 실행중인 Job 의 상태가 어떻게 되는지를 실시간으로 체크하고 상태결과에 따라 다음 Job 의 실행 여부를 결정 및 진행하는 식으로 구성해야 할 것 같다. 다만 스프링 배치 API 에서 스케줄링을 제어하는 기능은 지원하지 않기 때문에 젠킨스나 쿼츠 같은 스케줄링 프로그램에서 위 내용에 대한 설정이나 API 가 있는지 검색해 보시고 없을 경우 Job 스케줄 관리 기능을 별도로 구현해야 할 것 같음.
실무에서 사용하는 사례를 같이 이야기하면서 내가 사용하는 기술에 대해 얼마나 알고있고 이해하고 있는지 설명하기.