예제로 배우는 핵심 Spring Batch

Ch01. 배치작업과 스프링 배치의 구조

webmaster 2023. 5. 19. 17:33
728x90

배치 작업이란?

실시간 작업
배치 작업

  • 실시간 작업과 대치되는 작업으로 한 번에 모아서 처리하는 작업들의 모임
  • 배송, 은행/가맹점의 정산 작업 같은 경우 실시간으로 처리되지 않고 모아서 처리가 된다.
  • 배치 작업은 고객의 눈에는 보이진 않지만, 배치 작업이 서비스 주기마다 일정하게 실행되고 있으며, 실시간 작업만큼 중요한 작업이다.

배치 작업이 필요한 예시

  • 이메일 쿠폰 발송
  • 가맹점 정산
  • 거래 명세서 생성
  • 추천 시스템 데이터 작업

스프링 배치로 작업이 필요한 이유

  • 풍부한 기능
    • 파일이나 JSON 과 같은 데이터를 읽어올 수 있도록 풍부한 기능을 제공한다
  • 일관성 된 코드
    • 배치작업은 가공된 데이터를 읽고 쓰는 작업이 일관되어 있기 때문에 스프링 배치를 사용하면 일관된 코드를 작성할 수 있다
    • 트랜젝션과 같은 기능도 제공이 가능하고, 유지보수도 편리하게 할 수 있다
  • 기존 서비스가 스프링 프레임워크로 되어 있는 경우 호환 가능
    • 기존 작업을 스프링 프레임워크로 되어 있던 경우 좀 더 쉽고 빠르게 작업이 가능하다.

스프링 배치로 작업이 필요한 이유

스프링 배치 구조

  • JobRepository: 배치가 수행될 때 수행되는 메타 데이터를 관리하고, 시작/종료 시간등 잡 상태가 저장이 된다.
  • JobLauncher: 잡을 실행 시켜준다.
  • Job: 하나의 배치 작업
  • Step: 세부 작업 내용
    • 하나의 잡에 여러 개의 Step이 있을 수도 있다.
728x90