개발/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
반응형