정보
-
업무명 : 정보처리기사 실기 : 12강 서버 프로그램 구현 (배치 프로그램 구현하기)
-
작성자 : 이상호
-
작성일 : 2020-05-10
-
설 명 :
-
수정이력 :
내용
[배치 프로그램 구현]
[1] 배치 프로그램의 이해
-
1. 배치 프로그램의 개념
-
배치 프로그램이란 사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적 으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 것이다.
-
-
2. 배치 프로그램의 필수 요소
-
대용량 데이터
-
대용량의 데이터를 처리할 수 있어야 한다.
-
-
자동화
-
심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 한다.
-
-
견고함
-
유효하지 않은 데이터의 경우도 처리해서 비정상적인 동작 중단이 발생하지 않아야 한다.
-
-
안정성
-
어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 한다.
-
-
성능
-
주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다.
-
-
[2] 배치 스케줄러(Scheduler)
-
1. 배치 스케줄러의 개념
-
배치 스케줄러는 일괄 처리(Batch Processing)를 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구이다.
-
-
2. 배치 스케줄러의 종류
-
(1) 스프링 배치(Spring Batch)
-
스프링 배치는 Spring Source사와 Accenture사의 공동 작업으로 2007년에 탄생한 배치 기반 오픈소스프레임워크이다.
-
(가) 스프링 배치(Spring Batch)의 핵심 컴포넌트
-
-
-
(나) 스프링 배치(Spring Batch)의 핵심 기능
-
스프링 프레임워크 기반
-
스프링의 DI, AOP 및 다양한 엔터프라이즈 지원 기능을 사용한다.
-
자체 제공 컴포넌트
-
배치 처리(데이터베이스나 파일로부터 데이터를 읽거나 쓰는 등) 시 공통적으로 필요한 컴포넌트를 제공한다.
-
견고함과 안정성
-
선언적 생략과 처리 실패 후 재시도 설정을 제공한다.
-
-
(2) Quartz 스케줄러(Scheduler)
-
Quartz 스케줄러란 Spring Framework에 플러그인(Plug-in)되어 수행하는 Job과 실행 스케줄을 정의하는 Trigger를 분리하여 유연성을 제공하는 오픈소스 스케줄러이다.
-
(가) Quartz 스케줄러의 구성 요소
-
Scheduler
-
Quartz 실행환경을 관리하는 핵심 개체이다.
-
-
Job
-
사용자가 수행할 작업을 정의하는 인터페이스로서 Trigger 개체를 이용하여 스케줄할 수 있다.
-
-
JobDetail
-
작업명과 작업 그룹과 같은 수행할 Job에 대한 상세 정보 를 정의하는 개체이다.
-
-
Trigger
-
정의한 Job 개체의 실행 스케줄을 정의하는 개체로서 Scheduler 개체에게 Job 수행 시점을 알려 주는 개체이다.
-
-
-
(나) Quartz 스케줄러의 사용 예제
-
-
[수행]
[1] 애플리케이션 설계를 기반으로 배치 프로그램을 확인한다.
-
1. 프로그램 관리 대장을 확인한다.
-
아래 예시는 이순신 담당자가 구현해야 할 배치 기능을 확인한 예시이다.
-
-
2. 배치 설계서를 확인한다.
-
프로그램 관리 대장의 ID와 일치하는 배치 설계를 확인한다.
-
[2] 애플리케이션 설계를 기반으로 배치 프로그램을 구현한다.
-
1. 배치 프로그램을 구현하기 위한 SQL을 작성한다.
-
업무 종료가 된 사용자 정보를 조회 및 삭제하는 SQL 구문이다
-
-
2. 배치 프로그램을 구현하기 위한 I/O 오브젝트(DTO/VO)를 정의한다.
-
3. 배치 프로그램을 구현하기 위한 데이터 접근 오브젝트(DAO)를 작성한다
-
4. 배치 프로그램을 구현하기 위한 스케줄러 클래스를 작성한다.
[배치 프로그램 테스트]
[1] 디버그(Debug)와 디버거(Debugger)
-
1. 디버그(Debug)의 개념
-
디버그(Debug) 또는 디버깅(Debugging)은 컴퓨터 프로그램의 논리적인 오류(Bug)를 찾아내 는 과정을 말한다.
-
-
2. 디버거(Debugger)의 개념
-
디버거는 디버그를 돕는 도구이다. 디버거는 디버깅을 하려는 코드에 중단점을 지정하여 프로그램 실행을 중단하고, 코드를 단계적으로 실행하여 저장된 값을 확인 할 수 있도록 지원한다.
-
[1] 디버거(Debugger) 사용법
-
1. 디버그 뷰(Debug View)
-
2. 중단점(Break Pointer) 설정
-
편집기 왼쪽에 파란 부분(마커바)을 더블 클릭하거나 해당 위치에서 마우스 오른쪽을 클릭하여 `Toggle Breakpoint'를 선택한다
-
-
3. 디버그 모드(Debug Mode)에서의 스텝(Step) 단위 진행
-
(1) 디버그 모드로 실행 중 지정된 중단점에 오면 디버거에 의해 중단되고 라인 단위로 실행이 가능해진다.
-
-
(2) 디버그 뷰 버튼 사용법은 함수(Method) 안으로 진입하는 Step into, 함수 안으로 진 입하지 않는 Step Over 등의 기능으로 스텝 단위로 디버깅을 한다
[수행]
[1] 배치 프로그램 주기를 변경한다.
-
배치 스케줄(Schedule) 주기를 테스트가 가능한 주기로 변경하여 로그에 정상적으로 출력 되는지 확인한다. [그림 4-12] 배치 스케줄 주기가 변경된 스케줄러 클래스 구문 예시 위 예시는 테스트를 위해 @Scheduled 어노테이션(Annotation) 구문 지정으로 10초 주기로 배치 스케줄이 실행되게 구현한 예시이다.
[2] 배치 프로그램을 디버깅하여 정상적으로 동작하는지 검증한다.
-
배치 프로그램은 목표 시스템의 품질에 영향도가 높은 작업이므로 디버깅(Debugging)을 통 해 구문 확인이 필요하다.
-
1. 디버그 모드(Debug Mode)로 실행한다. 아래 예시는 디버그 모드로 실행하기 위해 붉은색 디버그 아이콘을 실행하는 예시이다
2. 검증할 코드 라인에 중단점(Break Point)를 지정하여 코드를 검증한다.
-
[3] 배치 프로그램의 로그를 확인한다.
[4] 목적 테이블에서 정상적으로 배치 프로그램이 실행되었는지 확인한다.
-
1. 배치 프로그램을 실행하기 전 데이터를 확인한다.
-
2. 배치 프로그램을 실행하였을 경우의 대상 데이터를 확인한다.
-
아래 예시는 업무 종료된 사용자 정보를 삭제하는 경우이다
-
-
3. 배치 프로그램을 실행한 후의 데이터를 확인한다.
[5] 배치 프로그램이 정상적으로 실행되지 않았을 경우 오류를 확인한다.
-
1. 데이터가 목적에 맞지 않게 처리된 경우는 참조 테이블의 데이터를 확인하여 오류를 확인한다.
-
2. 로그에 실패가 출력된 경우 디버깅을 통해 오류를 확인한다.
[연습문제]
-
배치 프로그램의 필수 요소에 대해 잘못 설명한 것은?
-
대용량 데이터 :대용량의 데이터를 처리할 수 있어야 한다.
-
견고함 :심각한 오류 상황 외에는 사용자의 개입 없이 동작해야 한다.
-
안정성 :어떤 문제가 생겼는지, 언제 발생했는지 등을 추적할 수 있어야 한다.
-
성능 :주어진 시간 내에 처리를 완료할 수 있어야 하고, 동시에 동작하고 있는 다른 애플리케이션을 방해하지 말아야 한다.
-
-
스프링 배치는 Spring Source사와 Accenture사의 공동 작업으로 2007년에 탄생한 배치 기반 오픈소스프레임워크이다. 핵심기능이 아닌것은?
-
스프링 프레임워크 기반
-
자체 제공 컴포넌트
-
견고함과 안정성
-
자동화
-
참고 문헌
[논문]
- 없음
[보고서]
- 없음
[URL]
- 없음
문의사항
[기상학/프로그래밍 언어]
- sangho.lee.1990@gmail.com
[해양학/천문학/빅데이터]
- saimang0804@gmail.com
본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
'자기계발 > 자격증' 카테고리의 다른 글
[자격증] 정보처리기사 실기 : 14강 인터페이스 구현 (인터페이스 기능 구현하기) (0) | 2020.05.10 |
---|---|
[자격증] 정보처리기사 실기 : 13강 인터페이스 구현 (인터페이스 설계서 확인하기) (0) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 11강 서버 프로그램 구현 (서버 프로그램 구현하기) (0) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 10강 서버 프로그램 (공통 모듈 구현하기) (0) | 2020.05.10 |
[자격증] 정보처리기사 실기 : 9강 서버 프로그램 (개발환경 구축하기) (0) | 2020.05.10 |
최근댓글