Spring Batch 적용 - ItemReader

KYOUNGBEOM·2024년 12월 13일

Spring Batch

목록 보기
6/9

지난 Spring Batch step에 이어 이번에는 ItemReader에 대해 공부해보고자 한다.

ItemReader는 클래스 이름처럼 배치의 작업에서 입력을 처리하는 클래스이다.

File (Flat, JSON, XML), Database, Http Api, Message Queue 등등
다양한 형태의 데이터들을 입력으로 받을 수 있다.

FlatFileItemReader

delimited의 default 값은 콤마( , ) 이다.

FlatFileItemReader의 속성은 아래와 같다.

recordSeparatorPolicy : 각 줄의 마지막을 정의

resource : 어디에서 resource를 가져올지 정의

skippedLinesCallback : line을 skip 할때 실행할 callback을 정의

strict : true 설정 시 파일이 없는 경우에 에러 발생

JsonItemReader

아래는 JsonObjectReader의 구조도이다.

이 구조도를 통해 배울 수 있는건,
Jackson 라이브러리를 사용해서 프로젝트를 진행하던 중
Jackson 라이브러리에 치명적인 결함이 생긴 상황에서

만약 JsonObjectReader 인터페이스가 없었다면
다른 라이브러리로 변경하기 위해 많은 코드를 변경해야했었겠지만,

JsonObjectReader 인터페이스 덕분에
해당 인터페이스에 맞춘 새로운 구현체만 있다면 쉽게 교체할 수 있다.

database

데이터베이스를 읽을 때는 크게
Paging을 통한 방식과 Cursor를 통한 방식을 사용할 수 있다.

아래는 각각의 방식에 대한 클래스들이다.

아래는 JpaPagingItemReader가 가지고 있는 메서드들이다.

아래는 JpaCursorItemReader가 가지고 있는 메서드들이다.

아래는 각각의 클래스들을 사용하기에 적합한 상황들이다.

참고

해당 개념들에 대한 실습은 깃허브 페이지의 Spring Batch 프로젝트에서
확인할 수 있고, 내용에 맞는 커밋메시지를 클릭하면 관련 코드를 볼 수 있다.

profile
나의 개발 성장일지

0개의 댓글