배치프로그램은 사용자와의 상호 작용 없이 여러작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것!
자동으로 수행되는 주기에 따라서 3가지로 분류 됩니다
정기배치 : 일, 주, 월과 같이 정해진 기간에 정기적으로 수행 | |
이벤트성 배치 : 특정 조건을 설정해두고 조건이 충족될때만 수행 | |
On-Demad 배치 : 사용자 요청시 수행 |
배치 프로그램이 갖추어야 하는 요소
- 대용량 데이터 : 대량의 데이터를 가져오거나, 전달, 계산하는 등의 처리가 가능해야한다
- 자동화 : 심각한 오류가 발생하는 상황을 제외하고는 사용자의 개입 없이 수행
- 견고성 : 잘못된 데이터나 데이터 중복 등의 상황으로 중단되는 일이 없이 수행
- 안정성/신뢰성 : 오류가 발생하면 오류의 발생 위치, 시간 등을 추적할수 있어야한다.
- 성능 : 다른 응용 프로그램의 수행을 방해하지 않아야 하고, 지정된 시간 내에 처리가 완료되어야한다.
그래서 배치프로그램을 언제 실무에서 사용하는데....🎶🎅🏾
주기마다 수행되는 백업 작업, 외부의 데이터베이스로부터 최신 자료를 갱신하는 작업 등 대용량의 데이터가 주기적으로 교환되는 업무에 주로 사용됩니다. 대용량의 데이터가 오가는 만큼 자원을 많이 차지하므로 업무에 방해되지 않도록 야간이나 새벽에 수행되도록 설정하세요!
Batch Scheduler (배치 스케줄러)
배치 스케줄러는 일괄처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지원해주는 도구인데요 특정 업무(job)를 원하는 시간에 처리할 수 있도록 지원한다는 특성때문에 잡 스케줄러(Job Scheduler)라고도 불립니다.
주로 사용되는 배치 스케줄러 : 스프링 배치, Quartz
🍕[Spring Batch]
Spring Source사와 Accenture사가 공동 개발한 오픈 소스 프레임워크
스프링 프레임워크의 특성을 그대로 가져와 스프링이 가지고 있는 다양한 기능들을 모두 사용할수 있다!
데이터 베이스나 파일의 데이터를 교환하는데 필요한 컴포넌트 제공
JOB | 수행할 작업 정의 |
Job Launcher | 실행을 위한 인터페이스 |
Step | Job처리를 위한 제어 정보 |
Job Repositiory | Step의 제어 정보를 포함하여 작업 실행을 위한 모든정보 저장 |
🍕[Quartz]
스프링 프레임워크로 개발되는 응용 프로그램들의 일괄 처리를 위한 다양한 기능을 제공하는 오픈 소스 라이브러리
수행할 작업과 수행 시간을 관리하는 요소들을 분리하여 일괄 처리 작업에 유연성을 제공한다
Scheduler | 실행 환경 관리 |
Job | 수행할 작업 정의 |
JobDetail | Job의 상세 정보 |
Trigger | Job의 실행 스케줄 정의 |
다음에도 IT 소소지식으로 찾아오겠습니다 그동안 안영희..~
의견을 남겨주세요