이전자료/정보처리기사

[정보처리기사] 12장 제품 소프트웨어 패키징

donggyu 2021. 9. 2. 16:11
반응형

소프트웨어 패키징

-모듈별로 생성한 실행 파일들을 묶어서 배포용 설치파일을 만드는것

-사용자 중심

-소스코드는 향후 관리를 고려하여 모둘화하여 패키징한다.

 

패키징 순서

기능 식별 -> 모듈화 -> 빌드진행 ->사용자 환경 분석 -> 패키징 및 적용 시험 -> 패키징 변경 개선 -> 배포

 

*빌드: 소스코드 파일들을 컴퓨터에서 실행할 수 있는 제품 소프트웨로 변환하는 과정, 결과물

*사용자 환경 분석: 실행환경 os, 시스템사양, 사용방법 등...

 

릴리즈 노트

-소프트웨어 개발 과정에서 정리된 릴리즈 정보를 고객과 공유하기 위한 문서

 

*헤더: 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜. 릴리즈 노트 날짜, 릴리즈 노트 버전

 

릴리즈 노트 작성 순서

모듈식별 -> 릴리즈 정보 확인  -> 릴리즈 노트 개요 작성 -> 영향도 체크 -> 정식 릴리즈 노트 작성 -> 추가 개선 항목 식별

 

DRM(디지털 저작권 관리)

-저작권자가 배포한 디지털 컨텐츠가 저작권자의 의도로만 사용되도록 , 디지털 컨텐츠 관리 및 보호 기술

 

DRM 구성요소

 

클리어링 하우스: 저잔권에 대한 사용 권한, 라이선스 발급, 암호화된 키 관리, 사용량에 따른 결제 관리 등을 수행

콘텐츠 제공자: 콘텐츠를 제공하는 저작권자

패키저: 콘턴체를 메타 데이터와 함께 배포 가능한 형태로 묶어서 암호화 하는 프로그램

컨텐츠 분배자: 암호화된 컨텐츠를 유동하는 곳이나 사람

컨텐츠 소비사: 컨텐츠를 구매해서 사용하는 주체

DRM 컨트롤러: 배포된 컨텐츠의 이용 권한을 통제하는 프로그램

보안 컨테이너: 컨텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

 

DRM 기술요소

암호화

키관리

암호화 파일 생성

식별 기술

저작권 표현

정책 관리

크랙 방지

인증

 

소프트웨어 설치 매뉴얼

-개발 초기에서부터 적용된 기준이나 사용자가 소프트웨어를 설치하는 과정에 필요한 내용을 기록한 설명서와 안내서

-설치 매뉴얼은 사용자 기준으로 작성

-전 과정을 빠짐 없이 순서대로 설명

 

설치 매뉴얼 작성 순서

기능식별 -> UI 분류 -> 설치 파일/백업 파일 확인 -> Uninstall 절차 확인 -> 이상 Case 확인 -> 최종 매뉴얼 적용

 

소프트웨어 사용자 매뉴얼

- 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서, 안내서

- 사용자가 소프트웨어 사용에 필요한 절차, 환경 등의 제반 사항이 모두 포함되도록 작성

 

*컴포넌트: 독립적인 업무 또는 기능을 수행하는 단위, 실행 코드 기반으로 작성된 모듈

 

사용자 매뉴얼 작성 순서

기능 식별 -> 사용자 화면 분류 -> 사용자 환경 파일 확인 -> 초기화 절차 확인 -> 이상 Case 확인 -> 최종 매뉴얼 적용

 

형상관리(SCM)

-개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동

-버전관리

 

형상 관리 기능

형상 식별: 관리 대상에 이름과 관리 번호를 부여하고, 계층(tree)구조로 구분하여 수정 및 추적이 용이하도록 함

버전 제어: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구를 결합

형상 통제: 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영 될 수 있도록 조정하는 작업

형상 감사: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인

형상 기록: 형상의 식별, 통제, 감사 작업의 결과를 기록 관리하고 보고서를 작성하는 작업

 

*기준선:  정식으로 검토되고 합의된 명세서나 제품

*무결성:  조건을 충실히 만족

 

소프트웨어의 버전 드롱 관련 주요기능

- 가져오기(import): 버전 관리가 되고 있지 않은 아무것도 없는 저장소(repository)에 처음으로 파일을 복사함

- 체크아웃(check out): 프로그램을 수정하기 위해 저장소에서 파일을 받아옴, 소스 파일과 함께 버전 관리를 위한 파일들도 방아옴

- 체크인(check in): 체크아웃한 파일을 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신함

- 커밋(commint): 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌을 알리고 알리고 diff도구를 이용해 수정한 후 갱신을 완료함

- 동기화(update): 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화함

 

소프트웨어 버전 등록 과정

import -> check-out -> commit -> update -> diff

 

소프트웨어 버전 관리도구

공유 폴더 방식

- 버전 관리 자료가 지역 컴퓨터의 고유 폴더에 저장되어 관리 되는 방식

- 파일의 변경 사항을 데이터베이스에 기록하여 관리

- SCCS, RCS, PVCS, QVCS

 

클라이언트/서버 방식

- 버전 관리 자료가 서버에 저장되어 관리 되는 방식

- 모든 버전 관리는 서버에서 수행

- 서버에 문제가 생기면 서버가 복구되기 전까지 다른 개발자와의 협업 및 버전 관리 작업은 중단

-  CVS, SVN, CVSNT, Clear Case, CMVC, Perforce

 

분산 저장소 방식

- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자의 pc의 지역 저장소에 함께 저장되어 관리되는 방식

- 지역 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 지역 저장소의 자료를 이용하여 작업할 수 있다.

 

Subversion(서브버전)

- Subversion은 CVS를 개선한 것으로, 아파치 소프트웨어 재단에서 발표

- 클라이언트/서버 구조로, 서버에는 최신 버전의 파일들과 변경 사항이 관리됨

- 소스가 오픈되어 있어 무료로 사용할 수 있음

- CVS의 단점이었던 파일이나 디렉터리의 이름 변경, 이동이 가능

 

Git

- 분산 버전 관리 시스템으로 2개의 저장소, 지역 저장소와 원격 조장소가 존재

- 버전 관리가 지역 저장소에서 진행되므로 버전관리가 신속하게 처리되고 저장소나 네트워크에 문제가 있어도 작업 가능

 

빌드 자동화 도구

- 빌드를 포함하여 테스트 및 배포를 자동화하는 도구

- Ant, Make, Maven,  Gradle, Jenkins 

 

Jenkins

- Java 기반의 오픈 소스 형태로, 서블릿 컨테이너에서 실행되는 서버 기반 도구

- 가장 많이 사용되는 빌드 자동화 도구

 

Gradle

- Groovy를 기반으로 한 오픈소스 형태의 자동화 도구

- 안드로이드 앱 개발 환경에서 사용

- DSP을 스크립트언어로 사용

 

 

 

 

 

 

 

 

 

 

 

반응형