SpringBatch

오동근·2023년 1월 3일
0

BE

목록 보기
1/3

https://devbksheen.tistory.com/m/284

SpringBatch란?

Spring Boot Scheduler @Scheduled 이용한 Batch 작업 :: Copy Coding (tistory.com)

@Scheduled 어노테이션

Spring Boot + Spring Batch Scheduler(2022) Hello World Example | CodeUsingJava

Spring boot batch Scheduler cron example 구글 검색하면 예시 나오는듯

Spring Batch

스프링부트 공식문서. 놀랍게도 샘플파일이 있다. 오라클, postgre, 몽고db등 다양한 설정을 보여준다.

Spring Batch - Reference Documentation

[20210915] Spring Boot Batch (Maven) 프로그램 제작기 - 스프링 배치 예제 소스 (tistory.com)

  • @Slf4j(Simple Logging Facade for Java)는 자바 로깅 모듈 어노테이션이라고 한다.
  • [Maven] Maven 이란? (정의, 예제) (tistory.com) 스프링 배치의 많은 예시에서 프로젝트 관리 도구로 Maven을 사용하는 것 같다. 해외에서 Maven 많이 쓰나?
implementation('org.springframework.boot:spring-boot-starter-batch')
//Gradle 써도 상관없을듯?

Spring Container

먼저 bean 을 이해하기 위해서 스프링 컨테이너(Spring Container 또는 Ioc 컨테이너라고 하기도 한다) 에 대해서 알아둘 필요가 있다.

자바 에플리케이션은 에플리케이션 동작을 제공하는 객체들로 이루어져있다.

이때, 객체들은 독립적으로 동작하는 것보다 서로 상호작용하여 동작하는 경우가 많다.

이렇게 상호작용하는 객체를 '객체의 의존성'이라고 표현한다.

스프링에서는 스프링 컨테이너가 객체들을 생성하고 객체끼리 의존성을 주입하는 역할한다.

그리고, 스프링 컨테이너가 생성한 객체들을 '빈'이라고 한다.

즉, 빈은 스프링에서 사용하는 어플리케이션 객체라고 이해할 수 있다.

Web vs Batch

[우아한테크세미나] **190926 우아한스프링배치 by 우아한형제들 이동욱님**

https://www.youtube.com/watch?v=_nkJkWVH-mo

[10분 테크톡] 라빈의 Spring Batch https://www.youtube.com/watch?v=1xJU8HfBREY

Web - 실시간 처리 / 상대적인 속도 / QA 용이성

Batch - 후속 처리 / 절대적인 속도 / QA 복잡

  • Quartz vs Batch Quartz는 스케쥴링 프레임워크
    • Quartz는 Spring batch의 보안제 역할, 대체제가 아니다
  • Batch Application이 필요한 상황
    • 일정 주기로 실행되어야 할 때
    • 실시간 처리가 어려운 대량의 데이터를 처리할 때

하루동안 쌓인 데이터를 실행

모든 데이터를 메모리에 쌓지 않는 조회 방식이 기본 방식

Job/ Step/ Tasklet

  • Spring Batch는 외부에서 파라미터를 주입 받아 Batch 컴포넌트에서 활용할 수 있다. 이를 JobParameter라고 한다.
  • Step 상위 스코프 → JobScope → JobParameter
  • Tasklet, Reader, Processor, Writer 에서 사용하는 StepScope

Jenkins 사용?

멱등성 : 연산을 여러번 적용하더라도 결과가 달라지지 않는 성질

오늘로만 잡으면 어제 데이터가 필요하면 어떡하지?

ㄴ 임시수정 & 임시 배포, 배치 돌리고 다시 롤백

원하는 날짜로 받기

profile
꾸준히 열심히

0개의 댓글