Just do IT
article thumbnail

릴리즈 노트

   1) 정의

      - 조직의 최종 사용자인 고객과 잘 정리된 릴리즈 정보를 공유하는 문서

      - 상세 서비스를 포함하여 회사가 제공하는 제품을 만들어 수정, 변경 또는 개선하는

         일련의 작업들이며, 릴리즈 정보들이 이러한 문서를 통해 제공된다

      - 이 정보들은 철저하게 테스트를 진행하고, 개발 팀에서 제공하는 사양에 대해 최종 승인된 후 

         문서를 통해 배포된다

 

   2) 릴리스 노트 작성 항목

Header 문서 이름(릴리즈 노트 이름), 제품 이름, 제품 번호,
릴리즈 날짜, 참고 날짜, 노트 버전 등
개요 제품 및 변경에 대한 간략하고 전반적인 개요
목적 릴리즈 버전의 새로운 기능 목록과 릴리즈 노트의 목적에 대한
간략한 개요
버그 수정 및 새로운 기능 기술
이슈 요약 버그의 간단한 설명 또는 릴리즈 추가 항목 요약
재현 항목 버그 발견에 따른 재현 단계 기술
수정/개선 내용 수정/개선의 간단한 설명 기술
사용자 영향도 버전 변경에 따른 최종 사용자 기준의 기능 및 응용 프로그램상의 영향도 기술
SW 지원 영향도 버전 변경에 따른 SW의 지원 프로세스 및 영향도 기술
노트 SW 및 HW Install 항목,  제품, 문서를 포함한 업그레이드 항목 메모
면책 조항 회사 및 표준 제품과 관련된 메시지
프리웨어, 불법 복제 방지, 중목 등 참조에 대한 고지사항
연락 정보 사용자 지원 및 문의 관련한 연락처 정보

 

패키징 도구 구성요소

구성요소 설명
암호화 Encryption 콘텐츠 및 라이선스를 암호화하고, 전자 서명을 할 수 있는 기술
PKI, Symmetric/Asymmetric Encryption, Digital Signature
키 관리 Key Management 콘텐츠를 암호화한 키에 대한 저장 및 배포 기술
Centralized, Enveloping
암호화 파일 생성 Packager 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
Pre-packaging, On-the-fly Packaging
식별 기술 Identification  콘텐츠에 대한 식별 체계 표현 기술
DOI, URI

 

디지털 저작권 관리 (DRM)의 기술 요소 ⭐⭐⭐

구성요소 설명
저작권 표현
Right Expression
라이선스의 내용 표현 기술
XrML/MPGE-21 REL, ODRL
정책 관리
Policy Management
라이선스 발급 및 사용에 대한 정책표현 및 관리기술
XML, Contents Management System
크랙 방지
Tamper Resistance
크랙에 의한 콘텐츠 사용 방지 기술
Code Obfuscation, Kernel Debuger Detection, Module Certification
Secure DB, Secure Time Management, Encryption
인증
Authentication
라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
User/Device Authentication, SSO, Digital Certificate

 

저장권 보호 측면의 패키징도구 활용

   1) 저작권 관리의 흐름

      - 콘텐츠 제공자, 분배자, 소비자 간의 패키징 배포 및 관리의 주체를 중앙의 클리어링 하우스에서

        키 관리 및 라이선스 발급 관리

 

   2) 저작권 관리 구성 요소

구성요소 설명
콘텐츠 제공자
Contents Provider
콘텐츠를 제공하는 저작권자
콘텐츠 분배자
Contents Distributor
쇼핑몰 등으로써 암호화된 콘텐츠 제공
패키저
Packager
콘텐츠를 메타 데이터와 함께 배포 가능한 단위로 묶는 기능
보안 컨테이너 원본을 안전하게 유통하기 위한 전자적 보안 장치
DRM 컨트롤 배포된 콘텐츠의 이용 권한을 통제
클리어링 하우스
Clearing House
키 관리 및 라이선스 발급 관

 

제품 소프트웨어의 메뉴얼 작성

   1) 제품 소프트웨어의 메뉴얼

      - 제품 소프트웨어 개발단계부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용

         등을 문서로 기록한 것

      - 사용자 중심의 기능 및 방법을 나타낸 설명서와 안내서

 

   2) 설치 메뉴얼 작성의 기본 사항

      - 설치 메뉴얼은 개발자의 기준이 아닌 사용자의 기준으로 작성

      - 최초 설치 실행부터 완료까지 순차적으로 진행

      - 각 단계별 메시지 및 해당 화면을 순서대로 전부 캡쳐 하여 설명

      - 설치 중간에 이상 발생 시 해당 메시지 및 에러에 대한 내용을 분류하여 설명

 

주요 국제 표준화 기구

   1) ISO 국제표준화기구

      - 설립 : 1947년, 비정부기구 (NGO)

      - 역할 : 지적, 과학, 기술, 경제 등 일반 분야의 국제표준 제정, 보급

 

   2) IEC 국제전기기술위원회

      - 설립 : 1906년, 비정부기구 (NGO)

      - 역할 : 전기전자 분야의 국제표준 제정, 보급

 

   3) ITU 국제전기통신연합

      - 설립 : 1865년, UN산하 전문기구

      - 역할 : 유무선 통신, 전파, 방송, 위성주파수 등에 대한 기술기준 및 표준의 개발, 보급과

                   국제협력 수행

 

국제표준 : 소프트웨어 품질 관점

품질 표준/인증 설명
ISO/IEC 9126 품질 특성과 측정 기준 제시
기능성, 신뢰성, 사용성, 효율성, 유지성, 보수성, 이식성
평가 방법 없음
ISO/IEC 14598 소프트웨어 제품평가
표준개요, 측정계획관리, 개발자, 획득자, 평가자, 평가모델
ISO/IEC 12119 정보기술, 패키지 소프트웨어에 대한 품질 요구사항 및 시험을 위한 국제 표준
제품 설명서, 사용자 문서, 실행 프로그램
ISO/IEC 25000 소프트웨어 품질 평가 모델인 ISO/IEC 9126와
소프트웨어 평가 절차 모델 ISO/IEC 14598, ISO/IEC 12119을 통합
Good S/W 정보통신기술협화산하 S/W 시험 센터 주관

 

소프트웨어 품질 특성 (ISO/IEC 9126)

특성 설명
기능성 명시된 요구와 내재된 욕구를 만족하는 기능
(하위 특성 : 적합성, 상호 운용성, 보안성, 정확성, 준수성)
신뢰성 규정된 성능 수준 유지 및 오류 방지
(하위 특성 : 고장 허용성, 회복성, 성숙도, 준수성)
사용성 사용자에 의해 이해, 학습 ,선호
(하위 특성 : 학습성, 운영성, 친밀성, 준수성) 
효율성 주어진 자원을 사용하여 요구된 성능제공
(하위 특성 : 반응 시간, 지원 특성, 준수성)
유지보수성 운영환경 및 요구사항, 기능적 사양에 따른 소프트웨어 수정, 개선
(하위 특성 : 분석성, 변경성, 안정성, 테스트 용이성, 준수성)
이식성 다양한 환경에서 운영 가능
(하위 특성 : 적응성, 설치성, 공존성, 대체성, 준수성)

 

제품 소프트웨어 버전관리

   1) 버전 관리

      - 제품 소프트웨어 버전 관리는 SW 개발과 관련하여 코드와 라이브러리, 관련 문서 등

         시간의 변화에 따른 변경을 관리하는 전체 활동을 의미

      - 동일한 소스 코드에 대한 여러 버전 관리

      - 팀 단위로 개발 중인 소스 코드나, 설계도 등의 디지털 문서를 관리

      - 문서의 변경 사항들에 숫자나 문자로 이뤄진 "버전"을 부여해서 구분

      - 버전을 통해 변경된 시간, 변경된 사항, 변경 작업을 행한자를 파악할 수 있다

 

   2) 버전 관리 도구 유형

유형 설명
공유 폴더 방식
RCS, SCCS
- 매일 개발 오나료 파일은 약속된 위치의 공유 폴더에 복사
- 담당자 한 명이 매일 공유 폴더의 파일을 자기 PC로 복사하고 컴파일하여
   에러 확인과 정상 동작 여 부 확인
- 정상 동작일 경우 다음 날 각 개발자들이 동작 여부 확인
클라이언트 / 서버방식
CVS, SVN
- 중앙에 버전 관리 시스템이 항시 동작
- 개발자들의 현재 작업 내용과 이전 작업내용 축적 용이
- 서로 다른 개발자가 같은 파일을 작업했을 때 경고 출력
- GUI 툴을 이용 모니터링 가능
분산 저장소 방식
Git, Bitkeeper 등
- 로컬 저장소와 원격저장소 구조
- 중앙의 저장소에서 로컬에 복사(clone)한 순간 개발자 자신만의 로컬 저장소에 생성
- 개발 완료한 파일 수정 이후 로컬 저장소에 커밋한 이후 다시 원격 저장소에 반영하는 방식

 

 

   3) 현업에서 쓰이는 다양한 버전 관리 도구별 특징

도구 설명
CVS
Concurrent
Version System
- 서버와 클라이언트로 구성되어 다수의 인원이 동시에 범용적인 운영체제로 접근 가능하여 버전 관리를 가능케 한다
- Client가 이클립스에 내장되어 있다 
SVN
Subversion
- GNU의 버전 관리 시스템으로 CVS의 장점은 이어받고 단점은 개선하여 2000년에 발표되었다.
- 사실상 업계 표준으로 사용되고 있으며 SVN으로 불리고 있다
RCS
Revision
Control System
- CVS와 달리 소스파일의 수정을 한 사람만으로 제한하여 다수의 사람이 파일의 수정을 동시에 할 수 없도록 파일을 잠금하는 방식으로 버전 컨트롤을 수행한다
Bitkeeper - SVN과 비슷한 중앙 통제 방식의 버전 컨트롤 툴로서 대규모 프로젝트에서 빠른 속도를 내도록 개발 되었다
Git - 기존 리눅스 커널의 버전 컨트롤을 하는 Bitkeeper를 대체하기 위해서 나온 새로운 버전 컨트롤로 현재의 리눅스는 이것을 통해 버전 컨트롤이 되고 있다
- Git는 속도에 중점을 둔 분산형 버전 관리 시스템(DVCS)이며, 대형 프로젝트에서 효과적이고 실제로 용이하다
- Git는 SVN과 다르게 Commit은 로컬 저장소에서 이루어지고 push라는 동작으로 원격 저장소에 반영된다
- 받을 때도 Pull 또는 Fetch로 서버에서 변경된 내역을 받아 올 수 있다 
Clear Case - IBM에서 제작되었다
- 복수 서버, 복수 클라이언트 구조이며 서버가 부족할 때 필요한 서버를 하나씩 추가하여 확장성을 기할 수 있다

 

빌드 자동화 도구

   1) 정의

      - 빌드란 소프트웨어를 생성, 테스트, 검사하여 배포하기 위한 모든 것

      - 소스코드 파일들을 실행할 수 있는 소프트웨어로 변환하는 과정에 필요한 도구

 

도구 설명
Ant - 아파치 소프트웨어 재단에서 개발한 소프트웨어
- XML 기반의 빌드 스크립트를 사용하며 자유도와 유연성이 높다
Maven - Ant의 대안으로 개발됨
- 자동으로 필요한 라이브러리 파일을 불러온다 
Gradle (그래들) - 기존의 Ant와 Maven을 보완하여 개발된 빌드 도구이다
- Task는 작업의 최소 단위이며 태스크 단위로 실행한다
- Groovy를 기반으로 하며 안드로이드 스튜디오의 공식 빌드 시스템 
Jenkins (젠킨스) - 자바 기반의 오픈소스, 가장 많이 활용되는 빌드 자동화 도구
- 소프트웨어 개발 시 지속적 통합 서비스를 제공하는 툴

 

정리하기


1. 릴리즈 노드
   - 정리된 릴리즈 정보를 공유하는 문서
   - Header, 개요, 목적, 이슈 요약, 재련 항목, 수정/개선 내용, 사용자 영향도, SW 지원 영향도, 노트, 면책 조항, 연락 정보

2. 패키징 도구 구성요소
   - 암호화(Encryption), 키 관리(Key Management), 암호화 파일 생성(Packager), 식별 기술(Identification)

3. 디지털 저작권 관리(DRM)의 기술 요소
   -  저작권 표현(Right Expression), 정책 관리(Policy Management), 크랙 방지(Tamper Resistance),
      인증(Authentication)

4. 저작권 보호 측면의 패키징도구 활용
   - 콘텐츠 제공자, 분배자, 소비자 간의 키 관리 및 라이선스 발급 관리
   - 구성 요소 : 콘텐츠 제공자(Contents Provider), 콘텐츠 분배자(Contents Distributor), 패키저(Packager),
      보안컨테이너, DRM 컨트롤러, 클리어링 하우스(Clearing House)

5. 제품 소프트웨어의 메뉴얼 작성
   - 사용자 중심의 기능 및 방법을 나탄내 설명서와 안내서
   - 최초 설치 실행부터 완료까지 순차적으로 진행

6. 주요 국제 표준화 기구
   - ISO (국제표준화기구), IEC (국제전기기술위원회), ITU (국제전기통신연합)

7. 국제표준 : 소프트웨어 품질 관점
   - ISO/IEC 9126, ISO/IEC 14598, ISO/IEC 12119, ISO/IEC 25000, Good S/W

8. 소프트웨어 품질 특성 (ISO/IEC 9126)
   - 기능성, 신뢰성, 사용성, 효율성, 유지 보수성, 이식성

9. 제품 소프트웨어 버전관리
   - 도구 유형 : 공유 폴더 방식 (RCS, SCCS), 클라이언트/서버방식 (CVS, SVN),
      분산 저장소 방식 (Git, Bitkeeper, Clear Case 등)

10. 빌드 자동화 도구
   - Ant, Maven, Gradle(그래들), Jenkins(젠킨스)

 

4. 애플리케이션 테스트 관리

'정보처리기사 > 2과 소프트웨어 개발' 카테고리의 다른 글

5. 인터페이스 구현  (0) 2023.09.23
4. 애플리케이션 테스트 관리  (0) 2023.09.22
2. 통합 구현  (0) 2023.09.20
1. 데이터 입/출력 구현  (0) 2023.09.19
profile

Just do IT

@AmyG

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!