Data Mavericks
필기 - 2. 소프트웨어 개발_ch3. 제품 소프트웨어 패키징 본문
1. 제품 소프트웨어 패키징
(1) 애플리케이션 패키징
1️⃣ 애플리케이션 패키징 개념
- 개발이 완료된 제품 소프트웨어를 배포하고 설치할 수 있도록 고객에게 전달하기 위한 형태로 제작하고, 설치와 상용에 필요한 제반 내용을 포함하는 메뉴얼을 작성하는 활동
2️⃣ 애플리케이션 패키징 특징
- 사용자 중심으로 진행
- 신규 및 변경 개발 소스를 식별
- 모듈화 하여 상용 제품으로 패키징
- 사용자의 실행 환경을 이해하고, 범용 환경에서 사용이 가능하도록 일반적인 배포 형태로 분류하여 패키징이 진행
3️⃣ 애플리케이션 패키징 고려사항
- 사용자 실행 환경의 이해
- 고객의 편의성을 위해 사용자 실행 환경을 우선 고려하여 패키징을 진행
- 사용자 관점에서 패키징 고려사항
- 사용자 시스템 환경 정의, UI 제공, 관리 서비스 형태로 제공, 패키징의 변경 및 개선 관리 고려
4️⃣ 애플리케이션 패키징 프로세스
순서 | 프로세스 | 세부 활동 |
1 | 기능 식별 | 입출력 데이터 식별 |
2 | 모듈화 | 기능 및 서비스를 모듈 단위로 분류 |
3 | 빌드 진행 | 신규 개발 소스 및 컴파일 결과물 준비 |
4 | 사용자 환경 분석 | 최소 사용자 환경 사전 정의 |
5 | 패키징 적용 시험 | 사용자 환경에서의 패키징 적용 시험 |
6 | 패키징 변경 개선 | 패키징 적용 시 변경점 도출 |
5️⃣ 애플리케이션 패키징 릴리즈 노트
- 애플리케이션 패키징 릴리즈 노트 개념
- 애플리케이션 최종 사용자인 고객과 잘 정리된 배포 정보를 고유하는 문서
- 애플리케이션 패키징 릴리즈 노트 작성 항목
- 헤더, 개요, 목적, 이슈 요약, 재현 항목, 수정/개선 내용 등등
- 애플리케이션 패키징 릴리즈 노트 작성 프로세스
- 모듈 식별 -> 릴리즈 정보 확인 -> 릴리즈 노트 개요 작성 -> 영향도 체크 -> 정식 릴리즈 노트 작성 - 추가 개선 항목 식별
(2) 애플리케이션 배포 도구
1️⃣ 애플리케이션 배포 도구 개념
- 배포를 위한 패키징 시에 디지털 콘텐츠의 지적 재산권을 보호하고 관리하는 기능을 제공
2️⃣ 애플리케이션 배포 도구의 기술 요소
- 암호화 - 콘텐츠 및 라이선스를 암호화하고, 전자서명을 할 수 있는 기술
- 키 관리 - 콘테츠를 암호화한 키에 대한 저장 및 배포 기술
- 식별 기술 - 콘텐츠에 대한 식별 체계 표현 기술
- 저작권 표현 - 라이선스의 내용 표현 기술
- 암호화 파일 생성 - 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
- 정책 관리 - 라이선스 발급 및 사용에 대한 정책표현 및 관리 기술
- 크랙 방지 - 크랙에 의한 콘텐츠 사용 방지 기술
- 인증 - 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
3️⃣ 애플리케이션 배포 도구 활용 시 고려사항
암이복최 - 암이 복지가 최고래
고려 사항 | 설명 |
암호화/보안 | 패키징 시 사용자에게 배포되는 소프트웨어임을 감안하여 반드시 내부 콘텐츠에 대한 암호화 및 보안 고려 |
이기종 연동 | 여러 가지 이기종 콘텐츠 및 단말기 간 DRM 연동 고려 |
복잡성 및 비효율성 문제 | 사용자의 입장에서 불편해질 수 있는 문제를 고려하여 최대한 효율적으로 적용될 수 있도록 함 |
최적합 암호화 알고리즘 적용 | 제품에 맞는 알고리즘을 선택하여 배포시 범용성에 지장이 없도록 고려 |
(3) 애플리케이션 모니터링 도구
1️⃣ 애플리케이션 모니터링 도구 개념
- 소프트웨어를 사용자 환경에 설치한 후 기능 및 성능, 운영 현황을 모니터링하여 제품을 최적화하기 위한 도구
2️⃣ 애플리케이션 모니터링 도구의 기능
- 애플리케이션 변경 관리, 성능 관리, 정적 분석, 동적 분석의 기능을 수행
3️⃣ 애플리케이션 모니터링 도구 활용에 따른 효과
- 서비스 가용, 서비스 성능, 장애 인지/리소스 측정, 근본 원인 분석
(4) DRM
1️⃣ DRM(Digital Rights Managements)의 개념
- 디지털 콘텐츠에 대한 권리정보를 지정하고 암호화 기술을 이용하여 허가된 사용자의 허가된 권한 범위 내에서 콘텐츠의 이용이 가능하도록 통제하는 기술
2️⃣ DRM의 특징
- 거래 투명성, 사용규칙 제공, 자유로운 상거래 제공
3️⃣ DRM 구성요소 ❗
- 콘텐츠 제공자와 콘텐츠 소비자, 클리어링 하우스로 구성
- 콘텐츠 분배자는 제공자로부터 콘텐츠를 받아서 소비자에게 유통
- 콘텐츠 제공자
- 콘텐츠 소비자
- 콘텐츠 분배자
- 클리어링 하우스
- DRM 콘텐츠
- 패키저
- DRM 컨트롤러
- 보안 컨테이너
4️⃣ DRM의 기술요소
- 암호화
- 키 관리
- 식별 기술
- 저작권 표현
- 암호화 파일 생성
- 정책 관리
- 크랙 방지
- 인증
2. 제품 소프트웨어 매뉴얼 작성
(1) 제품 소프트웨어 매뉴얼 작성
1️⃣ 제품 소프트웨어 매뉴얼 개념
- 설치 메뉴얼과 사용자 매뉴얼이 있다
2️⃣ 설치 매뉴얼
- 설치 매뉴얼 기본 작성 항목
- 목차 및 개요
- 문서 이력 정보
- 설치 매뉴얼 주석
- 설치 도구의 구성
- 설치 위치 지정
- 설치 매뉴얼 구성요소
- 제품 소프트웨어 개요
- 설치 관련 파일
- 설치 절차
- 설치 아이콘
- 삭제 방법
- 설치 버전 및 작성자
- 고객 지원 방법 및 FAQ
- 준수 정보 & 제한 보증
- 설치 매뉴얼 작성 프로세스
- 개요 및 기능 식별
- UI 분류
- 설치 파일 / 백업 파일 확인
- 삭제 절차 확인
- 이상 유형 확인
- 최종 매뉴얼 적용
3️⃣ 사용자 매뉴얼
- 사용자 매뉴얼 작성 항목
- 목차 및 개요
- 문서 이력 정보
- 사용자 매뉴얼 주석
- 기록항목
- 기본 사항
- 고객 지원 방법 및 FAQ
- 준수 정보 & 제한 보증
- 사용자 매뉴얼 작성 프로세스
- 작성 지침 정의
- 사용자 매뉴얼 구성요소 정의
- 구성요소별 내용 작성
- 사용자 매뉴얼 검토
(2)국제 표준 제품 품질 특성
1️⃣ 국제 표줌 제품 품질 특성 개념
- 품질을 평가하는 기준 항목
- ISO/IEC, ITU-T, IEEE
- 제품 품질 표준과 프로세스 품질 표준으로 나눔
2️⃣ 제품 품질 표준
IT 제품에 대해 기능성, 신뢰성 등을 평가하는 기준이 되는 국제 표준
- ISO/IEC
- 기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성
- 반복성, 재현성, 공정성, 객관성
- 품질 관리, 품질 모델, 품질 측정, 품질 요구, 품질 평가
3️⃣ 소프트웨어 공학의 기본원칙
- 소프트웨어 개념
- 하드웨어를 동작시켜 사용자가 작업을 편리하게 수행하도록 하는 프로그램 및 자료 구조
- 소프트웨어 위기
- 소프트웨어가 하드웨어 개발 속도를 따라가지 못해서 생김
- 소프트웨어 공학
- 소프트웨어의 개발, 운용, 유지보수 및 ㅊ파기에 대한 체계적인 접근 방법
- 신뢰성 있는 소프트웨어를 경제적인 비용으로 획득하기 위해 공학적 원리를 정립하고 이를 이용하는 방법
- 소프트웨어 위기를 극복하기 위한 방한으로 연구된 학문
- 소프트웨어 공학 원칙
- 현대적인 프로그래밍 기술을 계속적으로 적용
- 개발된 소프트웨어의 품질이 유지되도록 지속적 검증 수행
- 소프트웨어 개발 관련 사항 및 결과에 대한 명확한 기록 유지
- 공학적으로 잘된 소프트웨어 특성
- 유지보수 용이
- 높은 신뢰성
- 충분한 테스팅
- 소프트웨어 공학 관련 법칙
- 브룩스의 법칙 - 지체되는 소프트웨어 개발 프로젝트에 인력을 추가하는 것은 개발을 늦출 뿐이다
- 파레토 법칙 - 전체 결과의 80%가 전체 원인 20%에서 일어나는 현상
- 롱테일 - 파레토 반대 법칙
3. 제품 소프트웨어 버전 관리
(1) 소프트웨어 버전 관리 도구
1️⃣ 소프트웨어 버전 관리 도구 개념
- 소프트웨어 버전 관리 도구는 형상 관리 지침을 활용하여 제품 소프트웨어의 신규 개발, 변경, 개선과 관련된 수정 사항을 관리하는 도구
2️⃣ 소프트웨어 버전 관리 도구 유형
버전 관리 도구 유형 | 설명 | 도구 |
공유 폴더 방식 | 매일 개발 완료 파일은 약속된 위치의 공유 폴더에 복사하는 방식 | RCS |
클라이언트/서버 방식 | 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식 | CVS, SVN |
분산 저장소 방식 | 로컬 저장소와 원격 저장소로 분리되어 관리되는 방식 | Git |
3️⃣ 소프트웨어 버전 관리 도구 종류
- CVS, SVN, Git
4️⃣ 소프트웨어 버전 관리 도구 사용 시 유의사항
유의사항 | 설명 |
버전에 대한 쉬운 정보 접근성 | 형상 관리 지침에 의거 버전에 대한 정보를 언제든지 접근할 수 있어야 함 |
불필요한 사용자에 대한 접근 제어 | 제품 소프트웨어 개발자, 배포자 이외에 불필요한 사용자가 소스를 수정할 수 없도록 해야 함 |
동일 프로젝트에 대한 동시 사용성 | 동일한 프로젝트에 대해서 여러 개발자가 동시에 개발할 수 있어야함 |
빠른 오류 복구 | 에러 발생 시 최대한 빠른 시간 내에 복구가 가능해야 함 |
(2) 빌드 자동화 도구
1️⃣ 빌드 자동화 도구 개념
- 빌드는 소프트웨어를 생성하고 테스트하고 검사하여 배포하기 위해 수행하는 행위의 집합
- 빌드 자동화 도구는 제품 소프트웨어 실행파일 생성을 자동화하기 위해서 저장소에 있는 소스를 자동으로 읽어서 빌드한 후 테스트하고 검사하여 실행파일을 만드는 도구
- 빌드 잗동화 도구는 지속적인 통합과도 연관
2️⃣ 빌드 자동화 프로세스 및 주요 구성요소
- 빌드 자동화 프로세스
- 컴파일 -> 패키징 -> 단위테스트 -> 정적분석 -> 리포팅 -> 배포 -> 최종빌드
- 빌드 자동화 구성요소
- CI - 빌드 프로세스를 관리하는 서버
- SCM - 소스 코드 형상 관리 시스템
- 빌드 도구 - 컴파일, 테스트, 정적분석 등을 통해 동작 가능한 소프트웨어 생성
- 테스트 도구 - 작성된 테스트 코드에 따라 자동으로 테스트를 수행해주는 도구
- 테스트 커버리지 도구 - 테스트 코드가 대상 소스코드에 대해 어느 정도 커버하는지 분석하는 도구
- 인스팩션 도구 - 프로그램을 실행하지 않고 소스 코드 자체로 품질을 판단 할 수 있는 정적 분석 도구
- 빌드 자동화 도구의 기능
- 코드 컴파일 - 테스트를 포함한 소스 코드 컴파일
- 컴포넌트 패키징 - 배포할 수 있는 컴포넌트를 묶는 작업
- 파일 조작 - 파일과 디렉토리를 만들고, 복사 및 지우는 작업
- 개발 테스트 실행 - 자동화된 테스트 진행
- 버전 관리 도구 통합 - 버전 관리 시스템 지원
- 문서 생성 - API 문서 생성
- 배포 기능 - 테스트 서버 배포 지원
- 코드 품질 분석 - 자동화된 검사 도구를 통한 코드 품질 분석
- 빌드 자동화 도구 사례
- 젠킨스
- 자바 기반의 오픈소스
- 서블릿 컨테이너 서버 기반으로 구동되는 시스템
- CVS,SVN,Git 지원
- 특징
- 쉬운 설치, 친숙한 웹 GUI, 저장소 부하 감소, 최근 빌드 제공, 실시간 피드백, 분산 빌드, 3rd Party 플러그인을 통한 확장
- 그래들
- 그래들은 그루비와 유사한 도메인 언어를 채용
- Java, C, 파이썬 지원
'자격증 > 정보처리기사' 카테고리의 다른 글
필기 - 2. 소프트웨어 개발_ch5. 인터페이스 구현 (0) | 2024.07.04 |
---|---|
필기 - 2. 소프트웨어 개발_ch4. 애플리케이션 테스트 관리 (0) | 2024.07.04 |
필기 - 2. 소프트웨어 개발_ch2. 통합 구현 (0) | 2024.07.03 |
필기 - 2. 소프트웨어 개발_ch1. 데이터 입출력 구현 (1) | 2024.07.03 |
필기 - 1. 소프트웨어 설계_ch3. 애플리케이션 설계 (0) | 2024.07.02 |