스프링 배치 가이드

오동근·2023년 1월 14일
0

batch

목록 보기
4/5
  • 기본적인 배치의 코드
    @Slf4j// log 사용을 위한 lombok 어노테이션
    @RequiredArgsConstructor// 생성자 DI를 위한 lombok 어노테이션
    @Configurationpublic class SimpleJobConfiguration {
        private final JobBuilderFactory jobBuilderFactory;// 생성자 DI 받음private final StepBuilderFactory stepBuilderFactory;// 생성자 DI 받음@Beanpublic Job simpleJob() {
            return jobBuilderFactory.get("simpleJob")
                    .start(simpleStep1())
                    .build();
        }
    
        @Beanpublic Step simpleStep1() {
            return stepBuilderFactory.get("simpleStep1")
                    .tasklet((contribution, chunkContext) -> {
                        log.info(">>>>> This is Step1");
                        return RepeatStatus.FINISHED;
                    })
                    .build();
        }
    }

Job → Step

이전 과정에서 굉장히 간단하게 Spring Batch가 수행되었습니다. Spring Batch는 어플리케이션 코드만 작성하면 되는구나! 라고 생각하실 수 있으실텐데요.실제로는 그렇지 않습니다.Spring Batch에선 메타 데이터 테이블들이 필요합니다.

메타 데이터란, 데이터를 설명하는 데이터라고 보시면 됩니다.

Spring Batch의 메타 데이터는 다음과 같은 내용들을 담고 있습니다.

  • 이전에 실행한 Job이 어떤 것들이 있는지
  • 최근 실패한 Batch Parameter가 어떤것들이 있고, 성공한 Job은 어떤것들이 있는지
  • 다시 실행한다면 어디서 부터 시작하면 될지
  • 어떤 Job에 어떤 Step들이 있었고, Step들 중 성공한 Step과 실패한 Step들은 어떤것들이 있는지

등등 Batch 어플리케이션을 운영하기 위한 메타데이터가 여러 테이블에 나눠져 있습니다.

메타데이터 구조 예시

Job Instance, Job Execution을 간략히 나타내는 그림

profile
꾸준히 열심히

0개의 댓글