ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 2020 정보처리기사 실기 : Chapter 04
    Study/정보처리기사 2020. 9. 18. 14:49
    728x90

    Chapter 04 : 서버 프로그램 구현


    1. 개발 하드웨어 환경

    • 클라이언트 환경 구성
      • 서버에서 제공하는 서비스를 활용하기 위해 사용자와의 인터페이스를 제공하는 하드웨어
      • PC, 웹 브라우저 화면, 모바일 앱 등
    • 서버 환경 구성
    종류 설명
    웹 서버 서비스의 속도 향상을 위해 정적 파일들을 제공하는 웹 서버 애플리케이션이 설치되는 하드웨어
    (정적 파일 : HTML, CSS, 이미지 등)
    웹 애플리케이션 서버 동적 웹 서비스를 제공하기 위해 WAS와 서비스에 관련된 애플리케이션이 설치되는 하드웨어
    데이터베이스 서버 mySQL, Oracle 등 데이터베이스가 설치되는 하드웨어
    파일 서버 파일을 저장하고 공유하기 위한 파일 저장 하드웨어

    2. 개발 소프트웨어 환경

    • 시스템 소프트웨어
    종류 특성 예시
    운영체제 하드웨어 플랫폼과 공통 시스템 서비스 제공
    (상세 소프트웨어 명세는 벤더(Vendor)에서 제공)
    윈도우, 리눅스 등
    JVM
    (Java Virtual Machine)
    Java 관련 응용 프로그램을 기동하기 위한 주체  
    Web Server 정적 웹 서비스를 수행하는 미들웨어
    정적 파일을 제공
    Apache, Nginx, IIS, GWS 등
    WAS 웹 애플리케이션을 수행하는 미들웨어 Tomcat, Undertow 등
    DBMS 데이터베이스 소프트웨어 Oracle, mySQL 등

     

    • 개발 소프트웨어
    종류 특성 예시
    구현 도구 가장 많이 사용하는 도구
    코드의 작성, 편집, 디버깅 등 수행
    이클립스, 비쥬얼 스튜디오, 인텔리제이 등
    테스트 도구 소프트웨어 품질을 높이기 위해 사용
    코드 테스트, 테스트 결과 리포팅 및 분석 등 수행
    xUnit, Spring Test 등
    형상관리 도구 소스 코드, 산출물 등의 버전을 관리하기 위해 사용 CVS, Subversion, Git 등
    요구사항 관리도구 고객의 요구사항을 수집, 분석, 추적하기 쉽게 지원 JFeature, OSRMT 등
    설계/모델링 도구 논리적으로 기능을 결합하기 위해 UML 지원, DB 지원 등 설계 및 모델링을 지원하는 도구 ArgoUML, DB Desinger 등

    3-1. 형상관리 (SCM, Software Configuration Management)

    • 소프트웨어의 개발 과정에서 발생하는 산출물을 관리는 활동
    • 변경사항의 파악, 제어, 담당자에게 통보 등 수행

     

    3-2. 형상관리의 특징

    • 프로젝트 생명주기의 전 단계에서 수행하는 활동이다. 
    • 유지 보수 단계에서도 수행한다. 
    • 개발 비용을 줄이고, 문제점 요소를 최소화하는 것을 목적으로 한다. 

     

    3-3. 형상관리의 절차

    과정 설명
    형상 식별 형상관리의 대상 식별, 이름과 관리 번호 부여, 계층 구조로 구분하는 등의 베이스라인을 설정
    형상 통제 변경 요구를 검토, 승인하여 적절히 통제함
    형상 감사 베이스라인의 무결성을 평가하기 위해 확인, 검증 과정을 통해 공식적으로 승인하는 작업
    형상 기록 제대로 잘 반영되고 있는지 보고하는 절차, 보고서를 작성

    4. 공통 모듈

    • 정보 시스템의 구축 시, 자주 사용하는 기능들
    • 재사용이 가능하게 패키지로 제공하는 독립된 모듈

    5. 재사용 (Reuse)

    • 검증된 기능을 파악하고 재구성하여 시스템에 응용하기 위한 최적화 작업
    재사용 종류 설명
    함수와 객체 재사용 클래스 또는 함수 단위로 구현한 소스코드를 재사용
    컴포넌트 재사용 컴포넌트 단위로 재사용
    컴포넌트의 인터페이스를 통해 통신함
    애플리케이션 재사용 공통된 기능을 제공하도록 구현된 애플리케이션의 재사용

    4. CBD (Component Based Development)

    • 재사용 가능한 컴포넌트 개발 또는 상용 컴포넌트를 조합하여, 응용 시스템을 구축하는 방법론

    5. 소프트웨어 모듈 응집도 (Cohesion)

    • 모듈 내부 처리 요소 간 기능적 연관도를 나타내는 척도
    • 응집도가 높을수록 필요한 요소들로 구성되어 있음
    • 응집도가 낮을수록 관련이 적은 요소들로 구성되어 있음
    유형 설명 정도
    기능적 응집도 하나의 기능만 수행하는 모듈
    구조도 최하위 모듈에서 많이 발견됨
    높음
    순차적 응집도 모듈의 결과 값을 다른 모듈의 입력 값으로 사용
    예 : 행렬 입력 후, 그 행렬의 역행렬을 구해서 출력
     
    통신적 응집도 동일한 입력과 출력을 사용, 다른 기능을 수행
    예 : 같은 입력 값을 이용하여 A를 계산한 후, B를 계산
    절차적 응집도 모듈 안의 구성 요소들이 그 기능을 순차적으로 수행
    예 : Restart 루틴의 경우, 총계를 출력한 후 화면을 지우고 메뉴를 표시함
    시간적 응집도 같은 시간대에 처리해야 하는 활동들을 한 모듈에서 수행
    예 : 초기지 설정, 종료 처리 등
    논리적 응집도 유사한 성격 또는 특정 형태로 분류되는 처리 요소들을 한 모듈에서 수행
    예 : 오류 처리 등
    우연적 응집도 관련 없는 작업을 한 모듈에 모은 경우
    모듈화의 장점이 없고, 유지 보수가 어려움
    낮음

    6. 소프트웨어 모듈 결합도 (Coupling)

    • 모듈 간 연관도를 나타내는 척도
    • 결합도가 낮을수록 관련이 적어지고, 모듈의 독립성이 높아져 모듈 간 영향이 적어짐
    유형 설명 정도
    내용 결합도 모듈 내부의 변수 또는 제어 정보를 다른 모듈에서 사용 높음
    공통 결합도 모듈 밖에서 선언되는 전역 변수를 사용  
    외부 결합도 다수의 모듈이 모듈 밖의 데이터, 프로토콜, 인터페이스를 사용
    제어 결합도 제어되는 값 뿐만 아니라 제어용 신호를 주고받음
    스탬프 결합도 배열, 오프젝트, 스트럭처 등을 교환함
    자료 결합도 모듈들이 변수를 교환하여 상호 작용이 일어남 낮음

    7. 테스트 케이스

    • 요구사항을 준수하는지 검증하기 위하여 테스트 조건을 명세한 것
    • 종류
      1. 명세 기반 기법 (BlackBox Test)
      2. 구조 기반 기법 (WhiteBox Test)
      3. 경험 기반 기법 

    8. 테스트 프로세스

    1. 계획/제어 2. 분석/설계 3. 구현/실행 4. 평가 5. 완료

    9-1. 프로세스

    • 개인이나 조직이 한 개 이상의 정보 자원의 입력을 통해 가치 있는 산출물을 제공하는 모든 관련 활동들의 집합

     

     

    9-2. 프로세스 필수 구성 요소

    • 프로세스 책임자
    • 프로세스 맵 : 상위 프로세스와 하위 프로세스의 체계를 도식화
    • 프로세스 Task 정의서 : 기대하는 결과물을 산출하기 위해, Task들이 어떻게 운영되어야 하는지에 대한 문서
    • 프로세스 성과 지표 : 고객 입장에서 정량적으로 표현한 지표
    • 프로세스 조직
    • 경영자의 리더십

    10. 프레임워크 (Framework)

    • 원하는 기능 구현에 집중하여 빠르게 개발할 수 있도록 기본적으로 필요한 기능을 갖추고 있는 것
    • 코드 라이브러리, 인터페이스 등의 집합
    • 재사용이 가능하도록 소프트웨어 구성에 필요한 기본 뼈대 제공
    • 예 : Java 개발에서의 Spring, Python 개발에서의 Django 등
    • 특징
      1. 모듈화
      2. 재사용성
      3. 확장성
      4. 제어의 역흐름

    11. DAO/DTO/VO

    • 영속 계층(Persistence Layer)에서 사용되는 특정 패턴을 통해 구현되는 Java Bean
    종류 설명
    DAO
    (Data Access Object)
    DB를 사용해 데이터를 조회, 조작하는 오브젝트
    DB의 세부 내용을 노출하지 않고 특정 데이터 조작 기능을 제공함
    DTO
    (Data Transfer Object)
    프로세스 사이에서 데이터를 전송하는 객체
    많은 프로세스 간 데이터 전송 시 데이터를 모아 한 번만 호출함
    가변 클래스임
    (DTO는 데이터의 저장 및 회수만 가능하다는 점에서 DAO와 다르다.)
    VO
    (Value Object)
    Entity를 의미하는 작은 객체
    DTO와 비슷하지만, read only 속성을 가짐
    불변 클래스임

    12. 소프트웨어 개발 보안

    • 개발자의 실수, 논리적 오류 등으로 인해 발생할 수 있는 보안 취약점을 최소화 하여 보안 위협에 대응할 수 있는 안전한 SW를 개발하기 위한 일련의 활동

    13. 소프트웨어 테스트

    • 구현된 애플리케이션이나 시스템을 사용자의 요구사항이 만족되었는지 확인하기 위하여 기능 및 비기능 요소의 결함을 찾아내는 활동
    • 테스트 원칙
      1. 개발자가 자신이 개발한 프로그램 및 소스코드를 테스팅하지 않는다. 
      2. 낚시의 법칙, 파레토의 법칙 등의 효율적인 결함 제거 법칙을 사용한다. 
      3. 완벽한 소프트웨어 테스팅은 불가능하다. 
      4. 테스트는 계획 단계부터 해야 한다. 
      5. 살충제 패러독스
      6. 오류-부재의 궤변

    14-1. 배치 프로그램 (Batch Program, 일괄 처리)

    • 사용자와의 상호 작용 없이 일련의 작업들을 작업 단위로 묶어 정기적으로 반복 수행하거나 정해진 규칙에 따라 일괄 처리하는 것
    • 필수 요소
      1. 대용량 : 대용량의 데이터 처리가 가능해야 한다. 
      2. 자동화 : 심각한 오류를 제외하고 사용자의 개입 없이 동작해야 한다. 
      3. 견고함 : 유효하지 않은 데이터의 경우도 처리해서, 비정상적인 동작 중단이 없어야 한다. 
      4. 안정성 : 문제 발생 시 추적이 가능해야 한다. 
      5. 성능 : 주어진 시간 내에 처리 완료해야 하고, 다른 애플리케이션을 방해하면 안된다. 

     

     

    14-2. 배치 스케줄러 (Batch Scheduler)

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

     

     

    14-3. 디버그(Debug)와 디버거(Debugger)

    • 디버그 (Debug) : 컴퓨터 프로그램의 논리적인 오류(Bug)를 찾아내는 과정
    • 디버거 (Debugger) : 버그를 찾고 수정하기 위한 필수적인 도구
    728x90

    댓글

kxmjhwn@gmail.com