Batch

개발 공부 중·2022년 9월 12일
0

Batch

목록 보기
1/1

배치 프로그램이란 여러 작업들이 미리 정해진 일련의 순서에 따라 일괄적으로 처리하도록 만든 프로그램입니다. 여기서 '배치'란 Batch를 그대로 읽은 것으로, '일괄적으로 처리되는 집단'이라는 뜻입니다.(특정 업무(Job)를 원하는 시간에 처리 할 수 있도록 지원한다는 특성 때문에 잡 스케줄러(Job Scheduler)라고도 불립니다.

  • 배치 프로그램의 필수 요소
    • 대용량 데이터 : 대량의 데이터를 가져오거나, 전달하거나, 계산하는 등의 처리가 가능해야 한다.
    • 자동화 : 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행되어야 한다.
    • 견고성 : 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일 없이 수행되어야 한다.
    • 안정성/신뢰성 : 오류가 발생하면 오류의 발생 위치, 시간 등을 추적 할 수 있어야 한다.
    • 성능 : 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야 한다.
  • 배치 프로그램(Batch Program)은 수행되는 주기에 따라서 구분해볼 수도 있습니다.
    • 정기 배치 : 일, 주, 월과 같이 정해진 기간에 정기적으로 수행
    • 이벤트성 배치 : 특정 조건을 설정해두고 조건이 충족될 때만 수행
    • On-Demand 배치 : 사용자 요청 시 수행

배치 스케줄러란 일관 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구입니다. '잡 스케줄러'라고도 불립니다.

  • 배치 스케줄러의 종류
    • Spring Batch
      Spring Source사와 Accenture 사가 2007년 공동 개발
      오픈 소스 프레임워크

      • Job : Batch에서 실행 가능한 실행 단위
      • JobLanuncher : Job을 실행하는 책임이 있다. JobRepository를 통해 Job, Step, Item* 등을 생성하고 조립
      • JobRepository : DB 또는 어딘가에 저장된 Job, Step 등을 조회(select) 또는 생성(insert), 수정(update)
      • Step : Job은 1개 이상의 Step을 포함(1:N) 할 수 있고, 하나의 큰 실행 단위가 Job이라면 Step은 Job의 통제를 받으며 Job 안에서 실행 가능한 Job보다 작은 실행 단위
      • ItemReader : 하나의 Step은 0 ~ 1개의 ItemReader를 포함하며, 데이터를 어디선가 (DB, file, memory 등) 조회하는 역할
      • ItemProcessor : 하나의 Step은 0 ~ 1개의 ItemProcessor를 포함하며, ItemReader를 통해 조회한 데이터를 중간에서 가공하는 역할
      • ItemWriter : 하나의 Step은 0 ~ 1개의 ItemWriter를 포함하며, ItemProcessor를 통해 가공된 데이터를 Write하는 역할(이름이 Writer 지만, 쓰기만 가능한 건 아니다.)
        -> 자세한 내용은 https://blog.woniper.net/356 참고
  • Quartz
    Spring Framwork로 개발되는 응용 프로그램들의 일괄 처리를 위해 사용
    오픈 소스 라이브러리
    (Quartz는 스케쥴러의 역할을 담당하고 있기 때문에 Batch처럼 대용량의 데이터 처리 기능은 지원하지 않는다.
    반대로 Batch에서는 스케쥴러의 기능이 없기 때문에 Quartz와 Batch를 조합해서 사용한다.)
  • Cron
    리눅스의 기본 스케줄러 도구
    crontab 명령어를 통해 작업을 예약 할 수 있음
    작업 예약 형식
    [분] : 0 ~ 59
    [시] : 0 ~ 23
    [일] : 1 ~ 31
    [월] : 1 ~ 12
    [요일] : 0(일요일) ~ 6(토요일)
    [명령어]

또 다른 Batch

  • AWS Batch의 장점
    • 컴퓨터 비용 절감
    • 용량 제한을 해소
    • 결과를 신속하게 제공
    • 배치 컴퓨팅 소프트웨어를 설치 또는 관리할 필요가 없어 결과 분석과 문제 해결에 집중 할 수 있다.

자료 출처
https://beluga9.tistory.com/127
https://m.blog.naver.com/gluestuck/221906741874
https://blog.woniper.net/356
https://blog.leedoing.com/191
https://docs.aws.amazon.com/ko_kr/batch/latest/userguide/what-is-batch.html
https://medium.com/@jimmyberg.kim/spring-batch-1-%EA%B8%B0%EB%B3%B8-%EA%B0%9C%EB%85%90-28220768ae87

profile
개발 공부 중

0개의 댓글