본문 바로가기
정보처리기사 필기/소프트웨어 개발

2-3. 제품 소프트웨어 패키징

by 훈꽁 2021. 7. 30.
2020 기출 ' ' 
2021 기출 ' ' 
수제비 데일리 ' ' 

제품 소프트웨어 패키징

(1) 애플리케이션 패키징

  • 애플리케이션 패키징(Application Packaging)은 개발이 완료된 제품 소프트트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작하고, 설치와 사용에 필요한 제반 내용을 포함하는 매뉴얼을 작성하는 활동이다.
  • 사용자 중심으로 진행된다.

 

애플리케이션 패키징 고려사항 (환유관변)

  • 사용자 시스템 경 정의
  • UI 제공
  • 리 서비스 형태로 제공
  • 패키징의 경 및 개선 관리 고려

 

애플리케이션 패키징 프로세스

  1. 기능 식별
  2. 모듈화(Modularity)
  3. 빌드 진행
  4. 사용자 환경 분석
  5. 패키징 적용 시험
  6. 패키징 변경 개선

 


(2) 애플리케이션 배포 도구

애플리케이션 배포 도구는 배포를 위한 패키징 시에 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구이자 솔루션이다.

 

애플리케이션 배포 도구의 기술 요소 (DRM 기술요소와 동일) (암키식저 파정크인)

호화 / 관리 / 별 기술 / 작권 표현 / 암호화 일 생성 / 책 관리 / 랙 방지 /

 

애플리케이션 배포 도구 활용 시 고려사항 (암이복최)

  • 호화/보안
  • 기종 연동(DRM 연동 고려)
  • 잡성 및 비효율성 문제
  • 접합 암호화 알고리즘 적용

 


(3) 애플리케이션 모니터링 도구

애플리케이션 모니터링 도구는 제품 소프트웨어를 사용자 환경에 설치한 후 기능 및 성능, 운영 현황을 모니터링하여 제품을 최적화하기 위한 도구이다.

 

애플리케이션 모니터링 도구의 기능

기능 설명 도구
변경 관리 종속관계 모니터링 ChangeMiner
성능 관리 트랜잭션 수량, 처리시산, 응답시간 모니터링 Jeniffer, Nmon
정적 분석 소스코드 잠재적 문제 발견, 코딩 규칙 오류 발견 PMD, Cppcheck, Checkstyle, SonarQube
동적 분석 프로그램 결함 및 취약점 동적 분석 도구 Avalanche, Valgrind

 

애플리케이션 모니터링 도구 활용에 따른 효과

서비스 가용성 / 서비스 성능 / 장애인지, 리소스 측정 / 근본 원인 분석

 


(4) 디지털 저작권 관리(DRM; Digital Rights Management)

DRM은 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술이다.

 

DRM의 특징

거래 투명성 / 사용규칙 제공 / 자유로운 상거래 제공

 

DRM 구성 요소 (제콘패 클 소컨보)

구분 구성요소 구성요소별 설명
콘텐츠 공자 DRM 텐츠 서비스하고자 하는 암호화된 콘텐츠, 콘텐츠와 관련된 메타 데이터, 콘텐츠 사용정보를 패키징하여 구성된 콘텐츠
키저(Packager) 암호화된 콘텐츠, 콘텐츠 관련 메타 데이터, 클리어링 하우스에서 부여받은 콘텐츠 사용정보를 암호화한 콘텐츠로 변환하는 도구
리어링 하우스
(Clearing House)
콘텐츠 정책 클리어링 하우스(Clearing House): 키 관리 및 라이선스 발급 관리
콘텐츠 라이선스
콘텐츠 관리정보
콘텐츠 사용정보
콘텐츠 비자
(DRM Client)
DRM 트롤러 배포된 콘텐츠의 이용 권한을 통제
안 컨트롤러 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안장치

 

DRM의 기술요소 (암키식저 파정크인)

호화 / 관리 / 별체계 표현 / 작권 표현 / 암호화 일 생성 / 책 관리 / 랙 방지 /

 


제품 소프트웨어 매뉴얼 작성

(1) 제품 소프트웨어 매뉴얼 작성

사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서를 의미한다.

 

(2) 국제 표준 제품 품질 특성

국제 표준 제품 품질 특성을 제품에 대하여 명확하게 정의된 특성을 의미하며, 품질을 평가하는 기준 항목이다.

 

국제 제품 품질 표준

  • IT 프로젝트를 진행하거나, 완성된 IT 제품에 대해 기능성, 신뢰성 등을 평가하는 기준이 되는 국제 표준이다.
  • ISO/IEC 9126은 품질 특성 및 측정 기준을 정의하고 있는 표준으로 1991년에 저정된 후 1994년부터 품질 특성과 내부 품질과 외부 품질을 조정하고, 품질 측정 절차를 별도의 ISO/IEC 14598 표준으로 분리하였다.
품질 표준 설명
ISO/IEC 9126 소프트웨어 품질 측정, 평가를 위해 소프트웨어 품질요소와 특성을 정의
ISO/IEC 14598 소프트웨어 제품 평가 프로세스 및 평가 모듈 제공
ISO/IEC 12119 소프트웨어 패키지 제품에 대한 품질 요구사항 및 테스트 국제 표준
ISO/IEC 25000 소프트웨어 품질 평가 통합 모델, SQuaRE로도 불리며, ISO/IEC 9126과 ISO/IEC 14598, ISO/IEC 12119를 통합하고, ISO/IEC 15288을 참고한 소프트웨어 제품 품질에 대한 통합적인 국제표준

 

ISO/IEC 9126의 소프트웨어 품질 특성 (기신사효유이)

품질 특성 설명 품질 부특성
능성
(Fuctionality)
요구 만족 기능 제공 능력 적합성, 정확성, 상호 운용성, 보안성, 준수성 등
뢰성
(Reliability)
주어진 시간 내 오류없이 수행하는 정도 성숙성, 결함 허용성, 회복성, 준수성 등
용성
(Usability)
이해, 학습, 사용 선호 능력 이해성, 학습성, 운용성, 친밀성, 준수성 등
율성
(Efficiency)
자원의 양에 따른 성능 제공 노력 시간 반응성, 자원 효율성, 준수성 등
지보수성
(Maintainability)
제품 변경(수정, 개선, 개작) 능력 분석성, 변경성, 안정성, 시험성, 준수성 등
식성
(Portability)
환경 전이 능력 적응성, 설치성, 공존성, 대체성, 준수성 등

 

ISO/IEC 14598의 소프트웨어 품질 특성 (반재공객)

특성 설명
복성
(Repeatability)
특정 제품을 동일 평가자가 동일 사양으로 평가하면 동일한 결과가 나와야 한다.
현성
(Reproducibility)
특정 제품을 다른 평가자가 동일 사양으로 평가하면 유사한 결과가 나와야 한다.
정성
(Impartiality)
평가가 특정 결과에 편향되지 않아야 한다.
관성
(Objectivity)
평가 결과는 객관적 자료에 의해서만 평가되어야 한다.

 

ISO/IEC 25000 구성요소 (관모측요평)

품질 리(2500n) / 품질 델(2501n) / 품질 정(2502n) / 품질 구(2503n) / 품질 가(2504n)

 

국제 프로세스 품질 표준

  • ISO/IEC 9001
  • ISO/IEC 12207 : 기본 프로세스, 지원 프로세스, 조직 프로세스로 구성되어 있다.
  • ISO/IEC 15504 (SPICE)
  • CMMi : 프로세스 영역, 목표, 실행, 공통특징으로 구성되어 있다.

 

소프트웨어 공학의 기본 원칙

소프트웨어 위기 (Software Crisis)

구분 설명
위기의 원인 소프트웨어의 특징 이해 부족
소프트웨어의 관리 부재
소프트웨어 복잡도 및 크기 증가
소프트웨어 제품 수명주기 단축
위기 극복 방안 공학적 접근, 표준화, 자동화 도구, 품질 보중

 

소프트웨어 공학 (Software Engineering; SE)

구분 설명
원칙 품질 높은 소프트웨어 상품 개발, 지속적인 검증 시행, 결과에 대한 명확한 기록 유지
관련 법칙 브룩스의 법칙(Brooks' Law) : 일정이 지연된다고 해서 Project 말기에 새로운 인원을 추가 투입하면 Project는 더욱 지연되게 된다.
파레토 법칙(Pareto Principle) : 소프트웨어 테스트에서 오류의 80%는 전체 모듈의 20% 내에서 발견된다.
롱테일 법칙(Long Tail) : 사소해 보이는 80%의 다수가 20%의 소수 핵심보다도 뛰어난 가치를 창출해낸다.

 


제품 소프트웨어 버전 관리

(1) 소프트웨어 버전 관리 도구

형상 관리 지침을 활용하여 제품 소프트웨어의 신규 개발, 변경, 개선과 관련된 수정 사항을 관리하는 도구이다.

 

제품 소프트웨어 버전 관리

소프트웨어 개발과 관련하여 코드와 라이브러리, 관련 문서 등 시간의 변화에 따른 변경을 관리하는 전체 활동을 의미한다.

 

소프트웨어 버전 관리 도구 유형

버전 관리 도구 유형 예시 설명
공유 폴더 방식 RCS, SCCS 약속된 위치의 공유 폴더에 복사하는 방식
클라이언트/서버 방식 CVS, SVN 중앙에 버전 관리 시스템을 항시 동작시킴
분산 저장소 방식 Git, Bikeeper 로컬 저장소와 원격 저장소로 분리된 구조

 

많이 활용되는 버전 관리 도구별 특징

유형 버전 관리 도구 설명
클라이언트-서버 방식 CVS 가장 오래된 형상 관리 도구 중의 하나
SVN CVS의 단점을 보완해 가장 널리 사용되고 있는 도구
분산형 방식 Git 각 PC 스스로 완전한 저장소가 구성되며 ,필요에 따라 중앙 집중형 방식으로도 운영

 

소프트웨어 버전 관리 도구 사용 시 유의사항

  • 버전에 대한 쉬운 정보 접근성
  • 불필요한 사용자에 대한 접근 제어
  • 동일 프로젝트에 대한 동시 사용성
  • 빠른 오류 복구

 


(2) 빌드 자동화 도구

  • 빌드 자동화 도구란 제품 소프트웨어 실행파일 생성을 자동화하기 위해서 저장소에 있는 소스를 자동으로 읽어서 빌드한 후 테스트하고 검사하여 실행파일을 만드는 도구이다.
  • 지속적인 통합(CI; Continuous integration)과도 연관된다.

 

빌드 자동화 구성요소

구성 요소 설명 도구
CI 서버
(Continuous Integration)
빌드 프로세스를 관리하는 서버 (지속적 통합관리 서버) Jenkins / Hudson
SCM
(Source Code Management)
소스 코드 형상 관리 시스템 SVN / Git
빌드 도구
(Build Tool)
컴파일, 테스트, 정적분석 등을 통해 동작 가능한 소프트웨어 생성 Ant / Maven
테스트 도구
(Test Tool)
작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구로, 빌드 도구의 스크립트에서 실행 Junit / Selenium
테스트 커버리지 도구
(Test Coverage Tool)
테스트 코드가 대상 소스 코드에 대해 어느정도 커버하는지 분석하는 도구 Emma
인스펙션 도구
(Inspection Tool)
프로그램을 실행하지 않고, 소스 코드 자체로 품질을 판단할 수 있는 정적 분석 도구
코딩 표준 준수 검사, 코드 메트릭 측정, 중복 코드 검사, 코드 인스펙션 검사
CheckStyle / Cppcheck

 

빌드 자동화 도구 - 젠킨스(Jenkins)

  • 젠킨스는 자바(JAVA) 기반의 오픈소스로 가장 많이 사용되는 빌드 자동화 도구이다.
  • 지속적 통합관리(CI)를 가능하게 한다.
  • 서블릿 컨테이너 서버 기반으로 구동되는 시스템이며, CVS, SVN, Git 등 다양한 버전 관리 도구를 지원한다.

 

빌드 자동화 도구 - 그래들(Gradle)

  • 그래들은 그루비(Groovy)와 유사한 도메인 언어를 채용했다.
  • 안드로이드 앱을 만드는 데 필요한 안드로이드 스튜디오의 공식 빌드 자동화 시스템이다.
  • 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행한다.
  • 자바(JAVA), C/C++, 파이썬(Python) 등과 같은 여러 가지 언어를 지원한다.
  • 자바 가상머신(JVM) 위에서 동작하는 동적 스크립트 언어이다.

 

'정보처리기사 필기 > 소프트웨어 개발' 카테고리의 다른 글

2-5. 인터페이스 구현  (0) 2021.08.01
2-4. 애플리케이션 테스트 관리  (0) 2021.08.01
2-2. 통합 구현  (0) 2021.07.30
2-1. 데이터 입출력 구현  (0) 2021.07.27

댓글