포스트

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

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

애플리케이션 패키징

개념

  • 개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징하고, 설치와 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 메뉴얼을 작성하는 활동

  • 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것

특징

  • 개발자가 아닌 사용자 중심으로 진행

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

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

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

사용자 중심 패키징 작업

사용자 실행 환경의 이해

  • 고객 편의성을 위해 사용자 실행환경을 우선 고려하여 패키징을 진행

  • OS, 실행 환경, 시스템 사양 및 고객의 사용 방법까지 상세 분류하여 실행 환경을 사전 정의

  • 만약 여러 가지 실행 환경이 나오게 된다면 해당 경우에 맞는 배포본을 분류하여 패키징 작업을 여러 번 수행할 수 있음

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

  • 사용자의 시스템 환경인 OS, CPU, Memory, Storage, Network 사양 등의 수행 최소 환경을 정의

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

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

  • 고객 편의성을 위해 안정적 배포가 될 수 있게 함

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

  • 보안을 고려하고 제품 SW 종류에 적합한 암호화 알고리즘을 적용

수행 순서

기능 식별

  • 개발 소스의 목적 및 기능을 식별

  • 입출력 데이터, 전체적인 기능과 데이터 흐름을 식별

모듈화

  • 모듈 단위 분류 및 모듈화를 순서에 맞게 진행

  • 수행을 위한 기능 단위 및 서비스 분류, 기능 공유와 재활용 분류, 모듈 간 결합도와 응집도를 식별

빌드 진행

  • 개발된 소스의 컴파일을 진행

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

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

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

사용자 환경 분석

  • 최소 사용자 환경 사전 정의

  • 모듈 단위의 여러 가지 기능별 사용자 환경 테스트

패키징 적용 시험

  • 사용자 환경에서의 패키징 적용 시험

  • UI 및 시스템 상의 편의성 체크

패키징 변경 개선

  • 패키징 적용 시 변경점 도출

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

  • 개선 버전의 재배포

릴리즈 노트

개념

  • 소프트웨어 제품과 함께 배포되는 문서들

  • 고객이 이미 사용중인 제품의 경우 릴리스 노트는 업데이트가 출시될 때 고객에게 전달

  • 소프트웨어의 서비스 내용과 수정, 변경 또는 개선되는 일련의 작업들이 릴리즈 노트를 통해 제공

역할

  • 테스트 결과와 정보가 포함

  • 사용자에게 보다 더 확실한 정보 제공

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

  • 자동화 개념과 함께하여 적용할 수 있음

작성 항목

Header

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

개요

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

목적

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

이슈 요약

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

재현 항목

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

수정 & 개선 내용

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

사용자 영향도

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

SW 지원 영향도

  • 버전 변경에 따른 SW의 지원 프로세스 및 영향도 기술

노트

  • SW 및 HW Install 항목, 제품, 문서를 포함한 업그레이드 항목 메모

면책 조항

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

연락 정보

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

추가 작성 및 개선 사항 발생의 예외 케이스

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

  • 긴급 버그 수정 시

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

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


애플리케이션 배포 도구

개념

  • 최종 사용자에게 소프트웨어를 전달하는 과정

  • 특정한 목적으로 사용하기 위해 빌드, 조합, 구성된 소프트웨어 구성요소의 모임은 배포판으로 부름

  • 사용자에게 배포할 수 있도록 도와주는 역할을 하는 것

활용 시 고려사항

  • 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려

  • 추가로 다양한 이기종 연동을 고려

  • 사용자 편의성을 위한 복잡성 및 비효율성 문제를 고려

  • 제품 소프트웨어의 종류에 적합한 암호화 알고리즘을 적용

구성 요소

암호화 | Encryption

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

  • PKI, Symmetric & Asymmetric Encryption, Digital Signature

키 관리 | Key Management

  • 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술

  • Centralized, Enveloping

암호화 파일 생성 | Packager

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

  • Pre-packaging, On-the-fly Packaging

식별 기술 | Identification

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

  • DOI, URI

저작권 표현 | Right Expression

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

  • XrML & MPGE-21 REL, ODRL

정책 관리 | Policy Management

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

  • XML, Contents Management System

크랙 방지 | Tamper Resistance

  • 크랙에 의한 콘텐츠 사용 방지 기술

  • Secure DB, Secure Time Management, Encryption

인증 | Authentication

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

  • User & Device Authentication, SSO, Digital Certificate

CI & CD

CI | Continuous Integration

  • 지속적인 통합

  • 어플리케이션의 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 Repository에 통합하는 것

  • 버그를 신속하게 찾아 해결하고, 소프트웨어의 품질을 개선하고, 새로운 업데이트의 검증 및 Release의 시간을 단축시키는 것이 목표

CD | Continuous Delivery & Continuous Deployment

  • 지속적인 서비스 제공 혹은 지속적인 배포

  • CDelivery는 공유 Repository로 자동으로 Release 하는 것

  • CDeployment는 Production 레벨까지 자동으로 Deploy하는 것

  • CD는개발자의 변경 사항이 Repository에 저장되는 것 뿐만 아니라 고객의 Production 환경까지 Release 되는 것


애플리케이션 성능 모니터링 도구 | APM TOOL

개념

  • 모든 시스템의 리소스와 성능을 추적하는 HW & SW

이점

  • 빠른 장애 탐지

  • 다운타임의 최소화

  • 의사 결정에 도움

  • 장애 발생 시 자동화

기능

  • 성능 모니터링

  • 성능 저하 원인 분석

  • 시스템 부하량 분석

  • 장애 진단

  • 사용자 분석

  • 용량 산정

프로세스

  1. $1

  2. $1

  3. $1

  4. $1

구성요소

비즈니스 관점

실시간 성능 감시 : 애플리케이션의 실시간 성능 감시
성능 저하 원인 규명 : 서비스 이용의 성능 저하 원인 규명
서비스 수준 협약(SLA) 관리 : SLA 유지 여부, 통계 & 예측 기반 관리

전산 운용 관점

애플리케이션 : 메모리 누수 현상 및 메소드 수행 감시
서버 관리 : 사용자 요청 폭주로 인한 CPU 사용률
네트워크 관리 : 네트워크 병목현상으로 인한 응답시간
스토리지 관리 : DIsk I/O 병목 감시, 부하분산 장애 감시

오픈소스 시스템 모니터링 도구

Scouter : 단일 뷰 통합 & 실시간 모니터링, 튜닝에 최적화된 인프라 통합 모니터링 도구
Zabbix : 웹기반 서버, 서비스, 애플리케이션 모니터링 도구


DRM | Digital Rights Management

개념

  • 각종 디지털 콘텐츠의 불법적인 사용을 제한하고, 승인된 사용자의 콘텐츠 사용을 저작권 소유자의 의도에 따라 제어하는 기술

  • 콘텐츠의 보호를 위한 암호화 기술과 사용 권한 제어를 위한 라이선스 괸리 기술로 구성

  • 단순 보안기술 보다는 좀 더 포괄적인 개념으로 저작권 승인과 집행을 위한 소프트웨어와 보안기술, 지불, 결제 기능 등이 모두 포함

특징

  • 콘텐츠의 공개키로 암호화하고, 콘텐츠의 비밀 키를 판매

  • 유료 콘텐츠 사용자에게 서비스 사용료를 부과하고 안전하게 결제

  • 저작권의 라이선스에 따른 분배를 투명하게 함

  • 라이선스를 제공하는 기관과 콘텐츠를 배포하는 기관을 분리하여 투명한 거래구조로 개선

  • 콘텐츠를 소비자가 사용하는데 있어 횟수, 날짜, 장비 등의 사용권한을 통제

구성 및 흐름

콘텐츠 제공자 | Contents Provider : 콘텐츠를 제공하는 저작권자
콘텐츠 분배자 | Contents Distributor : 쇼핑몰 등으로써 암호화된 콘텐츠 제공
Packager : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능
보안 콘테이너 : 원본을 안전하게 유통하기 위한 전자적 보안 장치
DRM Controller : 배포된 콘텐츠의 이용 권한을 통제
Clearing House : 키 관리 및 라이선스 발급 관리

사용 규칙 제어 기술

콘텐츠 식별 체계 | Identification

  • 디지털 콘텐츠에 고유 식별 번호를 부여하여 관리하고 운영

  • 대표적으로 DOI (Digital Object Identifier), URI

Meta data

  • 콘텐츠에 관한 구조화된 데이터

  • 콘텐츠의 속성 정보

권리 표현 기술 | Right Expression Language

  • 콘텐츠에 대한 규칙 설정

  • 어느 사용자가 어떠한 권한과 어떠한 조건으로 콘텐츠를 이용할 수 있는지 정의

  • 콘텐츠의 사용조건(기간, 횟수) 등에 의해 사용이 제한될 수 있고, 주로 XML 기반으로 권한 표현 언어가 개발

  • 대부분의 REL은 일반 언어와 똑같이 어휘(Semantics)와 어휘에 대한 구조(Syntax)를 포함

  • XrML (eXtensible right Mark-up Language) 기술이 대표적

  • MPEG-21 REL에서는 리소스를 디지털 포맷으로 제한하나, ODRL(Open Digital Right Language)에서는 모든 포맷을 허용

Render Permission
사용자에게 콘텐츠가 표현되고 이용되는 권리 형태 정의
Transport Permission
사용자들 간에 권리의 교환이 이루어지는 권리 형태 정의
Derivative Permission
콘텐츠의 추출 변형이 가능한 권리 형태를 정의

저작권 보호 기술

암호화 기술

  • 특정 키를 가진 사용자만이 해당 콘텐츠를 사용할 수 있도록 함

  • 암호화 키와 복호화 키가 서로 다른 비대칭키 방식과 두 키가 동일한 대칭키 방식이 있음

위변조 방지 | Tamper-Proofing

  • 콘텐츠에 승인되지 않은 조작이 가해졌을 때 위변조 사항을 감지할 수 있도록 하고, 오류 동작을 일으키게끔 하는 기술

  • 부정 조작에 대한 방어 기술

Watermarking

  • 콘텐츠에 저작권 정보를 은닉하여 향후 저작권 분쟁이 일어날 경우, 추적을 통해 저작권자를 확인할 수 있게 해주는 기술
관점WatermarkingFingerprinting
목적불법 복제 방지불법 유통 방지
삽입 정보저작권 정보저작권 정보 + 구매자 정보
콘텐츠 변화 시점최초 저작 시점구매시점 마다
취약점불법 유통공모 공격
이 기사는 저작권자의 CC BY-NC 4.0 라이센스를 따릅니다.