개발/spring-batch

[spring-batch] 소개

방푸린 2023. 12. 4. 10:26
반응형

Spring Batch 소개

  • Accenture 와 Pivotal이 협업하여 개발한 배치 프레임워크.
  • 정보를 가공하여 통계를 생성 시
  • 매우 큰 데이터를 주기적으로 처리해야 할 때
    • 일반적으로 전체 로그 데이터를 수집하고 통합하는 과정이 필요함.
    • e.g : DAU, WAU, MAU, WoW, QoQ, YoY
      • DAU, WAU, MAU : access log 데이터 추출 + unique 유저 계산
  • 내부/외부 시스템으로부터 생산된 다양한 형태의 데이터를 통합해야 할 때
    • 두개 이상의 데이터를 원하는 형태로 가공한 뒤, 조합하여 원하는 데이터를 생산.
    • e.g. CTR(클릭률 : Click Through Rate), CPC (클릭당 비용 : Cost Per Click), CVR(전환율 : Conversion Rate)
      • CTR == 클릭수 / 노출수 == access log 데이터 추출
      • CPC == 광고 집행비용 / 클릭수 == 비용 테이블과 access log 데이터 추출
      • CVR == 전환 수 / 클릭수 == 전환 계산에 필요한 로그 또는 테이블 + access log 데이터.
  • 배치 프로그래밍?
    • 배치 프로그램은 여러개의 작업으로 구성
    • 작업은 어러개의 단계로 구성
    • c.f. 젠킨스 파이프 라이닝, 데이터 파이프 라인, Airflow DAG Pipeline
      • A -> B -> C
      • 추상화; 플로우 강제; 등의 framework
    • 같은 단계들의 반복.

 

Why Spring Batch? - 기술적 목표

  • 스프링 배치 프레임워크의 기능을 사용하여 비지니스 로직에 집중한다.
  • 즉시 사용할 수 있는 (Out-of-box) 실행 인터페이스를 제공
  • 인프라 계층(DB Reader, Queue reader ..)과 구분되어 있음.

Why Spring Batch?

  • 스프링 배치(Spring Batch)는 스케줄링 프레임워크가 아님.
  • 스케줄링은 다른 도움을 받아서 해야한다..
    • 스케줄링 프레임워크 : Quartz, Tivoli, Control-M, and others
    • 스프링 프레임워크 : @Scheduled
    • 리눅스의 Crontab
    • Jenkins, Rundeck etc.
    • 스프링 배치 프레임워크 애플리케이션은 스케줄러와 함께 작동하도록 설계됨.
  • 스프링 프레임워크가 제공하는 기능들
    • Transaction management
    • Chunk based processing
    • Start/Stop/Restart
    • Retry/Skip
    • Job 처리 통계
    • Web based administration interface (Spring Cloud Data Flow)
      • 따로 모듈이 있다.
728x90
반응형