• [2020 정보처리기사 실기] Section 05 . 서버 프로그램 구현(3/3)

    2020. 4. 17. 19:16

    by. 위지원

    이전글

    2020/04/17 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 05 . 서버 프로그램 구현(2/3)

    서버개발

     

    1. 서버개발 프레임워크

    • 서버 개발은 웹어플리케이션의 로직을 구현할 서버 프로그램을 제작하여 WAS에 탑재하는 것
    • 서버 개발 프레임워크의 대부분은 model-view-controller(MVC) 패턴을 기반으로 함
    프레임 워크 기반 언어 특징
    Spring JAVA 전자정부 표준 프레임워크의 기반 기술
    Node.js JavaScript 기반, 실시간 입출력이 빈번한 애플리케이션에 적합
    Django Python 컴포넌트의 재사용과 플러그인화 강조
    Codeigniter PHP 인터페이스가 간편하며 서버자원을 적게 소모
    Ruby on Rails Puby 테스트를 위한 웹서버 지원

    2. 프레임 워크의 특성

    • 모듈화
    • 재사용성
    • 확장성
    • 제어의 역흐름 : 개발자가 관리,통제 해야하는 객체 제어권한을 프레임워크에 넘겨 생산성 향상

     

    서버 개발 과정

    서버 개발은 DTO/VO, SQL, DAO, Service, Controller를 각각 구현하는 과정을 통해 이루어짐

     

    1. DTO(Data Transfer Object)/ VO((Value Object) 구현

    DTO/VO 구현은 데이터 교환을 위해 사용할 객체를 생성하는 과정

    • DTO : 데이터 교환을 위해 생성되는 객체
    • VO : DTO와 동일하지만 읽기만 가능, 수정 불가

     

    2. SQL 구현 

    XML 파일로 저장하여 관리할 수 있는데, 이러면 중복SQL문을 최소화하고 유지보수가 간편해짐

     

    3.DAO(Data Access Object) 구현

    데이터베이스에 접근하고, SQL을 활용하여 데이터를 실제로 조작하는 코드 구현

    • DAO : DB에 접근하여 데이터를 조회/생성/수정/삭제 작업을 수행하는 객체

     

    4. Service 구현

    사용자의 요청에 응답하기 위한 로직 구현

     

    5. Controller 구현

    사용자의 요청에 적절한 서비스를 호출하여 그결과를 사용자에게 반환하는 코드 구현

     

    배치 프로그램

     

    1. 배치프로그램이란

    • 사용자와의 상호작용 없이 여러작업들을 미리 정해진 일련의 순서에 따라 일괄적으로 처리하는 것
    • 수행 주기에 따라 아래와 같이 구분
    정기 배치 일, 주, 월과 같이 정해진 기간에 정기적으로 수행
    이벤트성 배치 특정 조건을 설정해두고 조건이 충족될 때 수행
    On-Demand 배치 사용자 요청시 수행

     

    • 배치 프로그램의 필수 요소
    대용량 데이터 대용량 데이터 로드, 전달, 계산등의 처리가 가능
    자동화 심각한 오류빼고는 사용자 개입 없이 수행
    견고성 잘못되거나 중복된 데이터로 상황이 중단되어서는 안됨
    안전성/신뢰성 오류를 추적할 수 있어야함
    성능 다른 프로그램 수행 방해하지말고 정해진 시간내에 처리 가능

     

    2. 배치 스케쥴러

    일괄 처리 작업이 설정된 주기에 맞춰 자동으로 수행되도록 지우너해주는 도구, 잡 스케쥴러라고도 불림

    • 스프링 배치 : Spring Source 사와 Accenture사가 2007년 공동 개발한 오픈 소스 프레임워크
      • 스프링 프레임워크의 특성을 그대로 가져옴
      • 주요 구성 요소
        • Job : 수행할 작업 정의
        • Job Launcher : 실행을 위한 인터페이스
        • Step : Job 처리를 위한 제어 정보
        • Job Repository : Step의 제어정보를 포함하여 작업 실행을 위한 모든 정보 저장
    • Quartz : 스프링 프레임워크로 개발되는 응용프로그램들의 일괄 처리를 위한 다양한 기능 제공
      • 주요 구성 요소
        • Scheduler : 실행 황경 관리
        • Job
        • JobDetatil
        • Trigger : Job의 실행 스케줄 정의
    • Cron : 리눅스 스케쥴러 도구, crontab 명령어를 통해 작업 예약 가능
      • 펴ㄴ집기에서 요일, 월, 일, 시, 분을 기준으로 명령어 지정
      • 옵션
        • -e : 편집기를 호출하여 작업 추가 및 수정
        • -l : 작업 목록 출력
        • -r : 작업 삭제
      • 분 시 일 월 요일 명령어
      • 예시 
        • * * * * * /root/com_1.sh -> 매월 매일 매시 매분마다 com_1.sh 실행
        • 30 1 * * * /root/com_2.sh -> 매월 매일 1시 30분에 com_2.sh 실행
        • 30 */3 * * * /root/com_1.sh -> 매월 매일 0:30부터 3시간마다 com_1.sh 실행 
          • 나누기를 하면 나눈 나머지가 0일때마다 명령어 수행
        • * 10-23 20 * * /root/com_1.sh -> 매월 20일 18-23시 사이에 매분마다 com_1.sh 실행
        • 30 23 25 4,8,11 * /root/com_1.sh -> 4/8/11월의 25일 23시 30분에 com_1.sh실행

     

    다음글

    2020/04/20 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 06. 화면 설계(1/2)