1. Spring Batch 가이드 - 배치 어플리케이션이란? (tistory.com)
향로님의 가이드를 쭉 보고 간략히 정리
배치(Batch)는 일괄처리 란 뜻을 갖고 있습니다
만약 매일 전 날의 데이터를 집계 해야 한다고 가정하면, 이를 API로 계속 불러와서 처리하는 것은 너무 낭비입니다. CPU/IO 등의 자원을 다 써버려서 다른 request도 수행하지 못할 것 입니다.
따라서 단발성으로 하루에 1번 수행 대용량의 데이터를 처리하는 어플리케이션을 배치 어플리케이션이라고 합니다.
배치 어플리케이션의 조건
배치 어플리케이션은 다음의 조건을 만족해야만 합니다.
Spring Batch
Spring Batch는 Spring의 특성을 그대로 가져왔습니다.
그래서 DI, AOP, 서비스 추상화 등 Spring 프레임워크의 3대 요소를 모두 사용할 수 있으면서, Accenture의 Batch 노하우가 담긴 아키텍처를 사용할 수 있습니다.
Batch는 RDBMS에게 메타데이터 등의 기능을 제공합니다. NoSQL로 어려울 수도 있을 것 같습니다.
많은 거래가 이루어지는 커머스 사이트의 경우 하루 거래건이 50만 ~ 100만까지 나옵니다.이럴 경우 이와 관련된 데이터는 최소 100만 ~ 200만 row 이상입니다.한달이면 5000만 ~ 1억까지 될수도 있습니다.
매일 새벽에 전날의 매출 집계 데이터를 만들어서 외부 요청이 올 경우 미리 만들어준 집계 데이터를 바로 전달하면 성능과 부하를 모두 잡을 수 있습니다.
https://t1.daumcdn.net/cfile/tistory/9995544C5B606DFE0F
대부분의 서비스에선 ERP를 사용하고 있습니다.
ERP는 자원 관리 시스템이라고 생각하시면 됩니다. ERP 솔루션으로 유명한 것은 SAP가 있습니다.
재무팀의 요구사항으로 매일 매출 현황을 ERP로 전달해야하는 상황에서 Spring Batch가 많이 사용됩니다. 매일 아침 8시에 ERP에 전달해야할 매출 데이터를 전송해야 한다면 아래와 같은 구조로 쉽게 구현할 수 있습니다.