← All Articles

JAVA SPRING BATCH

Posted on

[우아한테크세미나] 우아한형제들 이동욱님

190926 우아한스프링배치

spring ver. 4.0이상은 xml 기반이 아니라 java config 기반 이다.

배치 애플리케이션이란?

배치 처리는 컴퓨터에서 사람과 상호작용 없이 이어지는 프로그램 작업들이다.
웹과 배치는 지향점이 다르다.
web : 상호작용(interaction) 이 일어난다. (실시간 처리 / 상대적 인속도 / QA 용이성)
batch : 상호작용(interaction) 이 이 없이 한번의 요청으로 끝. (후속 처리 / 절대적인 속도 / QA 복잡성)

  • batch 테스트 코드를 꼭 짜자

batch 애플리케이션이 필요한 상황

  • 일정 주기로 실행되어야 할때
  • 실시간 처리(web api)가 어려운 대량의 데이터를 처리할때

spring batch 와 quartz

quartz 는 스케쥴링 프레임워크
ex : 매시간 / 마지막 주 금요일에 실행
quartz 로 배치를 돌리는건 가능, 자바코드를 짤수도 있음 하지만 batch 애플리케이션이라고 부르긴 어렵다. 커밋 사이즈(chunk size)나 조회 사이즈를 프레임워크 레벨에서 지원을 해준다.
quartz 는 단순 스케쥴러 이므로 그렇지 못하다.
quartz 는 spring batch 의 보안제 이지 대체제는 아니다.

spring batch 는 외부에서 파라미터를 주입받아 batch 컴포넌트에서 사용 할 수 있다.
이를 JobParameter 라고 한다.
JobParameter는 Long / String / Double / Date 타입들을 모두 지원한다.
하지만 Enum / LocalDate / LocalDateTime 은 지원 안된다. -> 하여 매번 형변환이 필요하다.

@Value 의 특성을 이용하자.
새 class 생성후 setter 메소드를 작성하여 이후 getter 로 사용한다.