[자격증] 정보처리기사 실기 : 31강 제품소프트웨어 패키징 (제품소프트웨어 패키징하기)

 정보

  • 업무명     : 정보처리기사 실기 : 31강 제품소프트웨어 패키징 (제품소프트웨어 패키징하기)

  • 작성자     : 이상호

  • 작성일     : 2020-05-16

  • 설   명      :

  • 수정이력 :

 

etc-image-0

 

 내용

[사용자 중심의 패키징 수행]

[1] 제품 소프트웨어 패키징의 개요
  • 제품 소프트웨어 패키징은 고객 편의성 중심으로 진행되며, 이를 위한 매뉴얼 및 버전 관리를 포함한다. 따라서 전체적인 개념을 먼저 이해하고 작업을 진행한다. 

  • 1. 제품 소프트웨어 패키징의 개념 

    • 제품 소프트웨어 패키징은 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형 태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하며, 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위해 버전 관리를 수행하는 능력이다. 

  • 2. 제품 소프트웨어 적용상의 특성 

    • (1) 제품 소프트웨어는 개발자가 아닌 사용자 중심으로 진행된다. 

    • (2) 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징한다. 

    • (3) 고객의 편의성을 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해 간다. 

    • (4) 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.

 

[2] 제품 소프트웨어 패키징을 위한 모듈 빌드
  • 제품 소프트웨어 패키징은 모듈들을 통해 수행되므로, 최초 소스 개발 시 해당 모듈의 개 념 및 모듈화를 통해 제품 소프트웨어 패키징을 가져간다. 소프트웨어의 모듈 및 모듈화를 이해하고 이를 빌드하는 기법을 통해 패키징을 성공적으로 수행한다. 

  • 1. 소프트웨어의 모듈 및 패키징 

    • (1) 소프트웨어 모듈의 이해 

      • (가) 모듈 및 모듈화 

        • - 소프트웨어 설계에서 기능단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위를 모듈로 규정하고, 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법 을 모듈화라고 한다.

      • (나) 모듈화의 장점

        • - 프로그램의 효율적인 관리 및 성능 향상 

        • - 전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소 

        • - 소프트웨어 시험, 통합, 수정 시 용이성 제공 

        • - 기능의 분리가 가능하고 인터페이스가 단순 

        • - 오류의 파급 효과를 최소화 

        • - 모듈의 재사용 가능으로 개발과 유지보수가 용이

      • (다) 모듈화의 목표 

        • - 모듈 간 결합도의 최소화(Loose Coupling) 

        • - 모듈 내 요소들간의 응집도 최대화(Strong Cohesion)

    • (2) 제품 소프트웨어의 모듈 및 패키징 

      • 제품 소프트웨어에서는 모듈의 개념을 정확하게 이입하고, 이에 맞는 기능 단위로 패키징하는 것이 필요하다. 패키징 배포 시 제품 소프트웨어의 성능을 향상시킬 수 도 있고 배포 전 시험 및 수정 등의 작업 진행에서도 모듈 단위로 모든 것을 분류 하여 작업을 진행한다. 

  • 2. 제품 소프트웨어 모듈 빌드 기법 

    • (1) 소프트웨어 빌드 소프트웨어 빌드(Software Build)는 소스 코드 파일을 컴퓨터에서 실행할 수 있는 제 품 소프트웨어의 단위로 변환하는 과정을 말하거나 그에 대한 결과물을 일컫는다. 소프트웨어 빌드는 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정을 핵심으로 수행되며, 빌드에 따른 결과물에 대한 상세 확인이 필요하다

    • (2) 제품 소프트웨어를 위한 빌드 기법 

      • 소프트웨어 빌드 시스템의 기본 개념을 알고, 빌드의 실행 단위 컴파일, 이를 위한 빌 드 도구의 특징 및 사례들의 사전 확인이 필요하다. 빌드 도구는 이를 도와주는 유용 한 유틸리티이며 이를 활용하여 컴파일 이외에도 제품 소프트웨어 완성을 위해 다양 한 일을 할 수 있다. 대표적인 도구들로는 Ant, Make, Maven, Gradle 등의 빌드 도구 들이 있다. 또 빌드 과정에 대한 문서화를 체크해 두면 다양한 이력에 대한 관리가 가 능하다. 

 

[3] 사용자 중심의 패키징 작업 이해
  • 제품 소프트웨어 패키징은 사용자를 위해 진행되는 작업으로서, 고객 편의성 및 사용자 실행 환경을 우선 고려하여 진행한다. 

    • 1. 사용자 실행 환경의 이해 

      • 고객 편의성을 위해 사용자 실행 환경을 우선 고려하여 패키징을 진행한다. 여기서의 사 용자 환경은 OS부터 시작하여 실행 환경, 시스템 사양 및 고객의 사용 방법까지 상세 분류하여 실행 환경을 사전 정의한다. 만약 여러 가지 실행 환경이 나오게 된다면 해당 경 우에 맞는 배포본을 분류하여 패키징 작업을 여러 번 수행할 수도 있다. 

    • 2. 사용자 관점에서의 패키징 고려 사항 

      • 고객 편의성을 위해 사용자 환경을 확인하여 다음과 같이 여러 가지 케이스를 사전에 고려한다. 

        • (1) 사용자의 시스템 환경 즉, OS CPU 메모리 등의 수행 최소 환경을 정의한다. 

        • (2) 사용자가 직관적으로 확인할 수 있는 UI(User Interface)를 제공하고, 매뉴얼과 일치 시켜 패키징 작업한다. 

        • (3) 제품 소프트웨어는 하드웨어와 함께 통합 적용될 수 있도록, 패키징은 Managed Service 형태로 제공되는 것이 좋다. 

        • (4) 제품 소프트웨어는 고객 편의성을 위해 안정적 배포가 가장 중요하고, 다양한 사용 자 군(群) 의 요구 사항을 반영하기 위해 항상 패키징의 변경 및 개선 관리를 고려 하여 패키징 배포한다.

    • 3. 제품 소프트웨어 패키징 

      • 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성하며, 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위해 버전 관리를 수행하는 능력 

    • 4 .제품 소프트웨어 매뉴얼 

      • 제품 소프트웨어 개발 단계부터의 적용 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용 등을 문서로 기록한 것이며, 사용자 중심의 기능 및 방법을 나타낸 설명서 와 안내서

    • 5. 제품 소프트웨어 버전 관리 

      • 기본적으로 작성된 패키지의 변경 내용을 관리하고, SW의 변화를 시간에 따라 기록하며 특정 시점의 버전을 다시 꺼내올 수 있도록 관리하는 체계

 

[수행-사용자 중심의 모듈 패키징 작업 수행하기]

etc-image-1

[1] 신규 개발 소스의 목적 및 기능을 식별한다.
  • 1. 기능 수행을 위한 입출력 데이터 

    • : 소스 기능을 통해 처리되는 int, char형 데이터이다. 

  • 2. 전체적인 기능 정의 및 데이터 흐름 

    • : 소스 내부 메인 함수의 기능 식별, 관련 데이터 의 흐름 및 출력 절차를 확인한다. 

  • 3. Function 단위 및 Output에 대한 상세 정의 

    • : 메인 함수 이외의 호출 함수를 정의하고 이에 대한 출력값을 식별한다.

 

[2] 모듈 단위 분류 및 모듈화를 순서에 맞게 진행한다
  • 1. 수행을 위한 기능 단위 및 서비스 분류 

    • : 모듈로 분류할 수 있는 기능 및 서비스 단위 로 분류한다. 

  • 2. 패키징 개념에서의 기능의 공유와 재활용 분류 

    • : 여러 번 호출되어 지는 공유, 재활용 함수를 분류한다. 

  • 3. 모듈 간 결합도와 응집도 (Loose Coupling & Strong Cohesion) 식별

    • : 모듈화를 위해 결 합도와 응집도를 식별해내고 모듈화 수행을 준비한다.

 

[3] 제품 소프트웨어의 빌드 도구를 활용한 빌드를 단위별 진행한다.
  • 1. 신규 개발 소스 및 컴파일 결과물 준비 

    • : 빌드 진행을 위한 신규 소스 및 결과물을 준 비한다. 

  • 2. 정상 기능 단위 및 서비스 분류 

    • : 정상으로 빌드가 되는 기능 및 서비스를 사전에 분류 한다. 

  • 3. 빌드 도구 확인 및 정상 수행 

    • : 빌드 도구의 사전 선택 확인 및 빌드 도구를 통한 빌드 를 수행한다. 

  • 4. 컴파일 이외의 도구의 다양한 기능 확인 

    • : 컴파일 이외의 에디터, CI 도구 등 관련 도구 들에 대한 추가 학습을 진행한다.

 

[4] 고객 편의성을 위한 사용자의 요구 사항 및 사용 환경을 사전에 분석한다.
  • 1. 최소 사용자 환경 사전 정의 : 패키징 수행 시 실제 사용할 User의 사용자 환경을 사전 에 정의한다. 

  • 2. 모듈 단위의 여러 가지 기능별 사용자 환경 테스트 : 수행한 모듈화의 결과에 따른 여 러 가지 사용자 테스트를 수행한다.

 

[5] 최종 패키징에 대해서 사용자 입장에서의 불편한 점을 체크한다
  • 1. 사용자 환경에서의 패키징 적용 시험 : 사용자 환경과 똑같은 상황으로 패키징을 적용 하여 SW테스팅을 수행한다. 

  • 2. UI 및 시스템 상의 편의성 체크 : SW가 UI 및 시스템 환경과 맞지 않는 것이 있는지, 불 편한 부분이 있는지 사전에 체크한다. 

 

[6] 사용자 입장을 반영하여 패키징에서 변경 및 개선을 진행한다.
  • 1. 패키징 적용 시 변경점 도출 

    • 사용자 입장을 반영하여 재패키징을 대비해 변경 부분을 정리한다. 

  • 2. 최소 사용자 환경에서 서비스 가능한 수준의 개선 

    • 현재 사용자 환경 내에서 가능한 최소 수준의 개선 포인트를 도출한다. 

  • 3. 모듈 및 빌드 수정을 통한 개선 버전의 재배포를 실습 

    • 도출된 변경점을 기준으로 모듈, 빌드 수정을 하고 재배포를 수행한다. 

 

[버전을 고려한 제품 릴리즈 노트 작성]

[1] 패키징에서의 릴리즈 노트의 파악
  • 제품 소프트웨어 패키징에서의 릴리즈 노트는, 소프트웨어 제품이 개발 또는 테스트 상태 이거나, 제품 베타 버전 등의 상태일 경우, 업데이트가 해제될 때 등 다양한 케이스에 대 해서 실무에서 작성되어 왔다. 제품 소프트웨어 패키징의 경우, 앞 단위에서 학습한 것처럼 고객 편의성을 고려하여 릴리스 노트를 작성하고 고객에게 전달된다. 

  • 1. 릴리즈 노트의 개념 

    • 릴리즈 노트는 조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서이다. 상세 서비스를 포함하여 회사가 제공하는 제품을 만들어 수정, 변경 또는 개선하는 일련 의 작업들이며, 릴리즈 정보들이 이러한 문서를 통해 제공된다. 이 정보들은 철저하게 테스트를 진행하고, 개발 팀에서 제공하는 사양에 대해 최종 승인된 후 문서를 통해 배포된다. 

  • 2. 릴리즈 노트의 중요성 

    • (1) 릴리즈 노트에는 테스트 결과와 정보가 포함된다. 사용자에게 최종 배포된 릴리즈 노트를 보면 테스트가 어떻게 진행됐는지, 개발 팀의 제공 사양을 얼마나 준수했는지를 확인해 볼 수 있다. 

    • (2) 사용자에게 보다 더 확실한 정보를 제공한다. 

    • (3) 기본적으로 전체적인 제품의 수행 기능 및 서비스의 변화를 공유한다. 

    • (4) 자동화 개념과 함께하여 적용할 수 있다. 이를 통해 전체적인 버전 관리 및 릴리즈 정보를 체계적으로 관리할 수 있다. 

 

[2] 릴리즈 노트 작성 시 고려 사항
  • 릴리즈 노트는 개발 팀에서 Ownership을 가지고 직접 작성하여야 한다. 현재 시제로 작성 되어야 하며, 명확하고 정확하며 완전한 정보를 제공한다. 

  • 그리고 신규 소스, 빌드 등을 배포 시부터 이력을 정확하게 관리하여 진행한다. 

    따라서 개 발자와 테스터가 함께 협업을 해야 하고 최초 및 변경, 개선 항목까지 연결되어 다음 항목 에 대한 정보들이 릴리즈 노트를 통해 작성되어야 한다. 

  • 1. 초기 버전 릴리즈 노트 작성 항목 

    • 릴리즈 노트는 보통 특정 소프트웨어 릴리즈의 최근 변경 사항, 개선 사항 및 버그 수정 을 간결히 요약한 것이다. 사실 개발 조직 차원에서의 릴리스 노트에 대한 표준 형식은 없다. 하지만 통상적으로 배포되는 정보의 유형과 사용자의 요구 사항에 기초하여 공통 항목으로 서식에 대한 다음 스타일은 정의되어야 한다.

etc-image-2

  • 2. 릴리즈 노트 추가 작성 및 개선 사항 발생의 예외 케이스 

    • 릴리즈 정보의 예외 케이스 발생에 따른 추가 및 개선 항목이 나타날 수 있으므로 릴리즈 노트의 항목이 추가될 수 있다. 테스트 단계에서 베타 버전이 출시되거나, 긴급 버그 수 정, 자체 기능 향상 등의 특이한 케이스 등이 발생할 수 있으므로 이러한 경우에도 추가 항목이 작성되어야 한다. 

      • (1) 테스트 단계에서의 베타 버전 출시 

        • 제품 소프트웨어의 차기 버전이나 신규 버전의 베타 버전 테스트 단계에서도 릴리즈 버전으로 정보를 체크하여 릴리즈 노트를 작성할 수 있다. 이럴때는 자체에서 기준을 수립하여 현 베타 버전을 신규 소스로 하여 릴리즈를 할지, 예외 사항으로 베타 버전에 대한 릴리즈 노트를 따로 만들지 사전에 정의해야 한다. 

      • (2) 긴급 버그 수정 시 

        • 긴급한 버그가 발견되어 이를 수정할 경우의 릴리즈 노트 작성이다. 보통 긴급히 버그 가 수정되면 릴리즈 노트 작성을 놓치는 경우가 많다. 반드시 버그 번호를 포함한 모 든 수정된 버그를 기술하여 릴리즈 노트에 추가한다. 

      • (3) 자체 기능 향상을 포함한 모든 추가 기능의 향상 

        • 자체적으로 기능 개선을 완료했을 때 정식으로 릴리즈 버전을 추가하고, 이에 따른 신 규 릴리즈 노트를 작성한다. 업그레이드는 SW 및 HW에 대한 항목까지 포함된다. 

      • (4) 사용자 요청에 따른 특이한 케이스 발생 

        • 제품 소프트웨어가 사용자에 배포됨에 따라 기존에 배포된 릴리즈 노트의 연락처 정 보를 통해 사용자의 의견이 접수된 경우이다. 개발 팀 내부에서 허용되는 범위 내에서 요청이 접수될 경우 이를 자체 기능 향상과는 별도의 버전으로 새로 추가하여 릴리즈 노트를 작성할 수 있다.

 

[수행-버전을 고려한 제품 릴리즈 노트 작성하기]

[1] 신규 패키징 제품의 모듈, 빌드 내용을 식별한다.
  • 1. 릴리즈 노트 작성을 위한 모듈 및 빌드 : 모듈 및 빌드 수행 후 릴리즈 노트 기준의 항 목 순서대로 정리 

  • 2. I/O 데이터, 전체적인 기능 정의 및 데이터 흐름 : 소스 기능을 통해 처리되는 int, char 형 데이터, 기능 및 데이터의 흐름 정리 

  • 3. Function 단위 및 Output에 대한 상세 정의 : 메인 함수 이외의 호출 함수를 정의하고 이에 대한 출력값을 식별

 

[2] 패키징된 릴리즈 정보를 확인한다.
  • 1. 문서 이름(릴리스 노트 이름), 제품 이름 : 릴리즈 노트 작성을 위해 문서명, 제품명의 릴리즈 기본 정보 확인 

  • 2. 버전 번호, 릴리즈 날짜 : 최초 패키징 버전 작성을 위한 번호, 초기 릴리즈 날짜 확인 

  • 3. 참고 날짜, 노트 버전 : 매번 패키징 수행 진행날짜 및 릴리즈 노트의 갱신 버전 확인

 

[3] 빌드 내용에 따라 릴리즈 노트의 개요를 작성한다.
  • 1. 제품 및 변경에 대한 간략한 전반적인 개요 : 빌드 이후에 제품 및 패키징에 대한 간략 히 메모한다. 

  • 2. 개발 소스의 빌드에 따른 결과물 : 빌드 이후의 패키징본에 대한 결과를 기록한다. 

  • 3. 버전 및 형상 관리에 대한 전반적인 노트(Note) : 버전 번호 내용, 버전 관리 사항 등을 릴리즈 노트에 기록한다.

 

[4] 이슈, 버그 및 추가 영향도를 체크하여 기술한다.
  • 1. 버그의 간단한 설명 또는 릴리즈 추가 항목 : 발생된 버그의 설명, 개선한 릴리즈 항목 을 기술한다. 

  • 2. 버그에 대한 내용 반드시 재현 및 재현 내용 : 버그 발견을 위한 재현 테스트 및 재현 환경을 기록한다. 

  • 3. S/W 및 사용자 입장에서의 영향도 파악 : 이슈, 버그 발생에 따른 영향도를 상세 기술 한다

 

[5] 학습한 항목에 따른 내용을 포함하여 정식 릴리즈 노트를 작성한다.
  • 1. 릴리즈 정보, Header 및 개요 반드시 포함 : 위의 내용을 포함하여 정식 릴리즈 노트에 기본 사항을 포함하여 기술한다. 

  • 2. 이번 정보의 릴리즈 노트 개요 : 정식 버전을 기준으로 릴리즈 노트의 개요를 작성한다 

  • 3. 이슈, 버그 등 개선에 따른 원인 재현 내용 : 개선한 포인트를 중심으로 원인, 테스트 내용을 기술한다. 

  • 4. 영향도 : 이슈, 버그에 따른 영향도를 상세히 기술한다. 

 

[6] 추가 개선에 따른 추가 항목을 식별하여 릴리즈 노트를 작성한다.
  • * 릴리즈 노트 양식은 상세 설명 참조. 

  • 1. 베타 버전 발생을 가정한 테스트 단계 : 추가 개선에 대한 베타 버전을 이용 테스트를 수행한다. 

  • 2. 긴급 버그 수정 : 테스트 중 발생한 긴급 버그를 즉시 수정한다. 

  • 3. 추가 기능 향상 : 버그 이외에 추가 기능 향상을 위해 작은 기능을 수정한다. 

  • 4. 사용자 요청에 따른 추가 개선 : 사용자 요청 발생 시 이에 따른 기능 개선을 계획 및 수정한다. 

 

[패키징 도구를 활용한 설치, 배포 수행]

[1] 제품 소프트웨어의 패키징 도구
  • 제품 소프트웨어 패키징 도구는, 패키징 작업 진행 시에 암호화/보안 기능을 고려하여 패 키징할 수 있도록 도와준다. 특히 디지털 콘텐츠의 불법 사용, 복제 방지, 과금 서비스를 통한 정상사 용자를 검증 가능한 저작권 기술을 감안한 도구를 통해 패키징하는 것이 중 요하다. 

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

    • 제품 소프트웨어 패키징 도구는 배포를 위한 패키징 시에 디지털 콘텐츠의 지적 재산권 을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구이자 솔루 션이다. 특히 패키징 도구는 불법 복제로부터 디지털 콘텐츠의 지적 재산권을 보호해 주 는 사용 권한 제어 기술, 패키징 기술, 라이선스 관리, 권한 통제 기술 등을 포함한다.

  • 2. 패키징 도구 활용 시 고려 사항 

    • (1) 반드시 암호화/보안을 고려한다. 패키징 시 사용자에게 배포되는 소프트웨어임을 감안하여 반드시 내부 콘텐츠에 대 한 암호화 및 보안을 고려한다. 

    • (2) 추가로 다양한 이기종 연동을 고려한다. 패키징 도구를 활용하여 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동을 고려한다. 

    • (3) 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려한다. 패키징 도구를 고려하면 사용자의 입장에서 불편해질 수 있는 문제를 고려하여, 최대 한 효율적으로 적용될 수 있도록 한다.

    • (4) 제품 소프트웨어의 종류에 적합한 암호화 알고리즘을 적용한다. 암호화 알고리즘이 여러 가지 종류가 있는데, 제품 소프트웨어의 종류에 맞는 알고리 즘을 선택하여 배포 시 범용성에 지장이 없도록 고려한다

 

[2] 제품 소프트웨어 저작권 보호의 이해와 필요성
  • 1. 저작권의 이해 

    • 문학 학술(學術) 또는 예술의 범위에 속하는 창작물인 저작물에 대한 배타적 독점적 권 리로 타인의 침해를 받지 않을 고유한 권한 

  • 2. 저작권 보호 기술의 개념 

    • 콘텐츠 및 컴퓨터 프로그램과 같이 복제가 용이한 저작물에 대해 불법 복제 및 배포 등을 막기 위한 기술적인 방법을 통칭한다. 

    • 저작권 보호 기술은 다음과 같은 특성을 가 진다. 

      • - 콘텐츠 복제의 제한적 허용: 복제는 허용하나 사용자 확인을 거쳐 과금, 제품 소프트 웨어 패키징 시에 사용자 확인에 대해 상용화 과금 정책 수립이 연계됨 

      • - 종량제 BM을 갖는 제품 소프트웨어의 경우 요금 부과는 Clearing House를 통한 이용 시간에 비례한 과금(종량제 실현) 

      • – 패키징 도구는 암호화/보안 등의 기능을 고려함. 따라서 패키징 제작자가 지정한 Business Rule과 암호가 함께 Packaging되어 배포

  • 3. 저작권 보호 기술의 필요성 

    • - 배포된 제품 소프트웨어의 무한 복제가 가능하고 원본과 복사본이 동일하게 배포될 특성을 가짐. 

    • - 제품 소프트웨어가 상용으로 배포되면 다양한 부가 가치를 가질 수 있는 상품으로 바뀜에 따라 패키징 시에 원자에 대한 권리 보호 우선 필요 

 

[3] 저작권 보호 측면의 패키징도구 활용
  • 1. 패키징 수행과 디지털 저작권 관리(DRM)의 절차 및 흐름 

    • (1) 저작권 관리의 흐름 콘텐츠 제공자, 분배자, 소비자 간의 패키징 배포 및 관리의 주체를 중앙의 클리어링 하우스에서 키 관리 및 라이선스 발급 관리

etc-image-3

 

[4] 저작권 관리 구성 요소
  • 콘텐츠 제공자 (Contents Provider) 

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

  • 콘텐츠 분배자 (Contents Distributor) 

    • 쇼핑몰 등으로써 암호화된 콘텐츠 제공 

  • 패키저(Packager) 

    • 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능  보안 컨테이너 

      원본을 안전하게 유통 하기위한 전자적 보안 장치 

  • DRM 컨트롤러 

    • 배포된 콘텐츠의 이용 권한을 통제 

      클리어링 하우스 (Clearing House) 

      키 관리 및 라이선스 발급 관리

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

    • 올바른 패키징 도구의 활용을 위해서는 암호화/보안 기능 중심의 요소 기술을 정확히 이해하고 있어야 한다. 이 기술을 바탕으로 패키징 작업 시에 도구를 이용하여 나오는 결과물에 대해서도 신뢰할 수 있도록 작업이 되어야 한다.

    • - 패키징 도구 적용 관련 기술적 동향 

      • (1) 패키징 도구 벤더에 의해 개발되던 각종 기술들이 표준화를 통해 통합 플랫폼화 

      • (2) 클라우드 환경에서 디지털 콘텐츠의 투명한 접속, 이용, 이동 등의 사용 편리성 보장 

      • (3) 특정 도구나 환경에서만 적용되지 않는 범용성 확보, 벤더 간 식별 체계, 상호 호환 성 표준화 노력

 

etc-image-4

 

[수행-패키징 도구를 활용한 설치, 배포 수행하기]

[1] 신규 패키징 제품의 모듈, 빌드 내용을 식별한다
  • 1. 릴리즈 노트 작성을 위한 모듈 및 빌드 : 모듈화, 패키징을 통한 릴리즈 노트의 항목을 정리한다. 

  • 2. I/O 데이터, 전체적인 기능 정의 및 데이터 흐름 : 소스 기능을 통해 처리되는 int, char 형 데이터, 기능 및 데이터의 흐름을 정리한다. 

  • 3. Function 단위 및 Output에 대한 상세 정의 : 메인 함수 이외의 호출 함수를 정의하고, 이에 대한 출력값을 식별한다. 

 

[2] 암호화/보안 중심의 패키징 도구를 식별한다.
  • 1. 패키징 도구의 사전 선택 : 패키징 도구 선택 시 암호화/보안 기능을 고려한다. 

  • 2. 암호 /보안 기능 확인 : 패키징 도구에서 암호화/보안의 기능을 식별한다.

 

[3] DRM 흐름을 확인하여 패키징을 수행한다.
  • 1. 콘텐츠 분배자, 배포자, 소비자 간의 DRM 흐름을 확인 : DRM 흐름도를 참고하여 3자간 의 흐름을 확인한다. 

  • 2. 패키징 수행 시 키 관리, 보안 개념 확인하며 수행 : 반드시 키 관리, 보안 개념을 반영 한 패키징을 수행한다.

 

[4] 검토된 패키징 도구를 설치 작업을 진행한다. 
  • 1. 환경에 맞게 패키징 도구 설치 작업 진행 : 사전 선택된 패키징 도구 설치 진행한다. 

  • 2. 패키징 도구 설치 완료 후 정상 동작 확인 : 인스톨 이후에 패키징 도구의 여러 메뉴 및 기능을 실행한다.

 

[5] 검토된 패키징 도구를 활용하여 배포 작업을 진행한다. 
  • 1. 패키징 도구 설치 이후 제품 소프트웨어의 배포 작업을 진행 : 도구 설치 이후 정식 패키징 작업을 수행한다. 

  • 2. 배포 후 최종 패키징 완료 확인 : 패키징 도구를 통한 정식 패키징 수행, 이후 결과를 확인한다.

 

[6] 최종 패키징 완료 후 암호화/보안 기능이 정상적으로 적용되었는지 확인한다. 
  • 1. 암호화/보안 기능 적용 확인 : 패키징 도구의 암호화/보안의 기능이 적용 되었는지 체크 한다. 

  • 2. 제품 소프트웨어 배포본 기준으로 암호화/보안 기능 체크리스트 확인 : 빌드 도구를 통 해 패키징을 수행하고, 최종본에서 암호화/보안을 중심으로 체크리스트를 확인한다. 

 

[연습문제]

  • 제품 소프트웨어 적용상의 특성이 잘못된 것은?

    • (1) 제품 소프트웨어는 개발자가 중심으로 진행된다. 

    • (2) 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징한다. 

    • (3) 고객의 편의성을 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해 간다. 

    • (4) 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.

  • 저작권 관리 구성요소가 잘못된 것은?

    • 콘텐츠 분배자 (Contents Distributor): 콘텐츠를 제공하는 저작권자 

    • 패키저(Packager): 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능 

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

    • DRM 컨트롤러 : 배포된 콘텐츠의 이용 권한을 통제 

 

 참고 문헌

[논문]

  • 없음

[보고서]

  • 없음

[URL]

  • 없음

 

 문의사항

[기상학/프로그래밍 언어]

  • sangho.lee.1990@gmail.com

[해양학/천문학/빅데이터]

  • saimang0804@gmail.com

 

 

 

 

 

 

 

 

 

 

 

본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음