01. 사용자 중심의 패키징 수행
제품 소프트웨어 패키징(Product Software Packaging)
개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 포장하는 과정
제품 소프트웨어 패키징 적용 시 특성
- 전체 내용을 포함 : 설치와 사용에 필요한 과정 및 환경 등의 전체 내용을 포함하는 메뉴얼을 작성
- 비전 관리 및 릴리즈 노트 : 제품 소프트웨어에 대한 패치 개발과 업그레이드 수행
- 고객 중심 : 제품 소프트웨어 패키징은 개발자가 아닌 사용자 중심, 고객 편의성 중심으로 진행
- 모듈화 : 신규 및 변경 개발 소스를 식별하고, 이를 모듈화하여 상용 제품으로 패키징
제품 소프트웨어 패키징은 모듈들을 통해 수행되므로, 최초 소스 개발 시 해당 모듈 단위 및 모듈화를 통해 제품 소프트웨어 패키징을 수행한다.
모듈화(Modulation) 개념
모듈을 이용하여 소프트웨어의 성능을 향상시키거나 시스템의 디버깅, 시험, 통합 및 수정을 용이하도록 하는 모듈 중심의 소프트웨어 설계 기법
모듈 간 결합도의 최소화와 모듈 내 요소들 간의 응집도를 최대화하는 것이 중요하다.
모듈화의 장점
(1) 개발 편의성
- 프로그램의 효율적인 관리
- 전체적인 소프트웨어 이해의 용이성 증대
- 소프트웨어 시험, 통합, 수정 시 용이성 제공
- 모듈의 재사용 가능으로 개발과 유지보수가 용이
- 오류의 파급 효과를 최소화
(2) 복잡성 감소
- 기능의 분리가 가능하고 인터페이스가 단순
- 복잡도 감소로 인한 성능 향상
제품 소프트웨어의 패키징
모듈의 개념을 정확하게 파악한 후에 기능 단위로 패키징 하는 것이 필요
배포 전 시험 및 수정 등의 작업 진행에서도 모듈 단위로 분류하여 작업을 진행
사용자 중심의 패키징 고려 사항
(1) 시스템 환경 : OS, CPU, 메모리 등이 수행하기 위한 최소 환경을 정의
(2) 직관적 UI : 사용자가 직관적으로 확인할 수 있는 UI를 제공, 매뉴얼과 일치시켜 패키징 작업
(3) 관리 서비스 : 제품 소프트웨어는 하드웨어와 함께 통합 적용될 수 있도록 패키징 제공
(4) 안정적 배포 : 제품 소프트웨어는 고객 편의성을 위해 안정적 배포가 중요, 다양한 사용자의 요구사항을 반영하기 위해 항상 패키징의 변경 및 개선 관리를 고려하여 패키징 배포
사용자 중심의 모듈 패키징 프로세스
(1) 기능 식별 : 입출력 데이터 식별
(2) 모듈화 : 기능 및 서비스를 모듈 단위로 분류
(3) 빌드 진행 : 신규 개발 소스 및 컴파일 결과물 준비
(4) 사용자 환경 분석 : 최소 사용자 환경 사전 정의
(5) 패키징 적용 시험 : 사용자 환경에서의 패키징 적용 시험
(6) 패키징 변경 개선 : 패키징 적용 시 변경점 도출
릴리즈 노트(Release Note)
최종 사용자인 고객에게 개발 과정에서 정리된 제품의 릴리즈 정보를 제공하는 문서
상세 서비스 정보를 포함하여 제품의 수정, 변경, 개선하는 일련의 작업들에 대한 정보이며, 릴리즈 노트를 통해 제공된다.
릴리즈 노트의 중요성
중요성 | 설명 |
정보 제공 | - 최종 배포된 릴리즈 노트에는 테스트 진행 과정, 테스트 결과, 개발 팀의 제공 사양 준수 정도를 파악할 수 있음 - 사용자에게 더 자세하고 확실한 정보를 제공 - 기본적으로 전체적인 제품의 수행 기능 및 서비스의 변화를 공유 |
관리의 용이성 | - 전체적인 버전 관리 및 릴리즈 정보를 체계적으로 관리 |
- 릴리즈 노트는 현재 시제로 작성 되어야하며, 배포 시부터 신규 소스, 빌드 등 이력을 명확하고 정확하게 제공해야한다.
- 개발자와 테스터가 함께 협업해야하고 최초 및 변경, 개선 항목까지 연결되어 다음 항목에 대한 정보들이 릴리즈 노트를 통해 작성 되어야 한다.
- 릴리즈 노트는 개발팀에서 직접 작성하여야 한다.
릴리즈 노트 작성 항목
(1) 헤더
(2) 개요
(3) 목적
(4) 이슈 요약
(5) 재현 항목
(6) 수정 · 개선 내용
(7) 사용자 영향도
(8) 소프트웨어 지원 영향도
(9) 노트
(10) 면책 조항
(11) 연락 정보
릴리즈 노트 작성 프로세스
(1) 모듈 식별 : 릴리즈 노트 작성을 위한 모듈 및 빌드 정리
(2) 릴리즈 정보 확인 : 문서 이름(릴리즈 노트 이름), 제품 이름 정보 확인
(3) 릴리즈 노트 개요 작성 : 제품 및 변경에 대한 간략한 전반적인 개요 작성
(4) 영향도 체크 : 버그의 간단한 설명 또는 릴리즈 추가 항목 기술
(5) 정식 릴리즈 노트 작성 : 릴리즈 정보, 헤더 및 개요 등 기본사항 기술
(6) 추가 개선 항목 식별 : 추가 개선에 대한 베타 버전을 이용한 테스트 수행
제품 소프트웨어 패키징 도구
(디지털 콘텐츠의 불법 사용, 복제 방지, 과금 서비스를 통한 정상 사용자를 검증 가능한 저작권 도구를 통해 패키징하는 것이 중요)
배포를 위한 패키징 시에 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구
패키징 도구는 불법 복제로부터 디지털 콘텐츠의 지적 재산권을 보호해 주는 사용 권한 제어 기술, 패키징 기술, 라이선스 관리, 권한 통제 기술등을 포함한다.
패키징 도구 활용시 고려 사항
(1) 암호화/보안 고려 : 사용자에게 배포되는 소프트웨어임을 감안하여 반드시 내부 콘텐츠에 대한 암호화 및 보안을 고려
(2) 이기종 연동을 고려 : 패키징 도구를 활용하여 여러 가지 이기종 콘텐츠 및 단말기 간 *DRM 연동을 고려
* DRM : 서비스하고자 하는 암호화된 콘텐츠, 콘텐츠와 관련된 메타 데이터, 콘텐츠 사용 정보를 패키징하여 구성된 콘텐츠
(3) 사용자 편의성 고려 : 패키징 도구를 고려하면 사용자의 입장에서 불편해질 수 있는 문제를 고려하여, 최대한 효율적으로 적용
(4) 적합한 암호화 알고리즘을 적용 : 암호화 알고리즘이 여러 가지 종류가 있는데, 제품 소프트웨어의 종류에 맞는 알고리즘을 선택하여 배포 시 범용성에 지장이 없도록 고려
저작권
창작물인 저작물에 대한 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한
저작권 보호 기술
콘텐츠 및 컴퓨터 프로그램과 같이 복제가 용이한 저작물에 대해 불법 북제 및 배포 등을 막기 위한 기술적인 방법
저작권 보호 기술의 특성
(1) 콘텐츠 복제 제한적 허용 : 복제는 허용하나 사용자 확인을 거쳐 과금, 제품 소프트웨어 패키징 시에 사용자 확인에 대해 상용화 과금 정책 수립이 연계
(2) 종량제 : 종량제 제품 소프트웨어의 경우 요금 부과는 *클리어링 하우스를 통한 이용 시간에 비례한 과금
* 클리어링 하우스 : 저작권에 대한 사용 권한, 라이센스 발급, 사용량에 따른 관리 등을 수행하는 곳
(3) 암호화 / 보안 기능 : 패키징 도구는 암호화 / 보안 등의 기능을 고려
저작권 보호 측면의 패키징 도구 활용
(1) 디지털 저작권 관리(DRM; Digital Right Management) 기능 활용
- 중앙의 클리어링 하우스에서 콘텐츠 제공자, 분배자, 소비자 간의 패키징 배포 및 키 관리, 라이선스 발급 관리를 수행
DRM 구성 요소
(1) Contents Provider (콘텐츠 제공자) : 콘텐츠를 제공하는 저작권자
(2) Contents Customers (콘텐츠 소비자) : 콘텐츠를 구매해서 사용하는 주제
(3) Contents Distributor (콘텐츠 분배자) : 암호화된 콘텐츠를 유통하는 곳이나 사람
(4) Clearing House (클리어링 하우스) : 저작권에 대한 사용 권한, 라이센스 발급, 사용량에 따른 관리 등을 수행하는 곳
(5) DRM Contents (DRM 콘텐츠) : 서비스하고자 하는 암호화된 콘텐츠, 콘텐츠와 관련된 메타데이터, 콘텐츠 사용 정보를 패키징 하여 구성된 콘텐츠
(6) Packager(패키저) : 콘텐츠를 메타데이터와 함꼐 배포 가능한 단위로 묶는 도구
(7) DRM Controller(DRM 컨트롤러) : 배포된 디지털 콘텐츠의 이용 권한을 통제
(8) Security Container(보안 컨테이너) : 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안 장치
(2) 암호화/보안 기능 중심의 패키징 도구 기술 활용
올바른 패키징 도구의 활용을 위해서는 암호화/보안 기능 중심의 요소 기술을 정확히 이해하고 있어야 한다.
이 기술을 바탕으로 패키징 작업 시에 도구를 이용하여 나오는 결과물에 대해서도 신뢰할 수 있도록 작업이 되어야 한다.
패키징 도구
(1) 암호화(Encrption) : 일반 텍스트, 콘텐츠, 라이선스 등의 암호화 및 전자서명에 사용하는 기술
- 공개키 기반 구조(PKI), 대칭 및 비대칭 암호화, 전자서명
(2) 키 관리(Key Management) : 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술(중앙 집중형, 분산형)
(3) 식별 기술(Identification) : 콘텐츠에 대한 식별 체계 표현 기술
- DOI, URI
(4) 저작권 표현(Right Expression) : 라이선스의 내용 표현 기술
- XrML, MPEG-21
(5) 암호화 파일 생성(Packager) : 콘텐츠의 암호화를 통해 콘텐츠를 보호하는 기술
- Pre-packaging, On-the-fly Packaging
(6) 정책 관리(Policy Management) : 라이선스 발급 및 사용에 대한 정책표현 및 관리기술
- XML, 콘텐츠 관리 시스템(CMS)
(7) 크랙 방지(Tamper Resistance) : 크랙에 의한 콘텐츠 사용 방지 기술
- 난독화, Secure DB
(8) 인증(Authentication) : 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
- 사용자/장비 인증, SSO
패키징 도구 구성 세부 기술
(1) 암호화
- 공개키 기반 구조(PKI) : 인증 기관에서 공개키 암호 방식 기반의 전자 서명된 인증서를 발급받아 네트워크 상에서 안전하게 비밀통신을 가능하도록 하는 기술
- 대칭 및 비대칭 암호화 : 대칭 암호화는 암호화와 복호화를 위해 동일한 키를 사용하는 암호화 방식, 비대칭 암호화는 데이터를 암호화할 때와 이를 복호화할 때 서로 다른 키를 사용하는 방식
- 전자서명 : 서명자를 확인하고 서명자가 해당 전자문서에 서명했다는 사실을 나타내기 위해 특정 전자문서에 첨부되거나 논리적으로 결합된 전자적 형태의 정보
(2) 식별 기술
- DOI(Digital Object Identifier) : 디지털 저작물의 저작권 보호 및 정확한 위치 추적을 위해 특정한 번호를 부여하는 일종의 바코드 시스템
- URI(Uniform Resource Identifier) : 인터넷에 있는 자원을 고유하게 식별할 수 있도록 나타내는 주소
(3) 저작권 표현
- XrML(eXtensible Right Markup Language) : 디지털 콘텐츠 / 웹 서비스 권리 조건을 표현한 XML 기반의 마크업 언어
- MPEG-21 : 멀티미디어 관련 요소 기술들이 통일된 형태로 상호 운용성을 보장하는 멀티미디어 표준 규격
(4) 암호화 파일 생성
- Pre-packaging : 콘텐츠를 등록하자마자 암호화하는 방법
- On-the-fly Packaging : 사용자가 콘텐츠를 요청한 시점에 콘텐츠를 암호화 하는 방법
(5) 정책 관리
- XML(eXtensible Markup Language) : 다른 특수한 목적을 갖는 마크업 언어를 만드는데 사용하는 다목적 언어
- CMS(Contents Mangagement System) : 다양한 미디어 포맷에 따라 각종 콘텐츠를 작성, 수집, 관리, 배급하는 콘텐츠 생산에서 활용, 폐기까지 전 공급 과정을 관리하는 기술
(6) 크랙 방지
- 코드 난독화(Code Obfuscation) : 역공학을 통한 공격을 막기 위해 프로그램의 소스 코드를 알아보기 힘든 형태로 바꾸는 기술
- Secure DB : 커널 암호화 방식으로 데이터베이스 파일을 직접 암호화하고, 접근 제어와 감사 기록 기능이 추가된 데이터베이스 보안 강화 기술
(7) 인증
- SSO(Single Sign On) : 한번의 시스템 인증을 통하여 여러 정보 시스템에 재인증 절차 없이 접근할 수 있는 통합 로그인 기술
02. 제품 소프트웨어 메뉴얼 작성 및 버전 등록
제품 소프트웨어 메뉴얼
사용자 측면에서 패키징 이후 설치, 제품 소프트웨어를 사용하는데 필요한 주요 내용을 기록한 문서
사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서를 의미한다.
제품 소프트웨어 설치 메뉴얼
사용자가 제품을 구매한 후 설치 시 참조하는 문서
제품 소프트웨어 설치 메뉴얼 기본 작성 항목
(1) 목차 및 개요
(2) 문서 이력 정보
(3) 설치 메뉴얼 주석
(4) 설치 도구의 구성
제품 소프트웨어 설치 환경 체크 항목
(1) 사용자 환경 : CPU 및 메모리, 운영체제(OS) 등의 적합 환경 확인
(2) 응용 프로그램 : 설치 전 다른 응용 프로그램의 종료 확인
(3) 업그레이드 버전 : 업그레이드 이전 버전에 대한 존재 유무 확인
(4) 백업 폴더 확인 : 데이터 저장 폴더를 확인하여 설치 시 폴더 동기화
제품 소프트웨어 설치 메뉴얼 구성요소
(1) 제품 소프트웨어 개요 : 제품 소프트웨어의 주요 기능 및 UI 설명
(2) 설치 관련 파일 : 제품 소프트웨어를 설치하기 위한 관련 파일 설명
(3) 설치 절차 : 제품 소프트웨어 설치를 위한 상세 절차 설명
(4) 설치 아이콘 : 윈도즈(Windows) 구동용 설치 아이콘 설명
(5) 삭제 방법 : 제품 소프트웨어 삭제 시 원래대로 삭제하는 방법 설명
(6) 설치 버전 및 작성자 : 제품 소프트웨어 릴리즈 버전 및 작성자 정보
(7) 고객 지원 방법 및 FAQ : 설치 관련하여 기술적인 지원이나 제품 서비스를 받을 수 있는 유선 및 이메일, 홈페이지 주소
(8) 준수 정보 & 제한 보증 : 시리얼 보존, 불법 등록 사용 금지 등의 준수 사항 권고
제품 소프트웨어 사용자 메뉴얼
사용자가 소프트웨어 사용에 필요한 내용, 제반 절차, 환경 등의 내용을 포함하는 문서
개발된 컴포넌트 사용 시에 알아야 할 내용을 기술하며 패키지의 기능, 패키지의 인터페이스, 포함하고 있는 메서드나 오퍼레이션과 메서드의 파라미터 등의 설명이 포함되어져 있다.
제품 소프트웨어 사용자 메뉴얼 작성 항목
(1) 목차 및 개요 : 메뉴얼 전체 내용을 순서대로 요약
(2) 문서 이력 정보 : 버전, 작성자, 작성일, 검토자, 일시, 검수인 등을 일자별로 기록
(3) 사용자 메뉴얼 주석 : 주의사항과 참고 사항을 구성
(4) 기록 항목 : 제품 명칭, 모델명, 문서 번호, 제품 번호 등의 기록 항목이 있음
(5) 기본 사항 : 제품 소프트웨어 기본사항에는 개요, 사용방법 및 관리 방법, 모델, 버전별 특징, 제품 소프트웨어 기능 및 인터페이스 특징, 구동환경 등이 있음
(6) 고객 지원 방법 및 FAQ : 설치 관련하여 기술적인 지원이나 제품 서비스를 받을 수 있는 유선 및 이메일, 홈페이지 주소
(7) 준수 정보 & 제한 보증 : 시리얼 보존, 불법 사용 금지 등의 준수 사항 권고
제품 소프트웨어 사용자 메뉴얼 작성 프로세스
(1) 작성 지침 정의
(2) 사용자 메뉴얼 구성요소 정의
(3) 구성요소별 내용 작성
(4) 사용자 메뉴얼 검토
제품 소프트웨어 배포본
사용자가 사용하기 편하도록 배포 정보를 포함하여 개발된 컴포넌트 또는 패키지가 제품화된 형태
버전 관리 도구를 통한 관리 작업
버전 관리 백업 및 복구 (백업, 복구)
- 이전 버전으로의 복구 필요시
- 이전 버전의 기능을 재활용시
동일 버전 공동 작업 (공동 작업, 분산 버전 관리 툴 필요)
- 동일 버전의 소스 코드를 두 명 이상의 개발자가 수정할 경우
- 분산환경에서 두 명 이상의 개발자가 동일한 버전의 소스를 수정할 경우
여러 버전 솔루션 작업 (브랜치 관리 기능 필요)
- 하나의 솔루션을 기반으로 여러 버전의 제품을 개발할 경우
백업의 유형
- Full Backup (전체 백업) : 백업 받고자하는 데이터 전체에 대해 백업하는 방식
- Differential Backups (차등 백업) : 마지막 전체 백업 이후 변경된 모든 데이터를 백업하는 방식
- Incremental Backups (증분 백업) : 정해진 시간을 기준으로 그 이후에 변경된 파일만을 백업하는 방식
'개발적인 > 기타 개발적인 부분' 카테고리의 다른 글
프론트엔드 실무 면접 준비해보기 (0) | 2023.01.02 |
---|---|
프론트엔드 기초 CS 대비 (0) | 2023.01.02 |
XI. 응용 SW 기초 기술 활용 (0) | 2022.10.11 |
X. 어플리케이션 테스트 관리 (0) | 2022.10.10 |
IX. 소프트웨어 개발 보안 구축 (0) | 2022.10.09 |
댓글