Batch 개발환경 정리

오영선·2023년 3월 9일
0

haedal-health 프로젝트를 개발 중 batch 관련 api가 필요해 batch 서버 개발을 연습해보고자 조사하게 되었다.

batch 란?

사용자의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄처리하는 것

배치 프로그램의 필수 요소

  • 대용량 데이터
    대용량의 데이터를 처리할 수 있어야 함
  • 자동화
    심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 함
  • 견고함
    유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 함
  • 안정성
    어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 함
  • 성능
    주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 함

과거 데이터에 대한 수정이 절대 일어나지 않는 서비스라면 배치를 사용해도 좋다.

스프링 Batch에 대해 더 알고싶다면 :
http://yongku.tistory.com/entry/%EC%8A%A4%ED%94%84%EB%A7%81-%EB%B0%B0%EC%B9%98Spring-Batch%EC%99%80-Quartz

배치 스케쥴러 종류

  1. Spring Batch
  • 스프링 프레임워크 기반
    DI, Dependency Injection, AOP; Aspect Oriented Programming 및 다양한 엔터프라이즈 지원 기능 사용
  • 자체 제공 컴포넌트
    배치처리(데이터베이스나 파일로부터 데이터를 읽거나 쓰는 등) 시 공통적으로 필요한 컴포넌트를 제공
  • 견고함과 안정성
    선언적 생략과 처리 실패 후 재시도 설정을 제공
  1. Quartz
    Spring Framework에 플러그인되어 수행하는 Job과 실행스케줄을 정의하는 Trigger를 분리하여 유연성을 제공하는 오픈소스 스케줄러

출처
https://hyeonukdev.github.io/2020/05/10/Engineer_Information_Processing/ch15_%EC%84%9C%EB%B2%84%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EA%B5%AC%ED%98%84/%EB%B0%B0%EC%B9%98%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8%EA%B5%AC%ED%98%84/%EB%B0%B0%EC%B9%98%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%A8/
http://developyo.tistory.com/251

0개의 댓글