Spring

Spring Batch 원리와 철학 이해

jolocal 2024. 2. 10. 13:52
728x90

 

1. 배치 프로그램이란 무엇인가?


2. 배치 사용 예

  • 정산 시스템
  • 데이터 마이그레이션  ( 기존 데이터를 특정 요구사항에 의해 다른 테이블, 다른 DB로 이동 )
  • 약관 변경 메일
  • 통계
  • 게임 랭킹
  • 쇼핑몰 배송 요청
  • 등등

 

3. 배치의 특징

  • 자원을 효율적으로 사용
    • 대량의 데이터를 실시간으로 매번 처리하는것은 값비싸고 크게 의미가 없는 행위 그래서 배치처리를 통해 한번만 처리하고 결과물을 캐시하여 사용자게에 제공할 수 있음.
    • 사용자가 없는 다시 말해 자원이 많은 야간 시간대에 배치를 돌림으로써 풍족한 자원 활용할 수 있다.

 

  • 대량의 데이터 처리
  • 주로 정해진 시간에 반복적으로 자동 실행  ex) 정산시스템 일간,주간,월간
  • 사용자와의 상호작용 없이도 동작 ex) 약간 변경 메일 전송
  • 실시간성 결핍
  • 잘못 동작하면 큰 문제가 됨

 

배치 사용 시나리오

 

1. Reads : 데이터베이스 파일 또는 큐로 부터 대량의 데이터를 읽어들인다.

2. Processes : 읽어들인 데이터를 변환하거나 처리한다.

3.Writes: 변환되거나 처리된 데이터를 작성하거나 저장한다.

 

 

예) 배송 배치 처리에 접목한 예

 

사용자들이 상품을 구매하게 되면, 데이터베이스에 구매한 정보를 구매완료와 같은 상태로 저장한다.

그리고 특정 시간을 배치가 돌게되면 배치 서버는 DB에서 당일 주문이 완료된 건에 대해서 데이터를 Read 합니다.

그리고 배송사에 보내야하는 데이터 형식으로 Process 가공한 후 배송사에 배송 요청을 Write 합니다.


스프링 배치란?

 

스프링 배치 특징

  • Spring - DI, IoC, 서비스 추상화, AOP
  • 대용량 데이터 처리 - 최적화, Chunk 기반 처리
  • 성능 - 파티셔닝, 병렬, 최적화
  • 견고성 - 예외 상황에 대한 방어 코드 지원
  • 신뢰성 - 로깅 및 추적, 작업 처리 통계, 트랜잭션 관리 등

 

728x90