Skip to content

Spring Batch ‐ ItemWriter

dnwls16071 edited this page Aug 8, 2025 · 4 revisions

📚 FlatFileItemWriter

  • 2차원 데이터로 표현된 유형의 파일을 처리하는 ItemWriter
  • 고정 위치로 정의된 데이터 필드나 특수 문자에 의해 구별된 데이터 행을 기록
  • Resource와 LineAggregator 두 가지 요소가 필요하다.
스크린샷 2025-08-08 오전 12 48 16
  • LineAggregator
    • PassThroughLineAggregator : 전달된 아이템을 단순히 문자열로 반환
    • DelimitedLineAggregator : 전달된 배열을 구분자로 구분해 문자열로 합친다.
    • FormatterLineAggregator : 전달된 배열을 고정 길이로 구분해 문자열로 합친다.

📚 FlatFileItemWriter - delimeted

  • 객체 필드 사이에 구분자를 삽입해 한 문자열로 변환한다.
스크린샷 2025-08-08 오전 12 56 24

📚 FlatFileItemWriter - format

  • 객체 필드를 사용자가 설정한 Formatter 구문을 통해 문자열로 변환한다.
스크린샷 2025-08-08 오전 12 56 51

📚 JsonFileItemWriter

  • 객체를 받아 Json String으로 변환하는 역할을 한다.
스크린샷 2025-08-08 오전 1 16 30

📚 DB - JdbcBatchItemWriter

  • JdbcCursorItemReader 설정과 마찬가지로 datasource를 지정하고 SQL 속성에 실행할 쿼리를 설정
  • Jdbc의 Batch 기능을 사용하여 bulk insert/update/delete 방식으로 처리
  • 단건 처리가 아닌 일괄처리기 때문에 성능상 이점을 가진다.
스크린샷 2025-08-08 오전 1 17 52

📚 DB - JpaItemWriter

  • JPA Entity 기반으로 데이터를 처리하며 EntityManagerFactory를 주입받아 사용한다.
  • Entity를 하나씩 Chunk 크기만큼 insert 혹은 merge한 다음 flush한다.
  • ItemReader나 ItemProcessor로부터 아이템을 전달받을때는 Entity 클래스 타입으로 받아야 한다.
스크린샷 2025-08-08 오후 10 26 29

❗추가 학습 : ItemWriterAdapter

📖 Java

📖 Kotlin

📖 Coroutine

📖 Spring

📖 Spring Security

📖 Spring Batch

📖 Reactive Programming

📖 Database

📖 MySQL

📖 Redis

📖 JPA

📖 QueryDsl

📖 MSA

📖 Kafka

📖 Apache Flink

  • [Apache Flink - Apache Flink Architecture]
  • [Apache Flink - Stream Processing]
  • [Apache Flink - Data Stream API & Window]
  • [Apache Flink - State Management]

📖 HTTP

📖 AWS

📖 Docker

📖 Kubernetes

📖 CI/CD

📖 Nginx

📖 Monitoring🥈

  • [Monitoring - Log Concept]
  • [Monitoring - Log Level & Filter]
  • [Monitoring - Logback]
  • [Monitoring - Log Collection with ELK Stack]
  • [Monitoring - Log Monitoring with Kibana]
  • [Monitoring - Building a Monitoring System with Spring Boot Actuator]
  • [Monitoring - Server Monitoring with Prometheus and Grafana with Discord Alerts]

📖 Test

📖 Effective Java 3/E

📖 Kotlin Academy - Effective Kotlin

📖 Kotlin Academy - 핵심편

📖 스프링으로 시작하는 리액티브 프로그래밍

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 1

📖 가상 면접 사례로 배우는 대규모 시스템 설계 기초 2

📖 Clean Code

📖 리팩토링 2판

📖 주니어 백엔드 개발자가 반드시 알아야 할 실무 지식

📖 GraphQL

Clone this wiki locally