정보처리기사/소프트웨어 개발

제품 소프트웨어 패키징 2

RangA 2023. 5. 17. 17:24

제품 소프트웨어 패키징

03. 제품 소프트웨어의 패키징 도구

1) 제품 소프트웨어 패키징 도구의 개념

  • 제품 소프트웨어의 배포를 위한 패키징 시 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공함
  • 제품 소프트웨어의 안전한 유통과 배포를 보장하는 도구이자 솔루션
  • 제품 소프트웨어의 패키징 작업 진행 시 암호화 및 보안 기능을 고려하여 패키징할 수 있도록 도와줌
  • 디지털 콘텐츠의 불법 사용, 복제 방지, 과금 서비스를 통한 정상적인 사용자를 검증 가능한 저작권 기술을 감안한 도구를 통해 패키징하는 것이 중요함
  • 불법 복제로부터 디지털 콘텐츠의 지적 재산권을 보호해 주는 사용 권한 제어 기술, 패키징 기술, 라이선스 관리, 권한 통제 기술 등을 포함

2) 제품 소프트웨어 패키징 도구 활용 시 고려사항

  1. 반드시 암호화 및 보안 기능 고려
    • 패키징 시 사용자에게 배포되는 소프트웨어임을 감안하여 반드시 내부 콘텐츠에 대한 옴호화 및 보안을 고려함
  2. 다양한 다른 기종 연동 고려
    • 패키징 도구를 활용하여 여러 가지 다른 기종 콘텐츠 및 단말기 간 DRM 연동을 고려함
  3. 사용자 편의성을 위한 복잡성 및 비효율성 문제 고려
    • 패키징 도구를 고려하면 사용자의 입장에서 불편해질 수 있기 때문에 최대한 효율적으로 적용될 수 있도록 함
  4. 제품 소프트웨어의 종류에 적합한 암호화 알고리즘 적용
    • 제품 소프트웨어 종류에 맞는 암호화 알고리즘을 선택하여 배포 시 범용성에 지장이 없도록 고려함
  5. 지속적인 배포 고려
    • CI와 연계된 지속적인 배포를 고려함
    • 짧은 주기의 배포로 빠른 제품 출시의 효과를 볼 수 있도록 함

3) 제품 소프트웨어 저작권 보호

  1. 저작권의 이해
    • 문학, 학술 또는 예술의 범위에 속하는 청작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권리
  2. 저작권 보호 기술의 개념
    • 콘텐츠 및 컴퓨터 프로그램과 같이 복제가 용이한 저작물에 대해 불법 복제 및 배포 등을 막기 위한 기술적인 방법을 통칭
    • 복제는 허용하나 사용자 확인을 거쳐 과금, 제품 소프트웨어 패키징 시 사용자 확인에 대해 상용화 과금 정책 수립이 연계됨
    • 종량제 BM을 갖는 제품 소프트웨어의 경우 요금 부과는 Clearing House를 통한 이용 시간에 비례한 요금으로 과금함
    • 패키징 도구는 암호화 및 보안 기능을 고려함
    • 패키징 제작자가 지정한 사업 규칙과 암호가 함께 패키징되어 배포됨
  3. 저작권 보호 기술의 필요성
    • 배포된 제품 소프트웨어의 무한 복제가 가능하고 원본과 복사본이 동일하게 배포될 특성을 가짐
    • 제품 소프트웨어가 상용으로 배포되면 다양한 부가 가치를 가질 수 있는 상품으로 바뀜에 따라 패키징 시 원작자에 대한 권리 보호가 우선 필요함

4) 저작권 보호 측면의 패키징 도구 활용

1. 저작권 관리의 구성 요소

  구성 요소     설명  
  콘텐츠 제공자(Contents Provider)     콘텐츠를 제공하는 저작권자  
  콘텐츠 분배자(Contents Distributor)     인터넷 상거래를 암호화된 콘텐츠로 제공  
  패키지(Package)     콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶음  
  보안 컨테이너     원본을 안전하게 유통하기 위한 전자적 보안 장치 사용  
  DRM 컨트롤러     배포된 콘텐츠의 이용 권한 통제  
  클리어링 하우스(Clearing House)     키 관리 및 라이선스 발급 관리  

2. 암호화/보안 기능 중심의 패키징 도구 기술 및 활용

  • 패키징 도구 구성 요소
    • 암호화
      • 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술
      • 공개키 기반 기술, 디지털 서명 등이 있음
      • PKI, 대칭키, 비대칭키, 디지털 서명
    • 키 관리
      • 콘텐츠를 암호화한 키에 저장 및 배포하는 기술
      • Centralized, Enveloping
    • 암호화 파일 생성
      • 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
      • Pre-packaging, On-the-fly-packaging
    • 식별 기술
      • 콘텐츠에 대한 식별 체계를 표현하는 기술
      • DOI, URI
    • 저작권 표현
      • 라이선스의 내용 표현 기술
      • XrML, MPEG-21 REL, ODRL
    • 정책 관리
      • 라이선스 발급 및 사용에 대한 정책을 표현하거나 관리하는 기술
      • XML, Contents Management System
    • 크랙 방지
      • 크랙에 의한 콘텐츠 사용을 방지하는 기술
      • Code Obfuscation, Kernel Detection, Nodule Certification, Secure DB, Secure Time Management, Encryption
    • 인증
      • 라이선스 발급 및 사용의 기준이 되는 사용자를 인증하는 기술
  • 패키징 도구 적용 관련 기술적 동향
    • 패키징 도구 벤더에 의해 개발되던 각종 기술이 표준화를 통해 통합하여 플랫폼화함
    • 클라우드 환경에서 디지털 콘텐츠의 투명한 접속, 이용, 이동 등의 사용 편리성을 보장함
    • 특정 도구나 환경에서만 적용되지 않는 범용성 확보, 벤더 간 식별 체계, 상호 호환성 등을 표준화하기 위해 노력함



04. 패키징에서의 릴리즈 노트

1) 릴리즈 노트의 개념

  • 소프트웨어와 함께 배포되는 문서
  • 소프트웨어의 변경 사항을 기록, 설명하는 문서
  • 소프트웨어 최종 사용자에게 전달되는 제품에 대한 공유 정보
  • 릴리즈 정보들은 철저하게 테스트를 진행한 후 개발팀에서 제공하는 사양에 대해 최종 승인된 후 문서를 통해 배포
  • 회사가 제공하는 제품 소프트웨어를 만들어 수정 또는 개선하는 일련의 작업들
  • 사용자와 릴리즈 정보를 공유하는 문서로 릴리즈 노트에 대한 표준 형식은 없음
  • 릴리즈 노트는 개발팀에서 소유권을 가지고 직접 작성해야 함
  • 현재 시점에서 작성되어야 하며, 명확하고 정확하며 완전한 정보를 제공
  • 신규 소스, 빌드 등을 배포 시부터 이력을 정확하게 관리하여 진행

2) 릴리즈 노트의 중요성

  • 릴리즈 노트에는 테스트 결과와 정보가 포함
  • 사용자는 테스트가 어떻게 진행됐는지 알 수 있음
  • 개발팀의 제공 사양을 얼마나 준수했는지를 확인해 볼 수 있음
  • 사용자에게 보다 더 확실한 정보를 제공
  • 전체적인 제품의 수행 기능 및 서비스의 변화를 공유
  • 자동화 개념과 함께하여 적용할 수 있음
  • 전체적인 버전 관리를 할 수 있음
  • 릴리즈 정보를 체계적으로 관리할 수 있음

3) 릴리즈 노트 작성 시 고려사항

  1. 초기 버전 릴리즈 노트 작성 항목
    • 릴리즈 노트는 소프트웨어 릴리즈의 수정 사항, 개선 사항 및 오류 수정을 간결하게 요약한 것
    • 릴리즈 노트는 표준 형식은 없지만 배포되는 정보의 유형과 요구사항을 기초로 한 공통 항목이 있음
      • 헤더 : 릴리즈 노트 이름, 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 번호 등을 기술
      • 개요 : 제품 및 변경에 대한 전반적 개요를 간략하게 기술
      • 목적 : 목적과 릴리즈 버전의 새로운 기능 목록에 대한 간략한 개요를 기술
      • 이슈 요약 : 오류의 간단한 설명 또는 릴리즈 추가 항목을 요약
      • 재현 항목 : 오류 발견에 따른 재현 단계를 기술
      • 수정, 개선 내용 : 수정, 개선의 간단한 설명을 기술
      • 사용자 영향도 : 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램의 영향도를 기술
      • 소프트웨어 지원 영향도 : 버전 변경에 따른 소프트웨어의 지원 프로세스 및 영향도를 기술
      • 노트 : 소프트웨어 및 하드웨어 설치 항목, 제품, 문서를 포함한 갱신 등의 항목을 메모
      • 면책 조항 : 회사 및 표준 제품과 관련된 메시지, 프리웨어, 불법 복제 방지, 중복 등 참조에 대한 고지 사항을 기술
      • 연락 정보 : 사용자 지원 및 문의 관련한 연락처 정보를 기술
  2. 릴리즈 노트 추가 작성 및 개선 사항 발생의 예외 케이스
    • 테스트 단계에서의 베타 버전 출시
      • 제품 소프트웨어의 다음 버전이나 새로운 베타 버전 테스트 단계에서도 릴리즈 버전으로 릴리즈 노트를 작성할 수 있음
      • 현 베타 버전을 신규 소스로 하여 릴리즈 노트를 만들지, 예외 사항으로 베타 버전에 대한 릴리즈 노트를 따로 만들지 사전에 정의해야 함
    • 긴급 오류 수정 시
      • 긴급 오류를 수정할 경우 릴리즈 노트를 작성
      • 긴급 오류를 수정할 경우 릴리즈 노트 작성을 놓치는 경우가 많음
      • 오류 번호와 수정된 오류를 반드시 릴리즈 노트에 추가
    • 자체 기능 향상을 포함한 모든 추가 기능의 향상
      • 기능의 개선을 완료했을 때 릴리즈 버전을 추가하여 신규 릴리즈 노트를 작성
      • 갱신은 소프트웨어 및 하드웨어에 대한 항목까지 포함함
    • 사용자 요청에 따른 특이한 케이스 발생
      • 제품 소프트웨어가 사용자에 배포된 릴리즈 노트의 연락처 정보를 통해 사용자의 의견이 접수된 경우
      • 허용되는 범위 내에서 요청이 접수될 경우 이를 자체 기능 향상과는 별도의 버전으로 새롭게 릴리즈 노트를 작성할 수 있음