정보처리기사 - 제2과목 소프트웨어 개발 / 제품 소프트웨어 패키징
제2과목 소프트웨어 패키징
▷ 제품 소프트웨어 패키징 A
> 소프트웨어 패키징
- 소프트웨어 패키징의 개요 : 모듈별로 생성한 실행파일을 묶어서 배포용 설치파일 생성, 사용자 중심, 모듈화 패키징(유지보수 용이)
- 패키징시 고려사항 : 운영체제, cpu, 메모리 등의 최소환경 정의, 메뉴얼, 고객편의, 패키징의 변경 개선 관리
- 패키징 작업 순서 : 2-4주, 최종결과물
온라인 배포(다운로드), 오프라인 배포(CD, DVD, USB로 메뉴얼과 함께 배포)
기능식별(코드기능) -> 모듈화(기능단위) -> 빌드진행(코드를 실행가능한 SW로 변환하는 과정) -> 사용자환경분석 -> 패키지적용, 시험 -> 패키징 변경, 개선 -> 배포
> 릴리즈 노트
- 릴리즈 노트(Release Note)의 개요 : 사용자에게 제공하는 SW에 대한 정보, 업데이트 정보 공유문서(SW기능, 서비스, 개선기능 등)
- 릴리즈 노트 초기 버전 작성시 고려사항 : 머리말(이름, 버전), 개요, 목적, 문제요약, 재현항목(버그발견), 수정개선 내용, 사용자 영향도(기능의 변화가 사용자에게 미칠 영향), SW지원 영향도(기능의 변화가 SW에 미칠 영향), 노트, 면책 조항, 연락처
- 릴리즈 노트 추가 버전 작성시 고려사항 : 버그, 업그레이드, 기능향상, 요청사항 등
- 릴리즈 노트 작성 순서 : 모듈식별-릴리지 정보확인-릴리즈 노트개요 작성-영향도 체그-정식 릴리즈노트 작성-추가개선항목 식별
> 디지털 저작권 관리(DRM)
- 저작권의 개요 : 독점적 권리, 타인의 침해x
- 디지털 저작권 관리(DRM : Digital Right Management)의 개요 : 저작권자가 의도한 용도로만 사용해야 한다.
- 디지털 저작권 관리의 흐름도
클리어링 하우스(저작권 사용권한, 결제관리), 콘텐츠 제공자, 패키저(함께 배포하여 암호화)
콘텐츠 분배자(유통), 콘텐츠 소비자, DRM 컨트롤러(통제), 보안컨테이너(보안장치)
- 디지털 저작권 관리의 기술 요소
암호화, 키 관리, 암호화 파일 생성, 식별 기술, 저작권 표현, 정책관리(라이센스 발급), 크랙방지, 인증
▷ 제품 소프트웨어 패키징 B
> 소프트웨어 설치 매뉴얼
- 소프트웨어 설치 매뉴얼의 개요 : 사용자 기준으로 설치과정에 필요한 내용을 기재한 설명서, 오류메세지, 예외상황
- 서문 : 문서이력, 설치 매뉴얼의 주석(주의, 참고사항), 설치도구의 구성, 설치 환경 체크 항목(cpu, 메모리 os)
- 기본사항 : 소프트웨어 개요(주요기능), 설치관련 파일(exe, log 등), 설치 아이콘, 프로그램 삭제, 관련 추가정보
- 설치 매뉴얼 작성 방법 : 설치과정을 이해가 쉽도록 캡쳐하여 순서대로 설명
설치화면, 설치이상 메시지 설명, 설치 완료 및 결과, FAQ
설치시 점검사항, 네트워크 환경 및 보안, 고객지원방법(연락처), 준수정보(불법, 저작권자) 및 제한 보증
- 설치 매뉴얼 작성 순서
기능식별(목적, 기능) -> UI분류 -> 설치파일확인(백업파일) -> Uninstall 절차 확인(삭제순서) -> 이상 case확인(대처방법) -> 최종매뉴얼 적용(검토 및 고객지원)
> 소프트웨어 사용자 매뉴얼
- 소프트웨어 사용자 매뉴얼 개요 : 업그레이드를 위한 매뉴얼 버전관리 필요, 컴포넌트(독립기능 수행)단위 매뉴얼
- 서문 : 문서이력, 설치매뉴얼의 주석, 기록 보관 내용(sw명칭, 구입날짜 등)
- 기본사항 : 소프트웨어 개요(기능), 소프트웨어 사용환경(cpu, 메모리, os), 소프트웨어 관리(사용, 종료), 모델버전별 (기능적)특징, 기능 인터페이스 특징, 소프트웨어 구동 환경(호환가능 os, os별 설명)
- 사용자 매뉴얼 작성 방법 : 사용자 화면(주의, 참고사항, 사용자 환경), 주요기능 분류(실행화면 캡쳐), 응용 프로그램 및 설정(구동 프로그램, 기본값), 장치 연동, 네트워크 환경(정상연결), profile 안내(구동환경 점검), 고객지원방법(연락처, 이메일 등), 준수정보 제한 보증(저작권자, 소유권정보)
- 사용자 매뉴얼 작성 순서 : 기능 식별(목적, 기능) -> 사용자화면 분류(메뉴별) -> 사용자 환경 파일 확인(폴더, 로그, 백업) -> 초기화 절차확인 -> 이상 case확인(해결방법) -> 최종 매뉴얼 적용(FAQ, 고객지원 등)
> 국제 표준 제품 품질
- 국제 표준 제품 관련 품질
국제 표준 제품 관련 품질 특성의 분류
- 제품 품질 표준 : ISO/IEC 9123(품질에 대한 특성, 측정기준 제시 / 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성 등), ISO/IEC 14598(SW제품평가 프로세스, 평가모듈), ISO/IEC 12119(패키지, SW품질 요구사항 및 테스트), ISO/IEC 25000(품질 모형, 메트릭, 요구사항, 평가 등)
- 프로세스 품질 표준 : ISO/IEC 9000(품질경영, 품질보증), ISO/IEC 12207(life cycle 프로세스), ISO/IEC 155054(표준모델), ISO/IEC 15288(시스템 생명주기), CMMI(프로세스 표준모델)
- ISO/IEC 12119 평가 절차 : 제품 설명서 시험(요구사항, 권고사항)-사용자 문서지침(완전성, 정확성, 일관성, 이해성)-실행 프로그램 시험(프로그램, 데이터, 신뢰성)-시험기록-시험 보고서 작성
- ISO/IEC 14598 특징 : 반복성(Repeatability, 동일한 평가자가 동일한 사양으로 테스트시 동일한 결과), 재현성(Reproducibility, 다른 평가자가 테스트시 유사한 결과), 공정성(Impartiality, 편향x), 객관성(Objectivity)
▷ 제품 소프트웨어 패키징 C
> 소프트웨어 버전 등록
- 소프트웨어 패키징의 형상 관리 : SW개발 전체단계에서 SW변경사항관리(유지보수 포함)를 위한 일련의 활동
- 형상관리의 중요성 : SW 변경사항 추적, 통제, 무적제한 변경x
- 형상 관리 기능 : 형상 식별(형상관리 대장, 번호 등을 트리구조로 식별), 버전 제어, 형상 통제(변경관리, 변경요구 검토), 형상 감사(기준선, 승인), 형상 기록(기록, 관리)
- 소프트웨어의 버전등록관련 주요 용어 : 저장소(최신버전 파일, 변경내역), 가져오기(파일복사방법), 체크아웃(저장소에서 파일 받기), 체크인(새로운 버전으로 갱신), 커밋(충돌 알림, 수정, 갱신 완료), 동기화(최신버전으로 작업공간을 동기화)
- 소프트웨어 버전 등록 과정 : 가져오기(신규 파일추가) -> (작업공간으로)인출 -> 예치(수정) -> 동기화 -> 차이(수정기록 확인)
> 소프트웨어 버전관리 도구
- 소프트웨어 버전관리 도구 개요
소프트웨어 버전관리 도구란? 제품소프트웨어의 신규 개발, 변경, 개선과 관련된 수정 내역을 관리하는 도구
소프트웨어 버전관리 도구 유형 : 공유폴더 방식(이전에 사용, 폴더 복사방식), 클라이언트/서버 방식(중앙저장소에 축적), 분산 저장소 방식(중앙저장소 파일이 작업자에게 복사됨)
- 소프트웨어 버전관리 도구별 특징
CVS : 서버와 클라이언트의 다수인원이 동시에 os 접근 가능
SVN(개별 프로젝트) : CVS의 장점 + 개선, 2000년도 발표, 표준으로 사용
RCS : 소스파일의 수정을 1인으로 제한, 잠금
Bitkeeper : 대규모 프로젝트에서 빠른속도를 위한 도구
Git(오픈소스) : 속도중점의 분산형 버전관리 시스템, 대형프로젝트에서 효과적
Clear Case :IBM제작, 복수서버-복수클라이언트 구조
- 소프트웨어 버전관리 도구 사용시 유의점
형상관리 지침에 의거 버전에 대한 정보를 언제든지 접근할 수 있어야 함
개발자, 배포자 이외에 불필요한 사용자가 소스 접근이 불가능하도록 해야함
동일한 프로젝트 파일에 대해서 여러 개발자가 동시 개발할 수 있어야 함
에러 발생시 최대한 빠른시간내 복구 필요
- 제품소프트웨어에 소프트웨어 버전관리 도구 활용방안
공동 개발 및 작업 관리 : 2인이상의 개발자가 수정가능해야함
버전 백업 및 복구 : 이전버전 되돌리기 가능해야함
여러 버전 솔루션 작업
> 빌드 자동화 도구
- 소프트웨어 빌드 자동화 도구 개요
소프트웨어 빌드 자동화 도구란? 저장소에 있는 소스를 자동으로 읽어서 빌드를 하여 실행 파일을 만드는 도구
- 온라인 빌드 자동화 도구, 젠킨스(Jenkins)
빌드 자동화 도구로서 가장 많이 활용되는 도구
지속적 통합관리를 가능케함, 다양한 버전관리 도구 지원
임의의 쉘 스크립트와 윈도우 배치 명령까지 실행가능
장점 : 쉬운 설치, 친숙한 GUI, 저장소 부하 감소, 실시간 피드백, 분산필드 테스트 가능, 3d party 플러그인 통합가능(DB, 개발도구, eclipse, 테스트도구)
- 안드로이드 환경에 적합한 도구, 그래들(Gradle) : 오픈소스
그래들(Gradle)은 여러가지 언어의 빌드 환경 구성 가능
안드로이드 개발 환경에서 빌드 자동화 도구로 사용
그래들 스크립트는 groovy를 사용해서 만든 DSL(Domain Specific Language)
모든 그래들 빌드는 하나 이상의 projects로 구성됨