본문 바로가기

정보처리기사 실기/02. 응용SW엔지니어링

[2020 정보처리기사 실기 - 서버 프로그램 구현] 4. 배치 프로그램 구현하기

 

 

* 배치 프로그램 구현

 

1) 대용량의 데이터를 일괄적으로 처리하는 배치프로그램 구현의 만족 조건

   - 데용량 데이터 

   - 자동화 : 심각한 오류 상황 외에는 사용자 개입 없이 동작

   - 견고함 : 유효하지 않은 데이터에 대해서도 비정상적인 실행 중단이 발생하면 안됨

   - 신뢰성 : 묹의 원인이나 문제 발생 지점을 추적할 수 있어야 함

   - 성능 : 주어진 시간 내에 처리를 완료해야 하고, 같은 시점 실행 중인 다른 어플리케이션을 방해하면 안됨

 

2) 위 조건을 만족하기 위해 배치 프로그램은 여러 기능을 공통적으로 포함

     (비즈니스 로직, 데이터 입출력, 리소스 관리, 로깅, 리부팅, 건너뛰기 등)

   - 공통 기능을 제공하는 프레임워크가 많이 등장, 스프링 배치가 대표적 

   - 스프링배치는 어플리케이션, 배치 코어, 배치 인프라 3개의 영역으로 구성

       어플리케이션 : 비즈니스 로직을 처리하는 배 치 작업과 사용자 정의 코드

       배치 코어 : 배치 작업을 실행하고 제어, 모니터링하는데 필요한 기능

       배치 인프라 : 로깅이나 데이터 입출력 등과 같은 어플리케이션과 배치 코어에서 공통되게 사용하는 서비스 기능

 

 

* 배치 스케줄러

 

1) 배치 프로그램을 통한 일괄처리는 주기적으로 동작하거나 특정 이벤트 발생 시 반복적으로 수행

      이런 배치 프로그램을 일정한 규칙에 따라 실행하도록 지원하는 것이 배치 스케줄러

   - 윈도우 os 에서는  작업 스케줄러를 사용하여 배치 작업을 자동화 할 수 있음

   - UNIX/LINUX 환경에서는 정해진 시간 또는 특정 시간마다 작업을 실행해주는 CRON을 스케줄러로 사용

   - Quartz는 오픈소스 스케줄러로 스프링배치와 통합하여 많이 사용

      기본 요소 : scheduler, job, jobDetail, Trigger