본문 바로가기

스터디스터디/정처기

[실기] 소프트웨어 구축- 배치프로그램 구현

최초 작성일: 2024-09-01

최종 작성일: 2024-09-01

목표 : 정처기 합격 및 CS 지식 쌓기

 

 

 

1.    배치 프로그램

(1)   배치의 개념

데이터를 일괄적으로 모아서 처리하는 대량의 작업을 처리

컴퓨터 흐름에 따라 순차적으로 자료를 처리하는 방식

배치 프로그램이란, 대량의 데이터를 모아 정기적으로 반복 처리하는 프로그램이다

(2)   배치프로그램의 필수요소

1)    대용량 데이터 : 대용량의 데이터를 처리 할 수 있어야 한다

2)    자동화: 심각한 오류 상황 외에는 사용자의 개입없이 동작해야한다

3)    견고함: 비정상적인 동작 중단이 발생하지 않아야 한다

4)    안정성: 어떤 문제가 발생했을떄 해당 문제를 추적하고 복구 할 수 있어야 한다

5)    성능: 주어진 시간에 작업을 완료 해야하고, 다른 애플리케이션의 동작을 방해하지 않아야 한다

(3)   스케쥴 관리 종류

1)    크론탭 : UNIX, LINUX 계열에서 사용/ 시간을 지정해 특정 명령을 자동 실행/ 크론탭 형식 , , , , 요일, 명령어

필드 의미 범위
첫 번째 0~59
두 번째 0~23
세 번째 1~31
네 번째 1~12
다섯 번쨰 요일 0~6 (0 은 일요일)
여섯 번째 명령어 실행할 명령

 

특수문자 설명
* 모든 값
? 특정 값이 아닌 어떤 값이든 상관 없음
- 범위를 지정할 때
, 여러 값을 지정할 때
/ 증분값 (~ 마다)

 

******명령 -> 매분 실행

30 4 **0  일요일 새벽 4 30분에

10-30 4 ***  새벽 4 10분부터 30분 까지 매분

분시일월요일

0,12,20,**** 매일 0, 12, 20

 

2)    Spring Batch

백엔드에서 배치 처리를 위한 프레임 워크

대용량, 고성능 배치 작업 지원

실패 지점부터 재시작 가능

Batch Job을 실핼시키기 위해서는 Quartz, Scheduler, Jenkins 등 전용 scheduler를 사용한다

구성요소: job, job launcher, step, job repository

3)    Quartz Job Scheduler : java 기반의 작업 스케줄러

(4)   배치 스케줄러 클래스 작성

1)    배치 설계서 확인

2)    DTO/VO 구현

3)    SQL 문 구현

4)    DAO 구현