ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • (정보처리기사 실기) 서버 프로그램 구현
    정보처리기사/실기 2020. 7. 20. 22:59

    개발환경 구축

    개발 환경 구축 : 개발 환경 구축시 요구사항의 명확한 이해가 필요, 개발 도구와 서버의 선정이 이루어져야한다.

    (사용 편의성, 성능, 라이선스 수)

     

    개발 도구의 분류

    -빌드 도구 : 작성한 코드의 빌드 및 배포를 수행 

    -구현 도구 : 코드 작성, 디버깅, 수정 등을 지원

    -테스트 도구 : 코드의 기능 검증, 품질을 높이기 위해 사용

    -형상 관리 도구 : 산출물에 대한 버전관리를 위한 도구

     

    하드웨어 개발 환경

    서버 하드웨어 개발 환경

    - 웹 서버 : http를 이용한 정적 콘텐츠 처리

    - 웹 애플리케이션 서버(WAS) : 동적 컨테츠(JSP, Servlet) 처리를 위해 사용

    -데이터베이스 서버 : 데이터 수집, 저장 용도

    -파일 서버 : 파일 저장을 위한 물리 저장장치를 활용

     

    클라이언트 하드웨어 개발환경

    -클라이언트 프로그램 : 설치를 통해 사용자와 커뮤니케이션을 함

    -웹 브라우저 : 웹 애플리케이션 응답시 브라우저를 통해 사용자와 커뮤니케이션

    -모바일 앱 : 모바일 디바이스에 설치되어 활용되는 어플리케이션

    -모바일 앱 : 모바일 웹 상의 웹 브라우저를 통해 서비스 제공

     

    소프트웨어 개발 환경

    -운영체제 : 하드웨어를 사용자 관점에서 편리하고 유용하게 사용하기 위한 소프트웨어

    -미들웨어 : 컴퓨터와 컴퓨터 간의 연결을 쉽고 안전하게 할 수 있게 해주고 이에 대한 관리를 도와주는 소프트웨어 

    -DBMS :  정보를 생성해주고, 데이터 베이스를 관리해주는 소프트웨어

     

    형상관리 : 소프트웨어 개발을 위한 전체 과정에서 발생하는 모든 항목의 변경 사항을 관리

    - 가시성, 추적성, 무결성을 보장

    형상관리 절차

    형상 식별 - 형상 통제 - 형상 감사 - 형상 기록 

    형상 관리 베이스라인 : 개발 과정의 각 단계의 산출물을 검토, 평가, 조정, 처리 등 변화를 통제하는 시점 기준

     

    공통 모듈 구현

    공통 모듈 구현 : 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 성능을 향상시키고 유지보수를 효과적으로 하기 위한 공통 컴포넌트 구현 기법

    모듈 : 독립된 하나의 소프트웨어 또는 하드웨어 단위를 지칭하는 용어 

    모듈의 특징

    - 독립성을 가진다.

    -단독 컴파일, 재사용 가능

    -독립성이 높을 수록 모듈 수정시 다른 모듈에 영향이 적다

    -결합도는 낮게, 응집도는 높게 하는것이 좋은 모듈

     

    모듈화 기법

    -루틴 : 소프트웨어에서 특정 동작을 수행하는 코드로 기능을 가진 명령들의 모음

    -메인 루틴 : 메인 루틴은 서브 루틴을 호출

    -서브 루틴 : 메임 루틴에 의해 필요시 호출됨

     

    소프트웨어 모듈 응집도 : 모듈의 독립성을 나타내는 개념, 모듈 내부의 연관 정도

    응집도 유형

    우연적 응집도 : 모듈의 각 구성요소가 관련이 없음

    논리적 응집도 : 유사한 성격을 갖거나 특정 형태로 분류

    시간적 응집도 : 특정 시간에 처리 되어야 하는 활동

    절차적 응집도 : 구성요소들이 기능을 순차적으로 수행

    통신적 응집도 : 동일한 입력과 출력을 사용

    순차적 응집도 : 한 활동에서 나용 출력값을 다른 활동이 사용

    기능적 응집도 : 모든 기능이 단일한 목적을 수행

     

    소프트웨어 모듈 결합도 : 모듈 외부, 다른 모듈과의 연관도 또는 모듈간의 의존성

    결합도 유형

    내용 결합도 : 다른 모듈 내부의 변수나 기능을 다른 모듈에서 사용

    공통 결합도 : 파라미터가 모듈 밖에 선언 되어 있는 전역 변수를 참조

    외부 결합도 : 두 개의 모듈이 외부에서 도입된 데이터 포맷, 통신 프로토콜을 공유

    제어 결합도 : 단순 처리할 대상인 값만 전달 되는게 아니라 제어 요소가 전달

    스탬프 결합도 : 모듈간 배열이나, 객체, 구조등이 전달

    자료 결합도 : 모듈간의 인터페이스로 전되는 파라미터를 통해서만 모듈간 상호 작용이 일어남

     

    공통 모듈 구현 절차

    DTO/VO - SQL - DAO - Service - Controller - 화면 구현

    DTO/VO : 화면에서 전달받은 정보를 데이터베이스에 저장하는 객체

    DAO  :  데이터베이스에 추상 인터페이스를 제공하는 객체 

     

    MVC 패턴

    모델(model) : 애플리케이션이 무엇을 할지 정의

    뷰(view) : 화면에 무엇인가를 보여주기 위한 역할

    컨트롤러(controller) : 모델이 어떻게 처리할지를 알려주는 역할

     

    팬인(Fan-In) , 팬아웃(Fan-Out)

    팬인(Fan-In) : 모듈을 제어(호출)하는 모듈의 수

                         자신의 모듈에 들어오면 팬인

    팬아웃(Fan-Out) : 모듈에 의해 제어(호출)되는 모듈의 수

                                  자신을 기준으로 모듈에서 나가면 팬 아웃

     

    공통 모듈 테스트

    -공통 모듈 테스트를 위해 IDE 도구를 활용

    -공통 모듈 테스트는 화이트 박스 테스트 기법을 활용

    대표적으로  Junit(자바용 단위 테스트 도구)

     

    공통 모듈 테스트의 종류

    -화이트 박스 테스트 : 내부 구조와 동작을 확인, 소스 코드를 보면서 수행

    -메서드 기반 테스트 : 공통 모듈의 외부에 공개된 메서드 테스트, 파라미터 호출 하면서 테스트 수행

    -화면 기반 테스트 : 화면 단위로 모듈 개발 후 직접 데이터를 입력하여 수행

    -테스트 드라이버 / 테스트 스텁 

    테스트 드라이버 : 하위 모듈은 있지만 상위 모듈이 없는 경우 수행

    테스트 스텁 : 상위 모듈은 있지만 하위 모듈이 없는 경우 수행

     

    서버 프로그램 구현

    DTO/VO : 화면에서 전달받은 정보를 데이터베이스에 저장하는 객체

    SQL문 구현 : VO에서 정의한 객체 정보에 맞춰 정보가 저장될 테이블 생성

    Mybatis XML 구현 

    Mybatis : 자바의 관계형 DB프로그래밍을 쉽게 할 수 있도록 도와주는 프레임워크

    DAO : 특정 타입의 데이터베이스에 추상 인터페이스를 제공하는 객체

     

    배치 프로그램 구현

    배치 프로그램 : 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리

    배치 프로그램 필수 요소 : 이벤트 배치, 온디메트 배치, 정기 배치

    이벤트(조건 충족시), 온디메트(요구시), 정기(정해진 시점)

     

    배치 스케줄러 : 일괄 처리를 위해 주기적으로 발생 하거나 반복

    배치 프로그램 유형 : 스프링 배치(대용량), 쿼츠 스케줄러(일괄처리) -> 둘다 스프링 프레임 워크

     

    Cron 표현식

    순서 : 초 - 분 - 시간 - 일 - 월 - 요일 - 연도

    특수문자 의미

    * : 모든 수

    ? : 해당 항목 미사용

    - : 기간 설정

    , : 특정 기간 설정

    / : 시작시간, 반복간격 설정

    L : 마지막 기간에 동작

    W : 가장 가까운 평일에 동작

    # : 몇 번째 주, 요일 설정

    ex) 0 0 12 * * *  : 매일 12시에 실행

         0 0 20 ? * MON-FRi : 월~금 20시 0분 0초에 실행

         0 0/5 14 * * * : 매일 14시에 시작해서 5분 간격으로 실행

     

    댓글

Designed by Tistory.