이번글에서는 앞서 생성한 Spring Batch의 Meta Data Table에 대해 자세히 알아보도록 하겠습니다. 1. Meta Data Table 이전글에서 생성한 spring batch meta data table의 전체 구조는 다음과 같습니다. 이번글에서는 위의 테이블들을 자세히 살펴보도록 하겠습니다. 😎 2. BATCH_JOB_INSTANCE 먼저 batch_job_instance 테이블은 job parameter에 따라 row가 생성되는 테이블 입니다. 현재 MySQL에서 batch_job_instance를 조회해보면 아래와 같이 검색됩니다. • job_instance_id : batch_job_instance 테이블의 PK 입니다. • job_name : 수행한 batch job의 name ..
이번글에서는 MySQL을 사용해 Spring Batch를 실행하는 방법에 대해 알아보도록 하겠습니다. 1. H2 이전글에서 사용한 코드를 동일하게 사용하도록 하겠습니다. 우리는 이전글에서 간단하게 Spring Batch Application이 작동하는 것을 확인했습니다. 이때 MySQL이나 Oracle과 같은 DB를 사용한다고 명시하지 않았기 때문에, Spring Boot의 Default DB인 H2를 사용해 Spring Batch가 수행되었다고 생각할 수 있습니다. 2. MySQL 그렇다면 MySQL을 사용할때도 동일하게 별다른 설정 없이 Spring Batch가 작동할 수 있을까요?.. 정답은 그렇지 않습니다.😅 내장 DB인 H2를 제외한 DB에서 Spring Batch를 사용하기 위해서는, DB에 ..
이번글에서는 Spring Batch를 사용해 간단한 Batch Job을 수행해보도록 하겠습니다. 1. Spring Batch Project 먼저 Spring Batch Project를 생성하도록 하겠습니다. 저는 'Spring Boot 2'와 'Gradle'을 사용하겠습니다. SQL은 'JPA'를 사용하도록 하겠습니다. • Spring Boot 2 • Java 8 • Gradle • JPA Spring Intilizer를 사용해 각자 환경에 맞는 Spring Project를 생성합니다. 프로젝트 생성시 Spring Dependencies는 다음과 같이 선택합니다. 생성이 완료된 project의 build.gradle은 다음과 같습니다. build.gradle plugins { id 'org.springf..
이번글에서는 Batch Application에 대해 알아보도록 하겠습니다. 1. Batch Application Batch Application이란 단발성으로 대용량의 데이터를 처리하는 어플리케이션을 의미합니다. 예를 들어 매일 전날의 대용량 데이터를 집계해 처리해야하는 단발성 비즈니스 로직이 필요하다면, 이를 Batch Application 으로 작성해 수행할 수 있습니다. 만약 이를 Batch Application으로 분리해 수행하지 않고, 실제 서비스를 수행하는 MVC 서버에서 처리하게 된다면 해당 집계처리를 위해 많은양의 CPU, I/O 등의 자원을 소모하게 됩니다. 반면 Batch Application으로 처리한다면 사용자들에게는 쾌적한 서비스를 제공할 수 있습니다. 또한, Batch 로직 수행..