8일차 : 3. 제품소프웨어 패키징

Dev_HG·2020년 7월 5일
0

1. 애플리케이션 패키징

1. 애플리케이션 패키징(Application Pakaging) 개념

  • 개발이 완료된 제품 소프트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작하고, 설치와 사용에 필요한 제반 내용을 포함하는 메뉴얼을 작성하는 활동

2. 애플리케이션 패키징 특징

  • 애플리케이션 패키징은 사용자 중심으로 진행되고, 신규 및 변경 개발 소스를 식별하며, 이를 모듈화하여 상용 제품으로 패키징 한다.
  • 고객의 편의성을 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리한다.
  • 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.

3. 애플리케이션 패키징 고려사항

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

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

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

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

[사용자 관점에서의 패키징 고려사항]

1. 사용자 시스템 환경 정의

  • 사용자의 시스템 환경인 운영체제, CPU, 메모리 등의 수행을 위한 최소 환경을 정의

2. UI 제공

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

3. 관리 서비스 형태로 제공

  • 애플리케이션은 하드웨어와 함께 통합 적용할 수 있도록, 패키징을 관리 서비스 형태로 제공

4. 패키징의 변경 및 개선 관리 고려

  • 다양한 사용자의 요구사항을 반영하기 위해 패키징의 변경 및 개선 관리를 고려하여 패키징 배포

4.애플리케이션 패키징 프로세스

1.기능식별

  • 입출력 데이터 식별
  • 전체적인 기능 정의 및 데이터 흐름 식별
  • 기능 단위 및 출력에 대한 상세 정의

2. 모듈화

  • 모듈로 분류할 수 있는 기능 및 서비스 단위 분류
  • 기능의 공유와 재활용 분류
  • 모듈 간 결합도와 응집도 식별
    cf : 모듈화(Modularity)
  • 소프트웨어 개발에 있어 기능을 분할하고 추상화하여 소프트웨어의 성능을 향상시키고 유지보수를 효과적으로 구현하기 위한 기법
    cf : 결합도(Coupling)
  • 소프트웨어 구조에서 모듈 간 연관성을 측정하는 척도이다(낮을 수록 좋음)
    cf : 응집도(Cohesion)
  • 모듈의 독립성을 나타내는 개념으로 하나의 모듈 내부 처리 요소들 간에 기능적 연관도를 측정하는 척도이다(높을 수록 좋음)

3. 빌드 진행

  • 신규 개발 소스 및 컴파일 결과물 준비
  • 정상 기능 단위 및 서비스 분류
  • 빌드 도구 확인 및 정상 수행
  • 컴파일 외의 도구의 다양한 기능 확인

4. 사용자 환경 분석

  • 최소 사용자 환경 사전 정의
  • 모듈 단위의 사용자 환경 테스트 수행

5. 패키지 적용 시험

  • 사용자 환경에서의 패키징 적용 시험
  • UI 및 시스템 상의 편의성 체크

6. 패키징 변경 개선

  • 패키징 적용 시 변경점 도출
  • 최소 사용자 환경에서 서비스 가능한 수준의 개선
  • 개선 버전의 재배포

5. 애플리케이션 패키징 릴리즈 노태

1. 애플리케이션 패키징 릴리즈 노트 개념

  • 애플리케이션 최종 사용자인 고객과 잘 정리된 배포 정보를 공유하는 문서이다.
  • 애플리케이션 릴리즈 노트에는 상세 서비스를 포함하여 수정/변경 또는 개선되는 정보에 대한 사항이 제공 된다.

2. 애플리케이션 패키징 릴리즈 노트 작성 항목

  • 릴리즈 노트는 애플리케이션 최종 사용자에게 전댜ㅏㄹ되는 제품에 대한 공유 정보이다.

[애플리케이션 패키징 릴리즈 노트 작성 항목]

1.헤더(Header)

  • 문서 이름(릴리스 노트 이름), 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등

2. 개요

  • 제품 밒 변경에 대한 간략한 전반적 개요

3. 목적

  • 릴리스 버전의 새로운 기능 목록과 릴리스 노트의 목적에 대한 개요, 버그 수정 및 새로운 기능 기술

4. 이슈 요약

  • 버그의 간단한 설명 또는 릴리즈 추가 항목 요약

5. 재현 항목

  • 버그 발견에 따른 재현 단계 기술

6. 수정/개선 내용

  • 수정/개선의 간단한 설명 기술

7. 사용자 영향도

  • 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술

8. 노트

  • 소프트웨어 및 하드웨어 설치 항목, 제품, 문서를 포함한 업그레이드 항목 기술

9. 면책 조항

  • 회사 및 표준 제품과 관련된 메시지, 프리웨어 및 불법 복제 방지, 중복 등 참조에 대한 고지사항

10. 연략 정보

  • 사용자 지원 및 문의 관련한 연락처 정보

3. 애플리케이션 패키징 릴리즈 노트 작성 프로세스

1. 모듈식별

  • 릴리즈 노트 작성을 위한 모듈 및 빌드 정리
  • 입출력 데이터, 전체적인 기능 정의, 데이터 흐름 정리
  • 기능 단위 및 출력에 대한 상세 정의

2. 릴리즈 정보 확인

  • 문서 이름(릴리즈 노트 이름), 제품 이름 정보 확인
  • 버전 번호, 릴리즈 날짜 확인
  • 참고 날짜, 노트 버전 확인

3. 릴리즈 노트 개요 작성

  • 제품 및 변경에 대한 간략한 전반적인 개요 작성
  • 개발 소스의 빌드에 따른 결과물 기록
  • 버전 및 형상 관리에 대한 전박적인 노트(Note) 기록

4. 영향도 체크

  • 버그의 간단한 설명 또는 릴리즈 추가 항목 기술
  • 버그 발견을 위한 재현 테스트 및 재현 환경을 기록
  • 소프트웨어 및 사용자 입장에서의 영향도 파악

5. 정식 릴리즈 노트 작성

  • 릴리즈 정보, 헤더(Header) 및 개요 등 기본사항 기술
  • 정식 버전을 기준으로 릴리즈 노트 개요 작성
  • 이슈, 버그 등 개선 내용 기술

6. 추가 개선 항목 식별

  • 추가 개선에 대한 베타 버전을 이용 테스트 수행
  • 테스트 중 발생한 긴급 버그 수정
  • 추가 기능 향상을 위해 작은 기능 수정
  • 사용자 요청에 따른 추가 개선

2. 애플리케이션 배포 도구 구성요소

[애플리케이션 배포 도구 구성요소]

1. 암호화

  • 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술

2. 키 관리

  • 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술(중앙 집중형, 분산형)

3. 식별 기술

  • 콘텐츠에 대한 식별 체계 표현 기술

4. 저작권 표현

  • 라이선스의 내용 표현 기술

5. 암호화 파일 생성

  • 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술

6. 정책 관리

  • 라이선스 발급 및 사용에 대한 정책표현 및 관리 기술

7. 크랙 방지

  • 크랙에 의한 콘텐츠 사용 방지 기술
    cf : 크랙(Crack)
  • 소프트웨어를 수정하여 소프트웨어 복사 방지나 소프트웨어 조작 보호등을 비활성화 하거나 재거하는 일이다.

8. 인증

  • 라이선스 발급 및 사용자의 기준이 되는 사용자 인증 기술

2. 애플리케이션 배포 도구 세부기술

1. 공개 키 기반 구조(PK)

  • 공개키 암호 방식 기반으로 디지털 인증서를 활용하는 소프트웨어, 하드웨어, 사용자, 정책 및 제도 등을 총칭하는 암호 기술

2. 대칭 및 비대칭 암호화

  • 대칭 암호화는 암호화와 해독을 위해 동일한 키를 사용하는 암호화 방식
  • 비대칭 암호화는 데이터를 암호화할 때와 이를 해독할 때 서로 다른 키를 사용하는 방식

3. 전자서명

  • 서명자를 확인하고 서명자가 당해 전자문서에 서명했다는 사실을 나타내기 위해 특정 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보

4. DOI(Digital Object Identifier)

  • 디지털 저작물에 특정한 번호를 부여하는 일종의 바코드 시스템
  • 디지털 저작물의 저작권 보호 및 정확한 위치 추적이 가능한 시스템

5. UR(Uniform Resource Identifier)

  • 인터넷에 있는 자원을 나타내느 유일한 주소

6. XrML(eXtensible Right Markup Language)

  • 디지털 콘텐츠/ 웹 서비스 권리 조건을 표현한, XML 기반의 마크업 언어
    cf: 마크업 언어(Markup Language)
  • 태그는 원래 텍스트완는 별도로 원고의 교정부호와 주석을 표현하기 위한 수단이었으나 용도가 점차 확장되어 문서의 구조를 표현하는 역할을 하게 되었고, 이러한 태그 방법의 체계가 마크업 언어

7. MPEG-21

  • 멀티미디어 관련 요소 기술들이 통일된 형태로 상호 운용성을 보장하는 멀티미디어 표준 규격

8. XML(eXtensible Markup Langauge)

  • XML은 W3C에서 개발된 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하도록 권장하는 다목적 마크업 언어

9. CMS(Contents Management System)

  • 콘텐츠 관리시스템은 다양한 미디어 포맷에 따라 각종 콘텐츠를 작성, 수집, 관리, 배급하는 콘텐츠 생산에서 활용, 폐기까지 전 공급 과정을 관리하는 기술

10. 코드 난독화

  • 역공학을 통한 공격을 막기 위해서 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술
    cf: 역공학(Reverse Engineering)
  • 기존 개발된 시스템의 기술적인 원리를 시스템의 코드나 데이터등의 구조분석을 통해도출해 내는 작업

11. Secure DB

  • 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 데이터베이스 보안 강화 기술

12. SSO(Single Sign On)

  • 한 번의 시스템 인증을 통하여 여러 정보시스템에 재인증 절차 없이 접근할 수 있는 통합 로그인 기술

3. 애플리케이션 배포 도구를 활용한 배포 프로세스

1. 빌드 내용 식별

  • 릴리즈 노트 작성을 위한 모듈 및 빌드 정의
  • 입출력 데이터, 전체적인 기능 정의, 데이터 흐름 정리
  • 기능 단위 및 출력에 대한 상세 정의

2. 패키징 도구 식별

  • 패키징 도구의 사전 선택
  • 암호/보안 기능 확인

3. DRM 흐름을 확인하여 패키징 수행

  • 콘텐츠 분배자, 배포자, 소비자 간 DRM 흐름 확인
  • 패키징 수행 시 키 관리, 보안 개념 확인하며 수행

4. 패키징 도구 설치

  • 환경에 맞게 패키징 도구 설치 작업 진행
  • 패키징 도구 설치 완료 후 정상 작동 확인

5. 배포 작업

  • 패키징 도구 설치 이후 제품 소프트웨어의 배포 작업을 진행
  • 배포 후 최종 패키징 완료 확인

6. 정상 배포 확인

  • 암호화/보안 기능 적용 확인
  • 제품 소프트웨어 배포본 기준으로 암호화/보안 기능 체크리스트 확인

4. 애플리케이션 배포 도구 활용 시 고려사항

1. 암호화/보안

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

2. 이기종 연동

  • 패키징 도구를 활용하여 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려

3. 복잡성 및 비효율성 문제

  • 패키징 도구를 고려하면 사용자의 입장에서 불편해질 수 있는 문제를 고려하여, 최대한 효율적으로 적용될 수 있도록 함

4. 최적합 암호화 알고리즘 적용

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

3. 애플리케이션 모니터링 도구

1. 애플리케이션 모니터링 도구 개념

  • 애플리케이션 모니터링 도구는 제품 소프트웨어를 사용자 환경에 설치한 후 기능 및 성능, 운영 현황을 모니터링하여 제품을 최적화하기 위한 도구

2. 애플리케이션 모니터링 도구의 기능

  • 애플리케이션 모니터링 도구는 변경 관리, 성능 관리 및 정적 분석 등의 기능을 수행 한다.

[애플리케이션 모니터링 도구의 기능]

1. 애플리케이션 변경 관리

  • 애플리케이션 간의 종속관계를 모니터링
  • 애플리케이션의 변경이 있을 경우 변경의 영향도 파악에 활용
  • ChangeMiner

2. 애플리케이션 성능 관리

  • 애플리케이션 서버로 유입되는 트랜잭션 수량, 처리시산, 응답시간 등을 모니터링
  • Jeniffer,Nmon

3. 애플리케이션 정적 분석

  • 소스 코드의 잠재적인 문제 발견 가능
  • 코딩 규칙 오류 발견
  • PMD, Cppcheck

4. 애플리케이션 동적 분석

  • 프로그램에 대한 결함 및 취약점 동적 분석 도구
  • 메모리 및 오류 문제 발결
  • Avalanche, Valgrind

3. 애플리케이션 모니터링 도구활용에 따른 효과

  • 애플리케이션 모니터링 도구 활용에 따라서 서비스 가용성, 서비스 성능, 장애인지/리소스 측정, 근본 원인을 분석할 수 있다.

1. 서비스 가용성

  • 모니터링 자동화 및 관련 데이터 생성
  • 시스템에 의한 서비스 모니터링

2. 서비스 성능

  • 24시간 대상 애플리케이션 측정
  • 다양한 서비스 대상 측정
  • 시스템에 의한 객관적 측정

3. 장애인지/리소스 측정

  • 서비스 24시간 모니터링
  • 가용성 데이터 및 관련 자료 생성
  • 성능 저하 발생시 자동 열람 가능

4. 근본 원인 분석

  • 사용자 입장에서 원인 분석
  • 사용자 영역(End-to-End) 분석으로 누구나 공감
  • 문제 분석을 위한 시간의 획기적 단축
  • 문제 분석 후 객관적인 원인 분석 자료 제공

4. DRM

1. DRM(Digital Rights Management)의 개념

  • DRM은 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술

2. DRM의 특정

1. 거래 투명성

  • 저작권자와 콘텐츠 유통업자 사이의 거래구조 투명성 제공

2. 사용규칙 제공

  • 사용가능 횟수, 유효기간, 사용 환경 등을 정의 가능
  • 다양한 비즈니스 모델 구성 및 콘텐츠 소비 형태 통제 제공

3. 자유로운 상거래 제공

  • 이메일, 디지털 미디어, 네트워크 등을 통한 자유로운 상거래 제공
  • 허가 받은 사용자는 별도의 비밀키를 이용하여 대상 콘텐츠를 복호화하고 허가된 권한으로 사용 가능

3. DRM 구성

  • DRM은 콘텐츠 제공자와 콘텐츠 소비자, 클리어링 하우스로 구성된다.
  • 콘텐츠 분배자는 제공자로부터 콘텐츠를 받아서 소비자에게 유통 시킨다.

[콘텐츠 제공자(DRM Server)]

1. DRM 콘텐츠

  • 서비스 하고자 하는 암호화된 콘텐츠, 콘텐츠와 관련되 메타 데이터, 콘텐츠 사용정보를 패키징하여 구성된 콘텐츠
    cf : 메타 데이터(Meta Data)
  • 자료 그 자체가 아닌 자료의 속성 등을 설명하는 데이터이다.

2. 패키저(Packager)

  • 암호화된 콘텐츠, 콘텐츠 관련 메타 데이터, 클리어링 하우스에서 부여받은 콘텐츠 사용정보를 암호화한 콘텐츠로 변환하는 도구

[클리어링 하우스(Clearing House)]

1. 콘텐츠 정책

  • 라이선스 발급여부를 결정하는 정책에 대한 부합 여부 확인
  • 적절한 사용 권한을 부여하는 역할 수행

2. 콘텐츠 라이선스

  • 클리어링 하우스에 의해서 사용자에게 전달되는 콘텐츠의 권리 인증
  • 콘텐츠에 대한 사용 조건 및 허가 정보를 포함

3. 콘텐츠 관리정보

  • 콘텐츠를 사용하고자 하는 사용자 정보 및 사용하고자 하는 콘텐츠에 대한 정보

4. 콘텐츠 사용정보

  • DRM 콘텐츠의 사용자 권한 및 그 권한에 따른 콘텐츠 정책에 대한 정보

[콘텐츠 소비자(DRM Client)]

1. DRM 컨트롤러

  • 배포된 디지털 콘텐츠의 이용 권한을 통제
  • 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안 장치

4.DRM의 기술요소

1. 접속 제어

  • 권한이 없는 사용자의 콘텐츠 접근 자체를 막는 것

2. 사용 제어

  • 정당한 권한이 없는 사용자의 콘텐츠 사용을 막는 것

3. 내용 제어

  • 워터마킹 등의 기술을 이용하여 콘텐츠 자체에 은닉된 소유권 및 불법복제 제어정보 등을 삽입
    cf : 워터마킹(Watermarking)
  • 디지털 콘텐츠에 저작권자 정보를 삽입하여, 불법 복제 시 워터마크를 추출, 원 소유자를 증명하는 콘텐츠 보호기술이다.

5. 모바일 DRM

  • 무선 디지털 콘텐츠 유통시장에서 콘텐츠 및 지적 재산권을 보호하는 기술이다.
  • 스마트폰 OS(안드로이드, IOS)에 의존적이다.
  • 콘텐츠의 다운로드, 권리 개체에 따른 콘텐츠의 사용제어, 콘텐츠의 권리 개체관리 등의 기능을 한다.
profile
꾸준함

0개의 댓글