스프링 배치 개념

오동근·2023년 1월 14일
0

batch

목록 보기
3/5

1. Spring Batch 가이드 - 배치 어플리케이션이란? (tistory.com)

향로님의 가이드를 쭉 보고 간략히 정리

1. Spring Batch란?

  • Batch란?

배치(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는 자원 관리 시스템이라고 생각하시면 됩니다. ERP 솔루션으로 유명한 것은 SAP가 있습니다.

재무팀의 요구사항으로 매일 매출 현황을 ERP로 전달해야하는 상황에서 Spring Batch가 많이 사용됩니다. 매일 아침 8시에 ERP에 전달해야할 매출 데이터를 전송해야 한다면 아래와 같은 구조로 쉽게 구현할 수 있습니다.

profile
꾸준히 열심히

0개의 댓글