본문 바로가기
정보처리기사/필기

[정보처리기사] Part04-01-4. 배치 프로그램 구현

by 채연2 2022. 2. 15.

배치 프로그램

☞ 사용자와의 상호작용 없이 일련 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄로 처리하는 프로그램

 

    ▶필수 요소

        ▷ 대용량 데이터

            → 대용량 데이터 처리 가능해야 함

        ▷ 자동화

            → 심각한 오류 상황 외에는 사용자 개입 없이 동작해야 함

        ▷ 견고함

            → 유효하지 않은 데이터나 로직 수행 경우에도 예외 처리해서 비정상적인 동작 중단 발생하지 않아야 함

        ▷ 안정성

            → 어떤 문제가 생겼는지, 언제 발생했는지 등 추적 가능해야 함

        ▷ 성능

            → 주어진 시간 내 처리 완료 가능해야 하고, 동시 동작하고 있는 다른 애플리케이션 방해하지 않아야 함

 


배치 스케줄러

☞ 일괄 처리 위해 주기적으로 발생하거나 반복적으로 발생하는 작업을 지원하는 도구

 

    ▶종류

        ㄱ. 스프링 배치(Spring Batch)

            → 2007년 탄생한 배치 작업 지원하는 오픈소스 프레임워크

 

            ▷ 특징

                a. 스프링 프레임워크 기반

                    → 의존성 역전 원칙, 관심사 분리 등 다양한 엔터프라이즈 지원 기능 사용

                b. 자체 제공 컴포넌트

                    → 배치 처리 시 공통적으로 필요한 컴포넌트 제공

                c. 견고함과 안정성

                    → 선언적 생략, 배치 처리 실패 시 재시도 설정 기능 제공

 

            ▷ 핵심 컴포넌트

                a. Job Repository

                    → Job Execution 관련 메타데이터 저장하는 기반 컴포넌트

                b. Job Launcher

                    → Job Execution 실행하는 기반 컴포넌트

                c. JPA (Java Persistence API)

                    → 페이징 기능 제공

                d. Job

                    → 배치 처리 의미하는 애플리케이션 컴포넌트

                e. Step

                    → Job 각 단계 의미. 배치 Job은 일련의 연속된 Step으로 구성

                f. Item

                    → Data Source 읽거나 저장하는 각 레코드 의미

                g. Chunk

                    → 특정 크기 갖는 아이템 목록 의미

                h. Item Reader

                    → 데이터 소스에서 아이템 읽어 들이는 컴포넌트

                i. Item Processor

                    → Item Reader로 읽어 들인 아이템을 Item Writer 사용해 저장하기 전에 처리하는 컴포넌트

                j. Item Writer

                    → Item Chunk를 데이터 소스에 저장하는 컴포넌트

 

        ㄴ. 쿼츠 스케줄러 (Quartz Scheduler)

            → 스프링 프레임워크에 플러그인되어 수행하는 잡과 실행 스케줄 정의하는 트리거 분리하여 유연성 제공

 


배치 프로그램 구현

☞ 애플리케이션 설계 기반으로 배치 프로그램 확인

    1. 프로그램 관리 대장 확인

    2. 배치 설계서 확인

    3. 프로그램 관리 대장 ID와 일치하는 배치 설계 확인

    4. 애플리케이션 설계 기반으로 배치 프로그램 구현

    5. 배치 프로그램 구현 위한 SQL 작성

    6. 배치 프로그램 구현 위한 I/O 오브젝트 정의

    7. 배치 프로그램 구현 위한 데이터 접근 오브젝트 작성

    8. 배치 프로그램 구현 위한 스케줄러 클래스 작성

320x100

댓글