도서 개발 공부/정보 처리 기사 필기
2. 소프트웨어 개발 - 제품 소프트웨어 패키징(소프트웨어 패키징 ~ 소프트웨어 사용자 매뉴얼 작성)
캐티시
2022. 3. 31. 15:19
45. 소프트웨어 패키징
: 모듈별로 생성한 실행 파일을 묶어 배포용 설치 파일을 만드는 것
- 사용자 중심으로 진행
- 향후 관리를 위해 소스 코드를 모듈화
- 다양한 환경에서 소프트웨어를 사용할 수 있도록 일반적인 배포 형태로 패키징
- 패키징 시 고려 사항
- 사용자의 시스템 환경(OS, CPU, 메모리, etc.)에서 소프트웨어 사용에 필요한 최소 환경 정의
- UI를 시각적 자료와 함께 제공. 매뉴얼과 일치시켜 패키징
- 소프트웨어가 하드웨어와 함께 관리될 수 있도록 Management Service 형태로 제공
- 내부 컨텐츠에 대한 암호화 및 보안 고려, 소프트웨어 종류에 적합안 암호화 알고리즘 적용
- 다른 컨텐츠 및 단말기 간 DRM 연동 고려
- 사용자를 위해 복잡성 및 비효율성 문제 고려
※ Management Service : 소프트웨어를 24시간 모니터링하며 문제 발생 시 현장에 출동하여 점검을 수행하는 등 체계적으로 운영 관리와 유지보스를 수행하는 서비스
- 패키징 주기 : 애자일 기법의 경우 보통 2~4주 내에 지정. 각 개발 주기가 끝날 때마다 패키징 수행
- 개발 주기별 패키징 결과물은 테스트 서버에 배포
- 마지막 개발 과정으로 생성된 최종 패키징 결과물은 설치 및 사용 매뉴얼과 함께 온라인/오프라인 배포
- 최근의 IDE 도구는 코딩부터 배포까지의 대부분의 과정을 지원하므로 별도의 패키징 도구를 사용하지 않음
- 패키징 작업 순서
기능 식별 | - 작성된 코드의 기능 확인 |
▼ | |
모듈화 | - 기능 단위로 코드 분루 |
▼ | |
빌드 진행 | - 모듈 단위별로 실행 파일 생성 |
▼ | |
사용자 환경 분석 | - 최소 운영 환경 정의 (운영체제, CPU, RAM, etc.) |
▼ | |
패키징 및 적용 시험 |
- 실행 파일들을 정의된 환경에 맞게 배포용 파일 형식으로 패키징 (msi, dmg, jar, etc.) - 패키징 결과를 테스트하고 불편사항을 사용자 입장에서 확인 |
▼ | |
패키징 변경 개선 | - 확인된 불편사항을 기반으로 패키징 변경 및 개선 |
▼ | |
배포 | - 배포 수행. 오류 발생 시 개발자에 수정 요청 |
46. 릴리즈 노트
: 개발 과정에서 정리된 릴리즈(배포) 정보를 사용자와 공유하기 위한 문서
- 테스트 진행 방법에 대한 결과와 소프트웨어 사양에 대한 준수 여부 확인 가능
- 소프트웨어에 포함된 전체 기능, 서비스 내용, 개선 사항 등 공유
- 소프트웨어의 버전 및 릴리즈 정보의 체계적 관리 가능
- 릴리즈 노트는 초기 배포 시 또는 출시 후 추가 배포 시에 제공
- 초기 버전에 대한 릴리즈 노트에는 소프트웨어의 기능과 사용환경에 대한 내용 포함
- 추가 버전에 대한 릴리즈 노트에는 개선된 작업에 대한 내용 포함
- 릴리즈 노트의 정보는 철저한 테스트를 거친 것이며 최종 승인 후 문서화되어 제공
- 릴리즈 노트는 정확하고 완전한 정보를 기반으로 개발팀에서 직접 현재 시제로 작성
- 주요 포함 항목
- Header (릴리즈 노트 이름, 릴리즈 버전 및 날짜, 릴리즈 노트의 버전 및 날짜, etc.)
- 소프트웨어 및 변경 사항 전체에 대한 간략한 개요
- 릴리즈 노트의 목적
- 문제 요약 및 버그 발견 과정, 버그 수정 내용
- 사용자에 대한 영향도, SW 지원 영향도
- 그 외 참고 사항 노트, 면책 조항, 연락처 등
- 릴리즈 노트 작성 시 고려사항
- 신규 소스, 빌드 등의 이력을 정확하게 관리하고 개선된 항목에 대한 이력 정보도 작성
- 소프트웨어 베타 버전의 출시, 긴급한 버그 수정, 업그레이드 등의 기능 향상, 사용자 요청으로 인한 변화 시에 추가 버전에 대한 릴리즈 노트 작성
- 사용자 요구로 인한 추가나 수정의 경우 자체 기능 향상과는 다른 별도의 릴리즈 버전으로 출시
- 릴리즈 노트 작성 순서
모듈 식별 | 모듈별 빌드 수행 후 릴리즈 노트에 작성할 내용 확인 |
▼ | |
릴리즈 정보 확인 | 릴리즈 노트 이름, 버전 및 날짜, 릴리즈 버전 및 날짜 등 확인 |
▼ | |
릴리즈 노트 개요 작성 | 소프트웨어 및 변경사항 전체에 대한 간략한 개요 작성 |
▼ | |
영향도 체크 | 해당 릴리즈 버전의 변화가 사용자나 다른 소프트웨어에 끼칠 수 있는 영향 기술 |
▼ | |
정식 릴리즈 노트 작성 | Header, 개요, 영향도 등을 포함한 정식 릴리즈 노트 내용 작성 |
▼ | |
추가 개선 항목 식별 | 필요한 경우 추가 릴리즈 노트 작성 |
47. 디지털 저작권 관리 (DRM; Digital Right Management)
: 저작권자가 배포한 디지털 컨텐츠가 저작권자가 의도한 용도로만 사용되도록 디지털 컨텐츠를 관리하고 보호하는 기술
※ 저작권 : 저작물에 대한 창작자가 가지는 배타적 독점권, 창작자가 타인의 침해를 받지 않을 고유 권리
- 원본 컨텐츠가 아날로그인 경우 디지털로 변환하여 패키저(Packager)로 DRM 패키징 수행
- 패키징을 수행하면 컨텐츠에 암호화된 저작권자의 전자 서명이 포함되고 라이선스 정보가 클리어링 하우스에 등록됨
- 컨텐츠 크기가 작은 경우 사용자가 요청하는 시점에서 실시간으로, 크기가 큰 경우에는 미리 패키징을 수행
1) 클리어링 하우스 (Clearing House)
: 디지털 저작권 라이선스의 중개와 발급을 수행하는 곳.
- 디지털 저작물의 이용 내역을 근거로 저작권료의 정산 및 분배 수행
- 사용자가 특정 컨텐츠를 사용하기 위해서는 클리어링 하우스에 저작권자가 등록한 라이선스 정보를 통해 사용자 인증과 컨텐츠 사용 권한을 확인 받아야 함
- 종량제 방식의 경우 클리어링 하우스를 통해 서비스의 사용량을 측정하고 이에 따라 요금을 부과함
2) 디지털 저작권 관리 흐름
- 클리어링 하우스 (Clearing House) : 저작권 사용 권한, 라이선스 발급, 암호화 키 관리, 결제 관리 등 수행
- 컨텐츠 제공자 (Contents Provider) : 컨텐츠를 만들어 제공하는 저작권자
- 패키저 : 컨텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
- 컨텐츠 분배자 (Contents Distributor) : 암호화된 컨텐츠를 유통하는 주체
- 컨텐츠 소비사 (Customer) : 컨텐츠를 구매하여 사용하는 주체
- DRM 컨트롤러 : 배포된 컨텐츠의 이용 권한을 통제하는 프로그램
- 보안 컨테이너 : 컨텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
3) 디지털 저작권 관리의 기술
- 암호화 (Encryption) : 컨텐츠와 라이선스의 암호화 및 전자서명 수행
- 키 관리 (Key Management) : 컨텐츠를 암호화한 키에 대한 저장 및 분배 수행
- 암호화 파일 생성 (Packager) : 컨텐츠를 암호화된 컨텐츠로 생성
- 식별 기술 (Identifier) : 컨텐츠에 대한 식별 체계 표현
- 저작권 표현 (Right Expression) : 라이선스의 내용 표현
- 정책 관리 (Policy Management) : 라이선스 발급 및 사용에 대한 정책 표현 및 관리
- 크랙 방지 (Tamper Resistance) : 크랙에 의한 컨텐츠 사용 방지
- 인증 (Authentication) : 사용자 인증
48. 소프트웨어 설치 매뉴얼 (Software Installation Manual/Guide)
: 사용자가 소프트웨어를 설치하는 과정에 필요한 내용을 기록한 설명서와 안내서
- 사용자 기준으로 작성
- 설치의 시작부터 완료까지의 전 과정을 빠짐없이 순서대로 설명
- 설치 과정에서 나타날 수 있는 오류 메시지 및 예외 상황에 대한 내용 설명
- 목차 및 개요
- 설치 매뉴얼의 목차에는 전체 설치 과정을 요약하여 시작 페이지와 함께 나타냄
- 설치 매뉴얼의 개요에는 설치 매뉴얼의 주요 특징, 구성, 설치 방법 및 순서 등의 내용 기술
- 서문
- 문서 이력
- 설치 매뉴얼의 주석
- 주의 사항 : 설치 시에 사용자가 반드시 알고 있어야 하는 중요한 내용
- 참고 사항 : 설치에 영향을 미칠 수 있는 사용자 환경이나 상황
- 설치 도구 구성 : 설치 관련 파일, 폴더 및 설치 프로그램 실행 파일, log 폴더 등
- 설치 환경 체크 항목 : 사용자 환경, 설치 전 다른 응용 프로그램 종료 여부, 업그레이드 버전, 백업 폴더 확인
- 기본 사항
- 소프트웨어 개요
- 설치에 필요한 파일
- 설치 아이콘
- 프로그램 삭제 방법
- 관련 추가 정보
- 설치 매뉴얼
- 설치 화면 및 UI : 설치 실행 화면, 메인 화면 및 안내창
- 설치 이상 메시지 : 설치 방법이나 환경이 잘못된 경우 표시될 수 있는 메시지 설명
- 설치 완료 및 결과 : 설치 완료 화면
- FAQ : 설치 과정에서 사용자가 직면할 수 있는 다양한 문제 상황에 대한 FAQ 정리
- 설치 시 점검 사항
- 네트워크 환경 및 보안
- 고객 지원 방법 : 설치와 관련된 기술적 지원이나 관련 서비스를 문의할 수 있는 연락처
- 준수 정보 및 제한 보증 (Compliance Information and Limited Warranty)
- 설치 매뉴얼 작성 순서
기능 식별 | 소프트웨어 개발 목적과 주요 기능을 흐름 순으로 정리 및 기록 |
▼ | |
UI 분류 | 설치 매뉴얼 작성 순서대로 UI 분류 및 기록 |
▼ | |
설치 파일 / 백업 파일 확인 | 설치 파일과 백업 파일 등의 개별적 기능 확인 및 기록 |
▼ | |
언인스톨 절차 확인 | 직접 언인스톨을 수행하며 그 순서를 자세히 기록 |
▼ | |
이상 케이스 확인 | 설치 과정에서 발생할 수 있는 다양한 케이스 확인, 해당 케이스에 대한 대처법 기록 |
▼ | |
최종 매뉴얼 적용 | 설치 완료 화면과 메시지 추가. 완성된 매뉴얼 검토 및 고객 지원 내용 작성 |
48. 소프트웨어 사용자 매뉴얼 (Software User Manual/Guide)
: 사용자가 소프트웨어를 사용하는 과정에 필요한 내용을 기록한 설명서와 안내서
- 사용자 기준으로 작성
- 개별적으로 동작 가능한 컴포넌트 단위로 매뉴얼 작성
- 컴포넌트 명세서와 컴포넌트 구현 설계서를 기반으로 작성
- 소프트웨어 사용에 필요한 절차, 환경 등의 제반 사항 포함
- 소프트웨어 배포 후 발생가능한 오류에 대한 패치와 기능 업그레이드를 위해 매뉴얼 버전 관리가 필요함
- 목차 및 개요
- 목차에는 매뉴얼 전체 내용을 순서대로 요약하고 관련 시작 페이지를 함께 기술
- 개요에는 소프트웨어의 주요 특징, 매뉴얼 구성, 실행 방법 및 사용법, 항목별 점검 기준 및 설정 방법 등 포함
- 서문
- 문서 이력
- 사용자 매뉴얼의 주석
- 주의 사항 : 사용 시에 사용자가 반드시 알고 있어야 하는 중요한 내용
- 참고 사항 : 특별히 참고해야 할 사용자 환경이나 상황
- 기록 보관 내용 : 기술 지원이나 추가 정보를 얻기 위한 소프트웨어 등록 정보(소프트웨어 명, 모델명, 제품 번호 등)
- 기본 사항
- 소프트웨어 개요
- 소프트웨어 사용 환경 (사용을 위한 최소 환경, 최초 구동에 대한 설명, 사용시 주의사항, etc.)
- 소프트웨어 사용 종료 및 관리에 대한 내용
- 모델별, 버전별 특징과 차이점
- 제품 기능과 인터페이스의 특징
- 소프트웨어 구동 환경 (개발에 사용한 언어, 호환 가능한 OS, OS별 설치 후 구동까지의 과정, etc.)
- 사용자 매뉴얼
- 사용자 화면 및 UI : 주의 사항 및 참고 사항 기술
- 주요 기능 분류 : 기능이 실행되는 화면을 순서대로 나타내고 설명함. 기능 구현 과정에서의 주의 사항 및 참고 사항 기술
- 응용 프로그램 및 설정 : 구동 시 함께 실행 가능한/불가능한 응용 프로그램 설명, 정상 구동을 위한 설정이나 기본값 설명
- 장치 연동 : 소프트웨어가 특정 장치에 내장 되는 경우 연동되는 장치 설명
- 네트워크 환경 : 정상적 네트워크 연결을 위한 설정값 설명
- 프로필(Profile) 안내 : 소프트웨어 구동 환경 점검 파일인 Profile에 대한 안내, 그 외에 구동에 필수적인 파일 안내
- 고객 지원 방법 : 소프트웨어 사용과 관련된 기술적 지원이나 관련 서비스를 문의할 수 있는 연락처
- 준수 정보 및 제한 보증 (Compliance Information and Limited Warranty)
- 사용자 매뉴얼 작성 순서
작성 지침 정의 | 사용자 매뉴얼 작성 지침 기록 |
▼ | |
사용자 매뉴얼 구성 요소 정의 | 소프트웨어 기능, 구성 객체 목록, 객체별 메소드와 메소드의 파라미터, 사용 예시, 사용자 환경 세팅 방법 등 |
▼ | |
구성 요소별 내용 작성 | 사용자 매뉴얼 구성 요소별로 내용 기록 |
▼ | |
사용자 매뉴얼 검토 | 작성된 매뉼얼을 검토하고 수정 및 보완 |