본문 바로가기
정보처리기사 실기

12. 제품 소프트웨어 패키징

by Killing_me__ 2021. 7. 2.
반응형

Chapter 1. 제품 소프트웨어 패키징하기
1. 모듈화(Modulation)
- 모듈을 이용하여 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법
- 모듈 간 결합도의 최소화하고 모듈 내 요소들 간의 응집도 최대화 하는 것이 중요
- 개발 편의성 : 프로그램의 효율적인 관리, 전체적인 소프트웨어 이해의 용이성 증대, 소프트웨어 시험, 통합,수정 시 용이성 제공, 모듈의 재사용 가능으로 개발과 유지보수가 용이, 오류의 파급효과 최소화
- 복잡성 감소 : 기능의 분리가 가능하고 인터페이스가 단순, 복잡도 감소로 인한 성능 향상

2. 사용자 중심의 모듈 패키징 작업 수행
기능식별 / 모듈화 / 빌드 진행 / 사용자 환경 분석 / 패키징 적용 시험 / 패키징 변경 개선

3. 릴리즈 노트
- 조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서
- 회사가 제공하는 제품을 만들어 수정, 변경 또는 개선하는 일련의 작업들이며, 릴리즈 정보들이 이러한 문서를 통해 제공됨
- 릴리즈 노트 정보들은 테스트를 진행, 개발 팀에서 제공하는 사양에 대해 최종 승인된 후 문서 배포
<릴리즈 노트의 중요성>
정보 제공
- 테스트 결과와 정보가 포함
- 최종 배포된 릴리즈 노트에는 테스트 진행과정, 개발 팀의 제공사양 준수 정도를 파악할 수 있음
- 더 자세하고 확실한 정보 제공
- 전체적인 제품의 수행 기능 및 서비스의 변화 공유
관리의 용이성
- 자동화 개념과 함께 적용 가능
- 전체적인 버전 관리 및 릴리즈 정보를 체계적으로 관리

4. 패키징 도구 활용 시 고려 사항
- 암호화/보안 고려 : 패키징 시 사용자에게 배포되는 소프트웨어임을 감안하여 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려
- 이기종 연동을 고려 : 패키징 도구를 활용하여 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동을 고려
- 사용자 편의성 고려 : 패키징 도구를 고려하면 사용자의 입장에서 불편해질 수 있는 문제를 고려하여, 최대한 효율적으로 적용
- 적합한 암호화 알고리즘을 적용 : 암호화 알고리즘이 여러 가지 종류가 있는데, 제품 소프트웨어의 종류에 맞는 알고리즘을 선택하여 배포 시 범용성에 지장이 없도록 고려

5. 저작권 보호 기술의 특성
- 콘텐츠 복제 제한적 허용 : 복제는 허용하나 사용자의 확인을 거쳐 과금, 제품소프트웨어 패키징 시에 사용자 확인에 대해 상용화 과금 정책 수립이 연계
- 종량제 : 종량제 제품 소프트웨어의 경우 요금 부과는 클리어링 하우스를 통한 이용시간에 비례한 과금
- 암호화/보안 기능 : 패키징 도구는 암호화/보안 등의 기능을 고려, 패키징 제작자가 지정한 Business Rule과 암호가 함께 패키징되어 배포

6. 디지털 저작권 관리(DRM)
- 콘텐츠 제공자(Contents Provider) : 콘텐츠를 제공하는 저작권자
- 콘텐츠 분배자(Content Distributor) : 쇼핑몰 등으로써 암호화된 콘텐츠 제공
- 패키저(Packager) : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능
- 보안 컨테이너(Security Container) : 원본을 안전하게 유통하기 위한 전자적 보안 장치
- DRM 컨트롤러(DRM Controller) : 배포된 콘텐츠의 이용 권한을 통제
- 클리어링 하우스(Clearing House) : 키 관리 및 라이선스 발급 관리

7. 암호화/보안 기능 중심의 패키징 도구 구성
1) 암호화
- 공개키 기반구조(PKI) : 공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호 기술
- 대칭 및 비대칭 암호화 : 대칭 암호화는 암호화와 해독을 위해 동일한 키를 사용하는 암호화 방식
비대칭 암호화는 데이터를 암호화할 때와 이를 해독할 때 서로 다른 키를 사용하는 방식
- 전자서명 : 서명자를 확인하고 서명자가 당해 전자문서에 서명했다는 사실을 나타내기 위해 특정 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보
2) 식별기술
- DOI(Digital Object Identifier) : 디지털 저작물에 특정한 번호를 부여하는 일종의 바코드 시스템, 디지털 저작물의 저작권 보호 및 정확한 위치 추적이 가능한 시스템
- URI(Uniform Resource Identifier) : 인터넷에 있는 자원을 나타내는 유일한 주소
3) 저작권 표현
- XrML(extensible Right MArkup Language) : 디지털 콘텐츠 / 웹 서비스 권리 조건을 표현한 XML 기반의 마크업 언어
- MPEG-21 : 멀티미디어 관련 요소 기술들이 통일된 형태로 상호 운용성을 보장하는 멀티미디어 표준 규격
4) 암호화 파일 생성
- Pre-packaging : 콘텐츠를 등록하자마자 암호화하는 방법
- On-the-fly Packaging : 사용자가 콘텐츠를 요청한 시점에 콘텐츠를 암호화하는 방법
5) 정책관리
- XML(eXtensible Markup Language) : 다른 특수한 목적을 갖는 마크업 언어를 만드는 데 사용하도록 권장하는 다목적 언어
- CMS(Contents Management System) : 콘텐츠 관리시스템은 다양한 미디어 포맷에 따라 각종 콘텐츠를 작성, 수집, 관리, 배급하는 콘텐츠 생산에서 활용, 폐기 전까지 전 공급 과정을 관리하는 기술
6) 크랙 방지
- 코드 난독화 : 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술
- Secure DB : 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 데이터베이스 보안 강화 기술
7) 인증
- SSO(Single Sign On) : 한 번의 시스템 인증을 통하여 여러 정보시스템에 재인증 절차 없이 접근할 수 있는 통합 로그인 기술

Chapter 2. 제품 소프트웨어 매뉴얼 작성
1. 제품 소프트웨어 설치 매뉴얼 구성요소
- 제품 소프트웨어 개요 : 주요 기능 및 UI 설명, UI 및 화면상의 버튼, 프레임 등을 도식화하여 설명
- 설치 관련 파일 : 제품 소프트웨어를 설치하기 위한 관련 파일 설명, 설치 구동을 위한 exe 실행 파일, ini나 log 파일 같은 관련 파일
- 설치 절차 : 제품 소프트웨어 설치를 위한 상세 절차 설명, 설치 디렉터리, 위치 설명
- 설치 아이콘 : 윈도즈 구동용 설치 아이콘 설명
- 삭제 방법 : 제품 소프트웨어 삭제 시 원래대로 삭제하는 방법 설명
- 설치 버전 및 작성자 : 제품 소프트웨어 릴리즈 버전 및 작성자 정보
- 고객 지원 방법 및 FAQ : 설치 관련하여 기술적인 지원이나 제품 서비스를 받을 수 있는 유선 및 이메일, 홈페이지 주소, 설치 시 자주 발생하는 오류 및 처리 방법에 대한 요약 설명
- 준수 정보 & 제한 보증 : 시리얼 보존, 불법 등록 사용 금지 등의 준수 사항 권고, 저작권 정보 관련 사항 작성

2. 제품 소프트웨어 배포용 미디어 제작하기
배포용 미디어 선정 / 관리 체계 확인 / 설치 파일, 매뉴얼 확인 / 최종 배포본 검증 / 배포용 미디어 정보 확인 / 최종 미디어 인증 확인 및 배포

Chapter 3. 제품 소프트웨어 버전 등록
1. 소프트웨어의 형상 관리 역할
- 관리 유용 : 형상 관리를 통해 이전 리비전이나 버전에 대한 정보에 언제든지 접근 가능하여 배포본 관리에 유용
- 동시 개발 : 동일한 프로젝트에 대해 여러 개발자 동시 개발 가능
- 빠른 복구 : 에러가 발생했을 경우 빠른 시간 내에 복구 가능
- SW 적시 공급 : 사용자의 요구에 따라 적시에 최상의 소프트웨어 공급

2. 버전 관리 도구의 버전 관리 항목
- 가져오기(Import) : 버전 관리되지 않은 로컬 디렉토리 파일을 처음으로 저장소에 복사
- 추가(Add) : 개발자가 신규로 어떤 파일을 저장소에 추가
- 체크아웃(Check-out) : 저장소 파일 받기
- 체크인(Check-in) : 저장소에 새로운 버전으로 갱신
- 업데이트(Update) : 커밋 작업 이후 새로운 개발자가 자신의 작업 공간을 동기화
- 커밋(Commit) : 체크인 시 이전 갱신 사항이 있는 경우 충돌 알림, diff 도구 이용 수정, 커밋 과정 수행
- 저장소(repository) : 파일의 현재 버전과 변경 이력 정보를 저장하는 저장소
- 차이(Diff) : 새로운 개발자가 추가된 파일의 수정 기록을 보면서 기존 개발자가 처음 추가한 파일과 이후 변경된 파일의 차이를 확인

3. 소프트웨어 버전관리 도구 유형
1) 공유 폴더 방식(RCS, SCCS)
- 매일 개발이 완료된 파일은 약속된 위치의 공유 폴더에 복사하는 방식
- 담당자 한 명이 매일 공유 폴더 파일을 자기 PC로 복사하고 컴파일 하영 에러 확인과 정상 동작 여부 확인
- 정상 동작일 경우 다음날 각 개발자들이 동작 여부 확인
2) 클라이언트/서버 방식(CVS, SVN)
- 중앙에 버전관리 시스템을 항시 동작시킴
- 개발자들의 현재 작업 내용과 이전 작업내용 축적에 용이
- 서로 다른 개발자가 같은 파일을 작업했을 때 경고메시지 출력
3) 분산 저장소 방식(Git, Bitkeeper 등)
- 로컬 저장소와 원격 저장소로 분리된 구조
- 중앙의 저장소에서 로컬 파일을 복사(Clone)한 순간 개발자 자신만의 로컬 저장소에 생성
- 개발 완료한 파일을 수정한 다음 로컬 저장소에 우선적으로 커밋한 후, 다시 원격 저장소에 반영(Push) 하는 방식

4. 소프트웨어 버전관리 도구별 특징
- CVS(Concurrent Version System) : 서버와 클라이언트로 구성되어 다수의 인원이 동시에 범용적인 운영체제로 접근 가능하여 버전 관리가 가능한 도구
- SVN(Subversion) : 하나의 서버에서 소스를 쉽고 유용하게 관리할 수 있게 도와주는 도구, 저장소를 만들어 그곳에 소스를 저장해 소스 중복이나 여러 문제를 해결하기 위한 도구
- RCS(Revision Control System) : 소스 파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일 잠금 방식으로 버전 관리
- Bitkeeper : SVN과 비슷한 중앙 통제 방식으로 대규모 프로젝트에서 빠른 속도를 내도록 개발된 버전 관리 도구
- Git : 속도에 중점을 둔 분산형 버전 관리 시스템이며, 대형 프로젝트에서 효과적이고 유용, Commit과 Push로 원격저장소에 반영, 완전한 형태의 저장소
- Clear Case : 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있음

반응형

댓글