한이아지와 함께하는 정보처리기사 3과목 1번째) 제품 소프트웨어 패키징
PART2. 소프트웨어 개발
- Chap01) 데이터 입 · 출력 구현
- 논리 데이터 저장소 확인
- 물리 데이터 저장소 설계
- 데이터 조작 프로시저 작성
- 데이터 조작 프로시저 최적화
- Chap02) 통합 구현
- 모듈 구현
- 통합구현 관리
- Chap03) 제품 소프트웨어 패키징
- 제품 소프트웨어 패키징
- 제품 소프트웨어 매뉴얼 작성
- 제품 소프트웨어 버전 관리
- Chap04) 애플리케이션 테스트 관리
- 애플리케이션 테스트케이스 설계
- 애플리케이션 통합 테스트
- 애플리케이션 성능 개선
- Chap05) 인터페이스 구현
- 인터페이스 설계 확인
- 인터페이스 기능 구현
- 인터페이스 구현 검증
Chap01) 제품 소프트웨어 패키징
1. 제품 소프트웨어 패키징
1.1. 애플리케이션 패키징 (★)
[1] 애플리케이션 패키징이란?
개발이 완료된 제품 소프트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작하고
매뉴얼을 작성하는 활동
[2] 애플리케이션 패키징 고려사항
① 사용자 실행 환경의 이해
사용자 편의성을 위해 사용자 실행 환경을 우선 고려하여 패키징 진행
OS부터 시작하여 실행 환경, 시스템 사양 및 고객의 사용 방법까지 상세 분류하여 실행 환경을 사전 정의
② 사용자 관점에서의 패키징 고려사항
사용자 편의성을 위해 사용자 환경을 확인하여 여러 가지 케이스를 사전에 고려
고려사항 | 설명 |
사용자 시스템 환경 정의 | 사용자의 시스템 환경인 운영체제, CPU, 메모리 등의 수행을 위한 최소 환경 정의 |
UI 제공 | 사용자가 직관적으로 확인할 수 있는 UI를 제공하고 매뉴얼 일치시켜 패키징 작업 수행 |
관리 서비스 형태로 제공 | 하드웨어와 함께 통합 적용할 수 있도록 패키징을 관리 서비스 형태로 제공 |
패키징의 변경 및 개선 관리 고려 | 다양한 사용자의 요구사항을 반영하기 위해 패키징의 변경 및 개선 관리를 고려하여 배포 |
[3] 애플리케이션 패키징 프로세스
순서 | 프로세스 | 세부 활동 |
1 | 기능 식별 | 입출력 데이터 식별, 전체적인 기능 정의 및 데이터 흐름 식별, 기능 단위 및 출력 정의 |
2 | 모듈화 | 기능 및 서비스를 모듈 단위로 분류, 기능의 공유와 재활용 분류, 모듈 간 결합도와 응집도 식별 |
3 | 빌드 진행 | 신규 개발 소스 및 컴파일 결과물 준비, 정상 기능 단위 및 서비스 분류, 빌드 도구 확인 |
4 | 사용자 환경 분석 | 최소 사용자 환경 사전 정의, 모듈 단위의 사용자 환경 테스트 수행 |
5 | 패키징 적용 시험 | 사용자 환경에서의 패키징 적용 시험, UI 및 시스템 상의 편의성 체크 |
6 | 패키징 변경 개선 | 패키징 적용 시 변경점 도출, 최소 사용자 환경에서 서비스 가능한 수준의 개선, 버젼 재배포 |
1.2. 애플리케이션 배포 도구 (★★)
[1] 애플리케이션 배포 도구 개념
배포를 위한 패키징 시에 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능 제공, 완전한 유통과 배포를 보장
[2] 애플리케이션 배포 도구의 기술요소 - <암키식저암정크인>
기술요소 | 설명 |
암호화 | 콘텐츠 및 라이선스를 암호화하고 전자서명을 할 수 있는 기술 |
키 관리 | 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술 |
식별 관리 | 콘텐츠에 대한 식별 체계 표현 기술 |
저작권 표현 | 라이선스의 내용 표현 기술 |
암호화 파일 생성 | 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술 |
정책 관리 | 라이선스 발급 및 사용에 대한 정책표현 및 관리 기술 |
크랙 방지 | 크랙에 의한 콘텐츠 사용 방지 기술 |
인증 | 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술 |
[3] 애플리케이션 배포 도구 활용 시 고려사항
고려 사항 | 설명 |
암호화 / 보안 | 패키징 시 반드시 내부 콘텐츠에 대한 암호화 및 보안 고려 |
이기종 연동 | 패키징 도구를 활용하여 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려 |
복잡성 및 비효율성 문제 | 사용자의 입장에서 불편해질 수 있는 문제를 최대한 효율적으로 적용될 수 있도록 고려 |
최적합 암호화 알고리즘 적용 | 제품 소프트웨어의 종류에 맞는 알고리즘을 선택하여 배포 시 범용성이 지장이 없도록 고려 |
1.3. 애플리케이션 모니터링 도구 (★☆)
[1] 애플리케이션 모니터링 도구 개념
제품 소프트웨어를 사용자 환경에 설치한 후 기능 및 성능, 운영 현황을 모니터링하여 제품 최적화하기 위한 도구
[2] 애플리케이션 모니터링 도구 기능
기능 | 설명 | 도구 |
애플리케이션 변경 관리 | 애플리케이션 간의 종속관계를 모니터링, 변경의 영향도 파악 | ChangeMiner |
애플리케이션 성능 관리 | 서버로 유입되는 트랜잭션 수량, 응답시간 등을 모니터링 | Jenifer, Nmon |
애플리케이션 정적 분석 | 소스 코드의 잠재적인 문제 발견 기능, 코딩 규칙 오류 발견 | PMD, Cppcheck, Checkstyle |
애플리케이션 동적 분석 | 프로그램에 대한 결함 및 취약점 분석 도구, 메모리 및 오류 발견 | Avalanche, Valgrind |
[3] 애플리케이션 모니터링 도구 활용 효과
- 서비스 가용성 향상
- 서비스 성능 측정
- 장애 인지 / 리소스 측정
- 근본 원인 분석
1.4. DRM (★★★)
[1] DRM 개념
디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 범위 내에서 콘텐츠 이용하게 하는 기술
[2] DRM 특징
- 거래 투명성
- 사용규칙 제공
- 자유로운 상거래 제공
[3] DRM 구성 및 동작 방식
① DRM 동작 방식
순서 | 단계 | 동작 방식 |
1 | 라이선스 등록 | 클리어링 하우스에 라이선스 등록을 하면서 동시에 유통시스템에 콘텐츠 등록 |
2 | 라이선스 요청 | 콘텐츠 소비자가 유통시스템으로 라이선스 요청 |
3 | 라이선스 요청 | 유통시스템에서 클리어링 하우스를 통해서 라이선스 요청 |
4 | 요금 지불 | 콘텐츠 소비자가 요금 지불 |
5 | 라이선스 발급 | 클리어링 하우스를 통해서 라이선스 발급 |
6 | 콘텐츠 다운로드 | 콘텐츠 소비자가 콘텐츠를 다운로드 가능 |
② DRM 구성요소 - <제콘패 클 소컨보>
구분 | 구성요소 | 설명 |
콘텐츠 제공자 | DRM 콘텐츠 | 서비스하고자 하는 암호화된 콘텐츠, 메타 데이터, 사용정보를 패키징한 콘텐츠 |
패키저 | 암호화된 콘텐츠, 메타 데이터, 사용정보를 암호화한 콘텐츠로 변환하는 도구 | |
클리어링 하우스 | 콘텐츠 정책 | 라이선스 발급여부를 결정하는 정책에 대한 부합 여부 확인, 적절한 사용 권한 부여 |
콘텐츠 라이선스 | 사용자에게 전달되는 콘텐츠의 권리 인증, 콘텐츠에 대한 사용 조건 및 허가 정보 포함 | |
콘텐츠 관리정보 | 콘텐츠를 사용하고자 하는 사용자 정보 및 콘텐츠에 대한 정보 | |
콘텐츠 사용정보 | DRM 콘텐츠의 사용자 권한 및 콘텐츠 정책에 대한 정보 | |
콘텐츠 소비자 | DRM 컨트롤러 | 배포된 디지털 콘텐츠의 이용 권한을 통제 |
보안 컨테이너 | 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안장치 |
[4] DRM 기술요소 - <암키식저 파정크인> (애플리케이션 배포 도구의 기술요소와 동일)
기술요소 | 설명 |
암호화 | 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술 |
키 관리 | 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술 |
식별 기술 | 콘텐츠에 대한 식별 체계 표현 기술 |
저작권 표현 | 라이선스의 내용 표현 기술 |
암호화 파일 생성 | 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술 |
정책 관리 | 라이선스 발급 및 사용에 대한 정책표현 및 관리 기술 |
크랙 방지 | 크랙에 의한 콘텐츠 사용 방지 기술 |
인증 | 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술 |