본문 바로가기

Spring/SpirngBatch

(4)
Spring Batch (4) - MetaData 앞서 다음과 같은 metadata 테이블을 보여드렸습니다. 이것을 하나하나 차근차근 설명해보겠습니다. 1) BATCH_JOB_INSTANCE Job Instance를 기록하는 테이블입니다. * Job Instance == 'Job 하나의 실행 단위/객체' 이 테이블은 Job Parameter에 따라 데이터가 생성되는 테이블입니다. 동일한 Job Parameter를 갖고있는 Job이 실행된다면, 이는 테이블에 기록되지 않습니다. 2) BATCH_JOB_EXECUTION 이 테이블은 Job Instance가 배치를 성공했는지, 실패했는지에 대한 여부를 담고 있는 테이블로 BATCH_JOB_INSTANCE의 부모테이블로 생각하시면 됩니다. 3) BATCH_JOB_EXECUTION_PARAMS Job Param..
Spring Batch (3) 🤩 Spring Batch 시스템을 만들어봅시다 ! SpringBoot 프로젝트는 IntelliJ를 사용하실 경우, 툴 내에서 생성이 가능합니다. 사용하지 않으실 경우, spring.io라는 공식 사이트를 이용하시면 편리하게 생성하실 수 있습니다. 해당 포스트는 조졸두님의 jojoldu.tistory.com/325?category=902551 포스트를 기반한 포스트입니다. 먼저, 정말 정말 정말 * 100 간단한 배치 시스템을 만들어보겠습니다. 일단 BatchApplication.java에 @EnableBatchProcessing 어노테이션을 추가하여 Spring Batch가 동작할 수 있는 어플리케이션으로 만들어주어야 합니다. import org.springframework.batch.core.conf..
Spring Batch (2) 🤔 Step을 처리하는 방식 1. Tasklet 방식 : 잘 사용하지 않는 방식이긴 합니다. Input/Output에 대한 process가 없는 단순 통계, 일반적인 Query 수행과 같은 간단한 Batch에 사용하곤 합니다. Chunk의 ItemReader, ItemProcessor, ItemWirter의 과정을 단일 작업으로 인식하여 Step을 수행합니다. 2. Chunk 방식 : 지정한 Chunksize에 맞게 ItemReader, ItemProcessor, ItemWirter로 나눠 Step을 처리하는 방식입니다. 정리하자면, Spring Batch에서는 Job이 있는데요. 이 Job은 여러개의 Step으로 구성되고, Step 은 Tasklet || Chunk로 구성된다고 생각하시면 됩니다. 🤔 ..
SpringBatch Batch Application 이란? 사용자의 개입없이 원하는 동작을 '일괄적으로 처리'한다는 의미이다. 매일 전날의 데이터를 집계해야 하는 상황을 위하여 API를 구성한다면 방대한 양의 데이터를 읽고 가공한다면 해당 서버는 순식간에 CPU, I/O 등의 자원을 다 소비하여 Request를 받지 못하는 현상이 발생 5만번째에서 실패했다면 처음부터 다시 시작 누군가 이미 집계함수를 실행하여 집계함수를 2번 실행 위와 같은 문제 해결을 위해 한번에 대용량의 데이터를 처리하는 어플리케이션을배치 어플리케이션이라고한다. 배치 어플리케이션의 조건 대용량 데이터 - 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리 가능해야 함. 자동화 - 심각한 문제 해결을 제외하고는 사용자 개입 없이 실행되어야 함. ..