BackEnd/Spring Batch 4

Spring Batch 실행 순서 정리

Spring Batch는 Job → Step → Reader/Processor/Writer 구조로 구성되며, 실행 시 각 컴포넌트가 정의된 순서와 스프링 컨텍스트 초기화 흐름에 따라 동작합니다. 이 글에서는 클래스 단위 기준으로 실행 순서를 정리합니다.✅ 실행 순서 흐름 (클래스 단위)BatchApplication└─ BatchConfig ← @Configuration: Job, Step, Reader 등 Bean 등록└─ UserJobLauncher ← @Component: JobLauncher로 수동 Job 실행 └─ ImportUserJob ← BatchConfig에서 정의된 Job ..

Spring Batch 실행 이력 테이블 분석 가이드

📁 BATCH_JOB_INSTANCE실행된 Job의 논리적 인스턴스를 저장합니다. 컬럼명타입설명예시JOB_INSTANCE_IDBIGINTJob 인스턴스 고유 ID (PK)1VERSIONBIGINT낙관적 락을 위한 버전 번호0JOB_NAMEVARCHAR(100)Job 이름dailySalesJobJOB_KEYVARCHAR(32)Job 파라미터의 해시 값5ab0ef124abc… 📁 BATCH_JOB_EXECUTION실제 Job 실행 이력 정보를 저장합니다.컬럼명타입설명예시JOB_EXECUTION_IDBIGINTJob 실행 고유 ID (PK)1VERSIONBIGINT낙관적 락을 위한 버전 번호0JOB_INSTANCE_IDBIGINT연결된 JobInstance ID1CREATE_TIMEDATETIME(6)실..

Spring Batch Chunk Size에 따른 성능 비교 실험 (Bulk Insert 포함)

Spring Batch에서 chunk 크기는 성능에 직접적인 영향을 줍니다.이번 포스트에서는 100,005건의 데이터를 읽고 이름을 대문자로 변환한 뒤 DB에 저장하는 작업을 수행하면서,chunk 크기에 따른 전체 처리 시간 차이를 측정했습니다. 💡 실험 조건대상 데이터 수: 100,005건작업 내용: 이름(firstName, lastName) → 대문자로 변환 후 DB insert방식:일반 insert (insert 반복 호출)bulk insert ( 사용한 List 단위 삽입)환경: Spring Batch + MyBatis + H2 in-memory DB 📊 일반 Insert 성능 (단건씩 처리) 1차2차3차1029.88초30.13초-5015.87초--6015.66초--7015.03초--801..

Spring Batch + MyBatis 예제 정리 (CSV → DB 처리)

Spring Batch와 MyBatis를 활용하여 CSV 파일 데이터를 읽고, 가공 후 데이터베이스에 저장하는 배치 처리 예제입니다.https://github.com/Raconer/SpringBatch📁 프로젝트 구성com.example.batch├── config│ └── BatchConfig.java # 배치 Job/Step 설정├── entity│ └── Person.java # 도메인 엔티티├── listener│ └── JobCompletionNotificationListener.java # Job 실행 리스너├── processor│ └── PersonItemProcessor.java # I..