반응형

     정보

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

    • 작성자     : 이상호

    • 작성일     : 2020-05-16

    • 설   명      :

    • 수정이력 :

     

     

     내용

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

    [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의 변화를 시간에 따라 기록하며 특정 시점의 버전을 다시 꺼내올 수 있도록 관리하는 체계

     

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

    [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. 초기 버전 릴리즈 노트 작성 항목 

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

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

     

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

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

    • 콘텐츠 분배자 (Contents Distributor) 

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

    • 패키저(Packager) 

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

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

    • DRM 컨트롤러 

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

        클리어링 하우스 (Clearing House) 

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

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

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

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

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

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

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

     

     

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

    [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

     

     

     

     

     

     

     

     

     

     

     

    본 블로그는 파트너스 활동을 통해 일정액의 수수료를 제공받을 수 있음
    반응형
    • 네이버 블러그 공유하기
    • 네이버 밴드에 공유하기
    • 페이스북 공유하기
    • 카카오스토리 공유하기