본문 바로가기

Spring/Batch4

[Spring] JobRepository의 역할과 실행 흐름 들어가기 전Spring Batch는 대용량 데이터 처리를 위해 Job, Step 등의 컴포넌트로 구성된 프레임워크입니다. 이 글에서는 배치(Job)를 실행할 때 내부에서 JobRepository가 어떤 역할을 하고 기본 구현체가 어떻게 동작하는지 살펴보겠습니다. Spring Boot의 기본 설정을 활용하여 별도 커스터마이징 없이 (기본 구현체 그대로) 애플리케이션 코드에서 배치를 직접 호출하는 상황으로 가정할 것이며 이를 통해 JobRepository를 중심으로 JobLauncher가 Job을 실행하고 메타데이터를 관리하는 흐름을 알아보고자 합니다.JobRepositorySpring Batch의 기본 아키텍처는 배치 작업 단위를 표현하는 Job과 그 구성요소인 Step들로 이루어져 있습니다. JobLau.. 2026. 1. 11.
[Spring] Spring Batch Job 등록부터 실행까지(1) 들어가기 전 이전 글 에서 Spring Batch 실행을 위한 프로젝트 환경 구성 및 예제 Job 을 작성 후 실행해 봤습니다. 그렇다면 Spring Batch 는 Job 을 어떤 식으로 생성하고 실행시키는지에 대해 이번 글을 통해서 알아 보도록 하겠습니다. Step 다음과 같이 Tasklet 으로 구성된 Step 을 Bean 으로 등록합니다. @Bean public Step step(JobRepository jobRepository, PlatformTransactionManager transactionManager) { return new StepBuilder("step1", jobRepository) .tasklet(tasklet(), transactionManager) .build(); } 먼저 S.. 2024. 1. 22.
[Spring] Spring Batch 시작하기 01 Spring Batch 를 학습하기 위한 시리즈 글로 Spring Batch 5.1.0 버전을 기반으로 작성합니다. 프로젝트 환경 Spring Batch 를 실습하기 위해 먼저 프로젝트부터 생성하겠습니다. 다음과 같은 버전으로 프로젝트를 구성했습니다. Gradle(8.2.1) Spring Boot(3.2.1) Java(17) MySql(8.0.23) 또한 실습에 필요한 의존성은 다음과 같습니다. Spring-Data-JPA(3.2.1) Spring-Batch(5.1.0) Lombok(1.18.30) MySql-Connector(8.1.0) 프로젝트 생성 시 Spring Initializr 를 통해 필요한 의존성을 선택하여 생성하면 build.gralde 파일은 다음과 같습니다. plugins { id '.. 2024. 1. 14.
[Spring] Spring Batch란? 최근 회사 프로젝트에서 스프링 배치를 활용하여 모바일 Push 알림 관련 배치/온라인 작업을 진행했습니다. 비교적 간단한 작업이라 큰 어려움은 없었지만 처음 사용해보는 스킬이기 때문에 공부용으로 해당 글을 작성하게 됐습니다. Batch Application 배치 애플리케이션이란 대량의 데이터를 처리하거나 반복적인 작업을 수행하는 목적을 가지는 애플리케이션을 의미합니다. 주기적으로 반복 되는 작업을 자동으로 수행하며 일련의 단계로 구성되어 있는 작업들을 수행합니다. 위와 같은 작업들은 배치 애플리케이션으로 따로 분리해서 관리해야 하는데는 다음과 같은 중요한 이유가 있습니다. 일반적으로 사용되는 웹 애플리케이션은 실시간으로 사용자와 상호 작용 하기 위한 비즈니스 로직들을 수행합니다. 이를 위해 네트워크 I/.. 2023. 12. 18.