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

    2020. 4. 17. 15:33

    by. 위지원

    이전글

    2020/04/16 - [2020년도 상반기/정처기] - [2020 정보처리기사 실기] Section 04 . 통합 구현(3/3)

    개발 환경 구축

     

    1. 하드웨어 환경

    이름 내용
    웹 서버 - 클라이언트로부터 직접요청을 받아 처리하는 서버, 저용량의 정적 파일 제공
    / 기능
        - HTTP/HTTPS 지원 : 브라우저로부터 요청받아 응답시 사용하는 프로토콜
        - 통신 기록 : 처리 요청 로그 파일 기록
        - 정적 파일 관리 : HTML/CSS 등의 정적 파일 저장 및 관리
        - 대역폭 제한 : 트래픽 포화를 방지하기 위해 응답 속도 제한
        - 가상 호스팅 : 하나의 서버로 여러개의 도메인 이름 연결
        - 인증 : 사용자인증

    웹 어플리케이션 서버 - 사용자에게 동적 서비스 제공을 위해 웹 서버로부터 데이터 가공작업 수행
    - 웹서버/데이터베이스 서버 or 웹서버/파일서버 사이에 인터페이스 역할을 수행
    데이터 베이스서버 DB와 DBMS운영
    파일 서버 서비스 제공을 목적으로 유지하는 파일들을 저장

     

     

    2. 소프트웨어 환경

    시스템 소프트웨어 OS, WebServer, WASㅇ누용을 위한 서버 프로그램 DBMS등
    개발 소프트웨어 요구사항 관리 도구 요구사항 수집/분석 등을 편리하게 도와줌
    설계/모델링 도구 UML 지원
    구현 도구 개발 언어
    빌드 도구 소스의 빌드 및 배포, 라이브러리 관리
    테스트 도구 요구사항에 적합하게 구현되었는가?
    형상 관리도구 버전별로 관리하여 품질 향상 지원
    • 개발 언어의 선정기준
      1. 적정성 : 개발 목적에 적합한가?
      2. 효율성 : 코드 작성 및 구현이 효율적인가?
      3. 이식성 ; 다양한 시스템 및 환경에 적용이 가능한가?
      4. 친밀성 : 코드에 대한 개발자의 이해도와 활용도가 높은가?
      5. 범용성 : 다른 개발사례가 존재하고 여러분야에 활용되고 있는가?

     

    모듈

    1. 모듈의 개요

    모듈화를 통해 분리된 시스템의 각 기능들, 결합도는 낮고 응집도는 높게!

     

     

    2. 결합도

    결합도의 정도는 아래와 같음

     

    • 자료 : 모듈간의 인터페이스가 자료로만 구성
      • 모듈A ---(호출)--> 모듈B, 인수를 주고받으면서 결과 return
      • 모듈간의 내용을 전혀 알 필요 없음
      • 모듈간의 결합도가 전혀 없음 바람직 !
    • 스탬프(검인) : 모듈간의 인터페이스로 배열/레코드등의 자료구조가 전달될 때 
      • 두 모듈이 동일한 자료 구조를 조회하는 경우
      • 자료구조가 변하면 이를 조회하는 모듈/ 심지어 조회안해도 영향을 받음
    • 제어 : 모듈이 다른 모듈의 내부 논리흐름을 제어하기 위해 신호를 이용하여 통신하거나 제어요소를 전달(Function code Switch, Tag, Flag)
      • 한 모듈이 다른 모듈의 상세한 처리 절차를 알고 있어 이를 제어 하거나
      • 처리 기능이 두 모듈에 모두 분리 되거나
      • 하위가 상위 모듈을 제어하는 권리 전도현상이 발생할 수 있음 : 제어신호가 아래로 이동해서
    • 외부 : 데이터(변수)를 외부의 다른 모듈에서 참조
      • 참조 데이터의 범위를 각 모듈에서 제한 가능
    • 공통(공유) : 공유되는 공통 데이터 영역을 여러 모듈이 함께 사용할 떄 
      • 공통 데이터 바뀌면 모듈 모두 난리남 
    • 내용: 한 모듈이 다른 모듈의 내부 기능 및 자료를 직접참조 및 수정할 때
      • WOW 난리나 
      • 한 모듈에서 다른 모듈의 내부로 제어가 이동하는 경우에도 이에 해당

     

    3. 응집도

    정보 은닉 개념을 확장한 것, 모듈이 독립적인 기능으로 정의되어있는 정도

    • 기능 : 모든 기능 요소들이 단일 문제와 연관되어 수행
    • 순차 : 모듈 내의 하나의 활동 결과를 다음 활동의 데이터로 사용
    • 교환(통신) : 동일한 입/출력을 사용하여 서로 다른 기능을 수행하는 구성 요소들이 모임
    • 절차 : 다수의 관련 기능을 가질 때 그 기능을 순차적으로 수행
    • 시간 : 특정 시간에 처리되는 기능을 모아서 하나의 모듈로
    • 논리 : 유사한 성격을 갖거나, 특정 형태로 분류되는 처리 요소들로 하나의 모듈로
    • 우연 : 각 구성요소가 서로 관련 없음

     

    4. 팬인/팬아웃

    팬인은 높게 팬아웃은 낮게!

    • Fan-In : 모듈을 제어(호출)하는 모듈의 수
      • Fan-In이 높다는 것은 재사용이 좋다는 것
      • 단일 장애점이 발생할 수 있음 : 시스템 구성 요소중 동작하지 않으면 전체가 마비되는 요소를 단일 장애점이라고 함
    • Fan-Out : 모듈이 제어(호출)되는 모듈의 수
      • Fan-Out이 높다는 것은 불필요하게 호출이 많은것일 수도 있음

     

    다음글

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