2022. 5. 30. 16:14ㆍ카테고리 없음
(1) 애플리케이션 패키징
1. 애플리케이션 패키징이란
- 개발이 완료된 제품 소프트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작하고, 설치와 사용에 필요한 내용을 포함하는 매뉴얼을 작성하는 활동
2. 애플리케이션 패키징 고려사항
- 사용자 실행 환경의 이해
- 사용자 관점에서의 패키징 고려사항(사용자 시스템 환경 정의, UI 제공, 관리 서비스 형태로 제공, 패키징의 변경 및 개선 관리 고려)
3. 애플리케이션 패키징 프로세스
기능 식별 -> 모듈화(기능 및 서비스를 모듈 단위로 분류) -> 빌드 진행(신규 개발 소스 및 컴파일 결과물 준비) -> 사용자 환경 분석 -> 패키징 적용 시험 -> 패키징 변경 개선
(2) 애플리케이션 배포 도구
1. 애플리케이션 배포 도구 개념
- 배포를 위한 패키징 시에 디지털 콘텐츠의 지적재산권을 보호하고 관리하는 기능을 제공하며, 안전한 유통과 배포를 보장하는 도구이자 솔루션
2. 애플리케이션 배포 도구의 기술요소
기술요소 | 설명 |
암호화 | 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술 |
키 관리 | 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술 |
식별 기술 | 콘텐츠 식별 체계 표현 기술 |
저작권 표현 | 라이선스의 내용 표현 기술 |
암호화 파일 생성 | 암호화된 콘텐츠로 생성 |
정책 관리 | 라이선스 발급 및 사용에 대한 정책표현 관리 기술 |
크랙 방지 | 크랙에 의한 콘텐츠 사용 방지 기술 |
인증 | 사용의 기준이 되는 사용자 인증 기술 |
3. 애플리케이션 배포 도구 활용 시 고려사항
- 암호화 : 내부 콘텐츠에 대한 암호화 및 보안 고려
- 이기종 연동 : 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려
- 복장성 및 비효율성 문제 : 문제를 고려하여 최대한 효율적으로 적용
- 알고리즘 적용 : 제품 소프트웨어의 종류에 맞는 알고리즘을 선택할 것
(3) 애플리케이션 모니터링 도구
1. 애플케이션 모니터링 도구란
- 제품 소프트웨어를 사용자 환경에 설치한 후 기능 및 성능, 운영 현황을 모니터링하여 제품을 최적화하기 위한 도구
2. 기능
- 애플리케이션 모니터링 도구는 변경 관리, 성능 관리 및 정적 분석 등의 기능을 수행한다.
(4) DRM
1. DRM의 개념
- 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술
2. DRM의 특징
- 거래 투명성 : 저작권자와 유통업자 사이의 거래구조 투명성 제공
- 사용규칙 제공 : 사용가능 횟수, 유효기간, 사용 환경 등을 정의
- 자유로운 상거래 제공 : 이메일, 디지털 미디어, 네트워크 등을 통한 자유로운 상거래 제공
3. DRM 구성요소
- 콘텐츠 제공자 : 콘텐츠를 제공하는 저작권자
- 콘텐츠 소비자 : 콘텐츠를 구매해서 사용하는 주체
- 콘텐츠 분배자 : 암호화된 콘텐츠를 유통하는 곳이나 사람
- 클리어링 하우스 : 저작권에 대한 사용 권한, 라이선스 발급 등을 수행하는 곳
- DRM 콘텐츠 : 서비스하고자 하는 암호화된 콘텐츠
- 패키저 : 콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 도구
- DRM 컨트롤러 : 배포된 디지털 콘텐츠의 이용 권한을 통제
- 보안 컨테이너 : 원본 콘텐츠를 안전하게 유통하기 위한 전자적 보안장치
4. DRM 기술요소
- 암호화 : 콘텐츠를 암호화하고, 전자서명할수 있는 기술
- 키 관리 : 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
- 식별 기술 : 식별 체계 표현 기술(DOI, URI)
- 저작권 표현 : 라이선스의 내용 표현 기술
- 암호화 파일 생성 : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
- 정책 관리 : 라이선스 발급 및 사용에 대한 정책표현 관리 기술
- 크랙 방지 : 크랙 사용 방지 기술
- 인증 : 사용의 기준이 되는 사용자 인증 기술
(4) 제품 소프트웨어 매뉴얼 작성
1. 제품 소프트웨어 매뉴얼 개념
- 매뉴얼은 제품 소프트웨어 개발 단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용 등을 문서로 기록한 것이다.
2. 제품 소프트웨어 설치 매뉴얼 구성요소
- 제품 소프트웨어 개요 : 주요 기능 및 UI 설명
- 설치 관련 파일
- 설치 절차
- 설치 아이콘
- 삭제 방법
- 설치 버전 및 작성자
- 고객 지원 방법 및 FAQ
- 준수 정보 & 제한 보증 : 불법 등록 사용 금지 등의 준수 사항 권고
(5) 국제 표준 제품 품질 특성
1. 국제 표준 제품 품질 특성이란
- 제품에 대하여 명확하게 정의된 특성을 의미하며, 품질을 평가하는 기준 항목이다.
- 국제 표준화는 ISO/IEC, ITU-T, IEEE를 중심으로 진행된다.
2. ISO/IEC 9126의 소프트웨어 품질 특성
- 기능성 : 명시된 요구와 내재된 요구를 만족하는지
- 신뢰성 : 성능 수준을 유지할 수 있는지
- 사용성 : 사용자에 의해 이해되고 학습되고 사용되고 선호될 수 있는지
- 효율성 : 사용되는 자원의 양에 따라 요구된 성능을 제공하는지
- 유지보수성 : 소프트웨어 제품이 변경되는 능력
- 이식성 : 하나 이상의 하드웨어 환경에서 운용되기 위해 쉽게 수정될 수 있는 시스템 능력
3. ISO/IEC 14598의 소프트웨어 품질 특성
- 반복성: 동일 평가자가 평가하면 동일한 결과가 나와야 함
- 재현성 : 다른 평가자가 동일 사양을 평가하면 유사한 결과가 나와야 함
- 공정성 : 특정 결과에 편향되지 않아야 함
- 객관성 : 객관적 자료에 의해서만 평가되어야 함
4. ISO/IEC25000이란
- 소프트웨어 품질 특성 및 품질 평가 방법을 통합한 품질 평가 모델 국제 표준이다.
▼ISO/IEC 25000 구성요소
- 품질 관리 : 가이드라인과 품질평가의 관리에 관한 표준 제시
- 품질 모델 : 제품 품질 평가의 일반 모델 제시
- 품질 측정 : 품질측정 메트릭 정의
- 품질 요구 : 품질 요구사항 설정 프로세스
- 품질 평가 : 품질평가 절차를 정의
5. 소프트웨어 공학의 기본원칙
▷ 소프트웨어 위기 개념 : 여러 원인에 의해 소프트웨어 개발 속도가 하드웨어 개발 속도를 따라가지 모하는 현상
▷ 소프트웨어 공학 : 소프트웨어의 개발, 운용, 유지보수 및 파기에 대한 체계적인 접근 방법
▷ 소프트웨어 공학 관련 법칙 : 브루스의 법칙, 파레토 법칙, 롱테일 법칙
(6) 소프트웨어 버전 관리 도구
1. 소프트웨어 버전 관리 도구란
- 형상 관리 지침을 활용하여 제품 소프트웨어의 신규 개발, 변경, 개선과 관련된 수정 사항을 관리하는 도구이다.
2. 소프트웨어 버전 관리 도구 유형
- 공유 폴더 방식 : 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사하는 방식(RCS)
- 클라이언트/서버 방식 : 버전 관리 자료가 중앙시스템에 저장되어 관리되는 방식(CVS, SVN, Clear Case)
- 분산 저장소 방식 : 로컬 저장소와 원격 저장소로 분리된 구조(Git, BitKeeper)
(7) 빌드 자동화 도구
1. 빌드 자동화 도구란
- 빌드란 소프트웨어를 생성하고 테스트하고 검사하여 배포하기 위해 수행하는 행위의 집합이다.
- 빌드 자동화 도구란 제품 소프트웨어 실행파일 생성을 자동화하기 위해서 저장소에 있는 소스를 자동적으로 읽어서 빌드한 후 테스트하고 검사하여 실행파일을 만드는 도구이다.
2. 빌드 자동화 구성요소
구성요소 | 설명 | 도구 |
CI 서버 | 빌드 프로세스를 관리하는 서버 | Jenkins, Hudson |
SCM | 소스 코드 형상 관리 시스템 소스 코드의 개정과 백업 절차를 자동화 |
SVN, Git |
빌드 도구 | 컴파일, 테스트, 정적 분석 등을 통해 동작 가능한 소프트웨어 생성 | Ant, Maven |
테스트 도구 | 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구 | Junit, Selenium |
테스트 커버리지 도구 | 테스트 코드가 대상 소스 코드에 대해 어느 정도 커버하는지 분석하는 도구 | Emma |
인스펙션 도구 | 프로그램을 실행하지 않고, 소스 코드 자체로 품질을 판단할 수 있는 정적 분석 도구 | CheckStyle, Cppcheck |
3. 젠킨스(Jenkins)
- 젠킨스는 자바 기반의 오픈소스로 가장 많이 활용되는 빌드 자동화 도구
- 서블릿 컨테이너 서버 기반으로 구동되는 시스템
- 설치가 쉽고 친숙한 웹 GUI를 가지고 있으며 저장소 부하를 감소시켜주고 실시간 피드백, 분산 빌드, 3rd party플러그인을 통한 확장과 최근 빌드를 제공해 준다.
4. 그래들(Gradle)
- 그래들은 그루비와 유사한 도메인 언어를 채용, 현재 안드로이드 앱을 만드는 데 필요한 안드로이드 스튜디오의 공식 빌드 자동화 시스템이다.
- 그래들은 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행한다.