본문 바로가기
IT Study/정보처리기사

2020 정보처리기사 (11장. 제품 소프트웨어 패키징)

by dev_huhu 2020. 10. 2.
반응형

소프트웨어 패키징

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

- 개발자가 아니라 사용자를 중심으로 진행한다.

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

- 사용자가 소프트웨어를 사용하게 될 환경을 이해하여, 다양한 환경에서 소프트웨어를 손쉽게 사용할 수 있도록 일반적인 배포 형태로 패키징한다.

- 사용자를 중심으로 진행되는 작업이므로 사용자의 편의성 및 실행 환경을 우선적으로 고려해야한다.


패키징 시 고려사항

- 사용자의 시스템 환경, 즉 운영체제, CPU, 메모리 등에 필요한 최소 환경을 정의한다.

- UI는 사용자가 눈으로 직접 확인할 수 있도록 시각적인 자료와 함께 제공하고 매뉴얼과 일치시켜 패키징한다.

- 하드웨어와 함께 관리될 수 있도록 Managed Service 형태로 제공하는 것이 좋다.

- 고객의 편의성을 고려한 안정적인 배포가 중요하다.

- 다양한 사용자의 요구사항을 반영할 수 있도록 패키징의 변경 및 개선에 대한 관리를 항상 고려한다.

 

패키징 작업 순서

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

릴리즈 노트 작성

 

릴리즈 노트: 개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서


릴리즈 노트 초기 버전 작성 시 고려사항

  • 머릿말: 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등
  • 개요: 소프트웨어 및 변경사항 전체에 대한 간략한 내용
  • 목적: 해당 릴리즈 버전에서의 새로운 기능이나 수정된 기능의 목록과 릴리즈 노트의 목적에 대한 간략한 개요
  • 문제 요약: 수정된 버그에 대한 간략한 설명 또는 릴리즈 추가 항목에 대한 요약
  • 재현 항목: 버그 발견에 대한 과정 설명
  • 수정/개선 내용: 버그를 수정/개선한 내용을 간단히 설명
  • 사용자 영향도: 사용자가 다른 기능들을 사용하는데 있어 해당 릴리즈 버전에서의 기능 변화가 미칠 수 있는 영향에 대한 설명
  • SW 지원 영향도: 해당 릴리즈 버전에서의 기능 변화가 다른 응용 프로그램들을 지원하는 프로세스에 미칠 수 있는 영향에 대한 설명
  • 노트: SW/HW 설치 항목, 업그레이드, 소프트웨어 문서화에 대한 참고 항목
  • 면책 조항: 회사 및 소프트웨어와 관련하여 참조할 사항
  • 연락처: 사용자 지원 및 문의 응대를 위한 연락처 정보

 

릴리즈 노트 작성 순서

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

디지털 저작권 관리(DRM)

: 저작권자가 배포한 디지털 콘텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 콘텔츠의 생성, 유통, 이용까지의 전 과정에 걸쳐 사용되는 디지털 콘텐츠 관리 및 보호 기술이다.

- 원본 콘텐츠가 아날로그인 경우에는 디지털로 변환한 후 패키저(Packager)에 의해 DRM 패키징을 수행한다.

- 패키징을 수행하면 콘텐츠에는 암호화된 저작권자의 전자서명이 포함되고 저작권자가 설정한 라이선스 정보가 클리어링 하우스(Clearing House)에 등록된다.


디지털 저작권 관리의 흐름도

  • 클리어링 하우스: 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행하는 곳
  • 콘텐츠 제공자: 콘텐츠를 제공하는 저작권자
  • 패키저: 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
  • 콘텐츠 분배자: 암호화된 콘텐츠를 유통하는 곳이나 사람
  • 콘텐츠 소비자: 콘텐츠를 구매해서 사용하는 주체
  • DRM 컨트롤러: 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
  • 보안 컨테이너: 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치

디지털 저작권 관리의 기술 요소

  • 암호화: 콘텐츠 및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술
  • 키 관리: 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술
  • 암호화 파일 생성: 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
  • 식별 기술: 콘텐츠에 대한 식별 체계 표현 기술
  • 저작권 표현: 라이선스의 내용 표현 기술
  • 정책 관리: 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
  • 크랙 방지: 크랙에 의한 콘텐츠 사용 방지 기술
  • 인증: 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술

소프트웨어 설치 매뉴얼 작성

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

 

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

- 설치 과정에서 표시될 수 있는 오류 메시지 및 예외 상황에 관한 내용을 별도로 분류하여 설명한다.

- 소프트웨어 설치 매뉴얼에는 목차 및 개요, 서문, 기본 사항 등이 기본적으로 포함되어야 한다.

- 소프트웨어 설치 매뉴얼의 목차에는 전체 설치 과정을 순서대로 요약한 후 관련 내용의 시작 페이지를 함께 기술한다.


설치 매뉴얼 작성 순서

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

소프트웨어 사용자 매뉴얼 작성

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


사용자 매뉴얼 작성 순서

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

소프트웨어 버전 등록

 

형상 관리의 중요성

- 지속적인 소프트웨어의 변경 사항을 체계적으로 추적하고 통제할 수 있다.

- 제품 소프트웨어에 대한 무절제한 변경을 방지할 수 있다.

- 제품 소프트웨어에서 발견된 버그나 수정 사항을 추적할 수 있다.

- 소프트웨어는 형태가 없어 가시성이 결핍되므로 진행 정도를 확인하기 위한 기준으로 사용될 수 있다.


형상 관리 기능

  • 형상 식별: 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업이다.
  • 버전 제어: 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구를 결합시키는 작업이다.
  • 형상 통제(변경 관리): 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선이 잘 반영될 수 잇도록 조정하는 작업이다.
  • 형상 감사: 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업이다.
  • 형상 기록(상태 보고): 형상의 식별, 통제, 감사 작업의 결과를 기록'관리하고 보고서를 작성하는 작업이다.

소프트웨어의 버전 등록 관련 주요 용어

- 저장소(Repository): 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳

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

- 체크아웃(Check-Out):

  • 프로그램을 수정하기 위해 저장소에서 파일을 받아온다.
  • 소스 파일과 함께 버전 관리를 위한 파일들도 받아온다.

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

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

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

diff 도구: 비교 대상이 되는 파일들의 내용을 비교하며 서로 다른 부분을 찾아 표시해 주는 도구

소프트웨어 버전 등록 과정

가져오기(Import) -> 인출(Check-Out) -> 예치(Commit) -> 동기화(Update) -> 차이(Diff)

소프트웨어 버전 관리 도구

 

공유 폴더 방식

: 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식

 

클라이언트/서버 방식

: 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식

 

분산 저장소 방식

: 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식



빌드 자동화 도구

- 빌드란 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정이며, 이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구를 빌드 자동화 도구라고 한다.


Jenkins

- Java 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.

- 서블릿 컨테이너에서 실행되는 서버 기반 도구이다.

- SVN, Git 등 대부분의 형상 관리 도구와 연동이 가능하다.

- 친숙한 Web GUI 제공으로 사용이 쉽다.

- 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능하다.

 

Gradle

- Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용된다.

- 안드로이드 뿐만 아니라 플러그인을 설정하면, Java, C/C++, Python 등의 언어도 빌드가 가능하다.

- Groovy를 사용해서 만든 DSL을 스크립트 언어로 사용한다.

- Gradle은 실행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행한다.

- 이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능을 지원하므로 빌드의 속도를 향상시킬 수 있다.

반응형

댓글