반응형
1. 사용자 중심의 패키징 수행
1.1. 제품 소프트웨어 패키징의 개요
- 제품 소프트웨어 패키징의 개념
- 개발 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징
-> 설치와 사용에 필요한 제반 절차 빛 환경 등 전체 내용을 포함하는 매뉴얼 작성
-> 제품 소프트웨어에 대한 패치 개발과 업그레이드를 위한 버전 관리 수행 능력
- 개발 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 패키징
- 제품 소프트웨어 적용상의 특성
- 제품 소프트웨어는 개발자가 아닌 사용자 중심으로 진행된다.
- 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징한다.
- 고객의 편의성을 위해, 신규/변경 이력을 확인하고, 이를 버전 관리 및 릴리즈 노트를 통해 지속적으로 관리해 간다.
- 사용자의 실행 환경을 이해하고, 범용 환경에서 사요이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행된다.
1.2. 제품 소프트웨어 패키징을 위한 모듈 빌드
- 소프트웨어의 모듈 및 패키징
- 소프트웨어 모듈의 이해
- 모듈 및 모듈화
- 모듈 : 소프트웨어 설계에서 기능단위로 분해하고 추상화 되어 재사용 및 공유 가능한 수준으로 만들어진 단위
- 모듈화 : 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 소프트웨어 설계 기법
- 모듈화의 장점
- 프로그램의 효율적인 관리 및 성능 향상
- 전체적인 소프트웨어 이해의 용이성 증대 및 복잡성 감소
- 소프트웨어 시험, 통합, 수정 시 용이성 제공
- 기능의 분리가 가능하고 인터페이스가 단순
- 오류의 파급 효과를 최소화
- 모듈의 재사용 가능으로 개발과 유지보수가 용이
- 모듈화의 목표
- 모듈 간 결합도의 최소화(Loose Coupling)
- 모듈 내 요소들간의 응집도 최대화(Strong Cohesion)
- 모듈 및 모듈화
- 제품 소프트웨어의 모듈 및 패키징
- 모듈의 개념을 정확하게 이입
- 이에 맞는 기능 단위로 패키징
- 패키징 배포 시 제품 소프트웨어의 성능을 향상
- 배포 전 시험 및 수정 등의 작업 진행에서도 모듈 단위로 모든 것을 분류하여 작업을 진행
- 소프트웨어 모듈의 이해
- 제품 소프트웨어 모듈 빌드 기법
- 소프트웨어 빌드
- 소스 코드 파일을 컴퓨터에서 실행할 수 있는 제품 소프트웨어의 단위로 변환하는 과정 or 결과물
- 소스 코드 파일이 실행 코드로 변환되는 컴파일 과정을 핵심으로 수행
- 빌드에 따른 결과물에 대한 상세 확인이 필요
- 제품 소프트웨어를 위한 빌드 기법
- 소프트웨어 빌드 시스템의 기본 개념을 알고, 빌드의 실행 단위 컴파일, 이를 위한 빌드 도구의 특징 및 사례들의 사전 확인이 필요
- 빌드 도구는 이를 도와주는 유용한 유틸리티이며 이를 활용하여 컴파일 이외에도 제품 소프트웨어 완성을 위해 다양한 일을 수행
- 대표적인 도구 : Ant, Make, Maven, Gradle 등
- 소프트웨어 빌드
- 사용자 중심의 패키징 작업 이해
- 사용자 실행 환경의 이해
- 고객 편의성을 위해 사용자 실행 환경을 우선 고려하여 패키징을 진행
- 사용자 환경은 OS부터 시작하여 실행 환경, 시스템 사양 및 고객의 사용 방법까지 상세 분류하여 실행 환경을 사전 정의
- 사용자 관점에서의 패키징 고려 사항
- 사용자의 시스템 환경 즉, OS CPU 메모리 등의 수행 최소 환경을 정의
- 사용자가 직관적으로 확인할 수 있는 UI(User Interface)를 제공하고, 매뉴얼과 일치시켜 패키징 작업
- 제품 소프트웨어는 하드웨어와 함께 통합 적용 / 패키징은 Managed Service 형태로 제공
- 고객 편의성을 위해 안정적 배포가 가장 중요
- 항상 패키징의 변경 및 개선 관리를 고려하여 패키징 배포
- 사용자 실행 환경의 이해
2. 버전을 고려한 제품 릴리즈 노트 작성
2.1. 릴리즈 노트의 개념
- 릴리즈 노트란 조직의 최종 사용자와 고객에게 잘 정리된 릴리즈 정보를 공유하는 문서.
- 주요 목적:
- 제품/서비스의 수정, 변경, 개선 사항, 버그 수정을 포함한 정보를 제공.
- 개발팀이 사용자에게 제공하는 사항에 대해 최종 승인을 거쳐 배포됨.
2.2. 릴리즈 노트의 중요성
- 테스트 결과와 정보 제공: 릴리즈 노트를 통해 테스트 진행 방식, 개발 팀의 지표, 준수 여부 확인.
- 정확하고 포괄적인 정보 제공: 사용자에게 제품과 서비스 변경 사항을 명확히 알림.
- 변화 공유: 제품과 서비스의 변경된 기능 및 실행 방식을 공유.
- 자동화와 적용성 확대: 전체적인 버전 관리 및 정보를 체계적으로 관리.
2.3. 릴리즈 노트 작성 시 고려 사항
- 책임감 부여: 개발 팀이 작성하고 명확성, 정확성을 보장해야 함.
- 스타일: 명확한 스타일과 일관된 형식 준수.
2.4. 릴리즈 노트 주요 항목
작성 항목 | 설명 |
Header | 문서 이름, 제품 이름, 버전, 릴리즈 날짜 등 |
개요 | 제품/버전 변경 요약 |
목적 | 릴리즈 목표 및 주요 기능 |
이슈 요약 | 간단한 설명 및 추가 항목 |
재현 항목 | 버그 관련 재현 단계 |
수정/개선 내용 | 수정 및 개선 요약 |
사용자 영향도 | 변경에 따른 사용자 영향 기술 |
SW 지원 영향도 | 소프트웨어 프로세스 영향 설명 |
면책 조항 | 법적 표준, 준수 사항 등 |
연락 정보 | 사용자 지원 관련 정보 |
2.5. 릴리즈 노트의 추가 작성 및 개선 상황
- 테스트 단계에서의 베타 버전 출시: 베타 버전 릴리즈 노트를 통해 사용자 피드백 수집.
- 긴급 버그 수정 시: 반드시 버그 번호 및 수정 내역 기록.
- 기능 향상: 기능 개선 시 신규 릴리즈 노트 추가 작성.
- 사용자 요청 사항 반영: 요청 기반 개선 내용 포함.
활용
- 제품 소프트웨어의 변경과 배포에 따른 효과적인 소통 도구.
- 테스트와 사용자 피드백을 반영하여 품질 관리.
3. 패키징 도구를 활용한 설치, 배포 수행
3.1. 패키징 도구의 개념
- 정의: 배포를 위한 패키징 작업에서 디지털 콘텐츠의 지적 재산권 보호 및 관리 기능을 제공하는 도구.
- 기능:
- 디지털 콘텐츠 불법 복제 방지
- 암호화 및 사용자 권한 제어
- 라이선스 관리 및 콘텐츠 보호 기술 지원
3.2. 패키징 도구 활용 시 고려 사항
- 암호화/보안 중요성:
- 콘텐츠 및 소프트웨어 내부를 보호하기 위해 암호화 및 보안 기능 필수.
- 이기종 연동 고려:
- 다양한 시스템과 호환성을 유지하면서 DRM과 통합 가능해야 함.
- 사용자 편의성:
- 배포와 설치 과정에서 불편함이 없도록 효율적으로 설계.
- 알고리즘 선택:
- 암호화 알고리즘 선택 시 범용성, 성능 등을 고려.
3.3. 제품 소프트웨어의 저작권 보호의 이해와 필요성
- 저작권의 개념
- 정의: 창작물에 대한 배타적 권리로, 타인이 침해하지 않도록 보호.
- 저작권 보호 기술
- 특징:
- 복제 제한 및 사용자 확인
- 상용화 및 과금 시스템 지원
- 암호화/보안 기능 포함
- 목적: 디지털 콘텐츠의 불법 복제 및 무단 사용 방지.
- 특징:
- 필요성 : 무단 복제 방지와 지적 재산 보호를 통해 부가가치 창출.
3.4. 저작권 보호 중심의 패키징 도구 활용
- 저작권 관리 흐름
- 콘텐츠 제공 → 분배 → 패키징 → DRM 관리 및 배포 → 사용자 소비
- 구성 요소:
- 콘텐츠 제공자: 창작자
- 콘텐츠 분배자: 암호화된 콘텐츠 제공
- 패키저: 배포 가능한 메타데이터 및 콘텐츠 관리
- DRM 컨트롤러: 이용 권한 통제
- 클리어링 하우스: 라이선스 발급 관리
- 암호화/보안 기술 활용
- PKI, 디지털 서명 등을 활용하여 콘텐츠 및 권한 보호.
3.5. 패키징 도구 구성 요소
구성 요소 | 설명 |
암호화(Encryption) | 콘텐츠 암호화 및 서명 기술 |
키 관리(Key Manangement) | 암호화 키의 저장 및 배포 관리 |
암호화 파일 생성(Packager) | 암호화된 콘텐츠 생성 |
식별 기술(Identification) | 콘텐츠 식별 체계 구축 (DOI, URI) |
저작권 표현(Right Expression) | 라이선스 내용 표현 기술 (XML 기반) |
정책 관리(Policy management) | 라이선스 발급 및 사용 정책 관리 |
크랙 방지(Tamper Resistance) | 콘텐츠 사용 방지 기술 (코드 난독화 등) |
인증(Authentication) | 사용자 인증 기술 (SSO, 디지털 인증) |
3.6. 패키징 도구 기술 동향
- 기술 표준화: 다양한 벤더 간 통합 플랫폼 제공.
- 클라우드 환경 지원: 디지털 콘텐츠의 투명한 접속 및 관리.
- 범용화 노력: 특정 환경만 아닌 다양한 플랫폼에서 호환.
반응형