JSCODE Logo
블로그후기멘토진
회사명 : JSCODE대표 : 박재성사업자 등록번호 : 244-22-01557통신판매업 : 제 2023-인천미추홀-0381 호
학원 명칭 : 제이에스코드(JSCODE)원격학원학원설립ㆍ운영 등록번호 : 제6063호

서울특별시 구로구 경인로 20가길 11(오류동, 아델리아)

Copyright ⓒ 2025 JSCODE - 최상위 현업 개발자들의 프로그래밍 교육 All rights reserved.

이용약관개인정보처리방침
← 블로그 목록으로 돌아가기

ItemReader란? / ItemProcessor란? / ItemWriter란?

JSCODE 시니
JSCODE 시니
2026. 04. 04.
author
JSCODE 시니
category
Spring Batch
createdAt
Feb 7, 2026 01:12 AM
isPublic
isPublic
series
Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
slug
spring-batch-reader-processor-writer-concepts
type
post
updatedAt
Apr 4, 2026 10:00

✅ 1. ItemReader란?

public interface ItemReader<T> { T read() throws Exception, UnexpectedInputException, ParseException, NonTransientResourceException; }
  • 역할: 데이터 저장소(DB, 파일 등)에서 데이터를 읽어오는 인터페이스.
  • 동작: read() 메서드를 호출할 때마다 데이터를 하나씩(One by One) 가져온다.
  • 종료: 더 이상 읽을 데이터가 없어서 null을 반환하면, 해당 Step의 읽기가 종료된다.
 

✅ 2. ItemProcessor란?

public interface ItemProcessor<I, O> { O process(I item) throws Exception; }
  • 역할: Reader에서 읽어온 데이터(I)를 가공하여 Writer로 넘길 데이터(O)로 변환한다. (비즈니스 로직 담당)
  • 동작: process() 메서드를 통해 데이터를 하나씩 처리한다.
  • 필터링: 만약 처리 중에 null을 반환하면, 그 데이터는 Writer로 전달되지 않고 삭제(Filter)된다.
 

✅ 3. ItemWriter란?

public interface ItemWriter<T> { void write(Chunk<? extends T> chunk) throws Exception; }
  • 역할: Processor를 거쳐 넘어온 데이터를 최종적으로 저장하거나 출력한다.
  • 동작: 데이터를 하나씩 쓰는 게 아니라, 설정된 청크 사이즈(Chunk Size)만큼 꽉 찰 때까지 모았다가 write() 메서드로 한 번에(Bulk) 처리한다.
  • 예시: INSERT INTO ... VALUES (...) 쿼리를 1000개 모아서 한 번에 날리는 방식.
 
author
category
Spring Batch
createdAt
Mar 5, 2026 10:56 PM
isPublic
isPublic
series
Spring Batch 입문: 3시간 만에 끝내는 대용량 처리의 기초
slug
type
series-footer
updatedAt
Apr 4, 2026 10:00
📎
이 글은 Spring Batch 입문 강의의 수업 자료 중 일부입니다.