목차
- 제품 소프트웨어 패키징
- 패키징 프로세스
- 제품 소프트웨어의 패키징 도구
- REL(Rights Expression Language)
- ODRL(Open Digital Rights Language)
- SSO(Single Sign-On)
- 디지털 인증서(Digital Certificate)
- 모니터링 도구와 협업 도구
- 애플리케이션 모니터링 도구(APM : Application Performance Management)
- 협업 도구
- 제품 소프트웨어 저작권 보호
- DRM (Digital Rights Management)
- DRM의 유통 과정과 구성⭐
- DRM 정책
- 소프트웨어 매뉴얼
- 소프트웨어 설치 매뉴얼
- 소프트웨어 사용자 매뉴얼
- 릴리즈 노트 작성하기
- Release Note
- 소프트웨어 품질 관리
- 소프트웨어 품질 관련 국제 표준
- 🔎 ISO/IEC 9126
- 🔎 ISO/IEC 12119
- 🔎 ISO/IEC 25000
- 🔎 ISO/IEC 12270
- 🔎 ISO/IEC 15504 (SPICE) ⭐
- 소프트웨어 품질 목표(Software Quality and Goals)⭐
- 품질 측정 시 관점 별 분류
제품 소프트웨어 패키징
- 개념:
- 개발이 완료된 소프트웨어를 고객에게 인도학 위해 패키징하고,
- 설치 메뉴얼, 사용 메뉴얼 등을 작성하는 등 일련의 배포용 설치 파일을 만드는 작업
- 사용자의 다양한 환경에서 설치할 수 있도록 함
- 주의사항
- 전체 내용을 포함
- 사용자 중심으로 진행
- 모듈화, 버전 관리 및 릴리즈 노트를 관리
- 패키징 시 고려사항
- 운영체제와 호환성, 애플리케이션 크기, 보안, 앱 스토어 정책, UI/UX, 앱 업데이트,
- 어플리케이션 테스트, 문서화, 배포, 라이선스, 앱 마케팅, 유지보수
패키징 프로세스
기능 식별 → 모듈화 → 빌드 진행 → 사용자 환경 분석 → 패키지 적용 시험 → 패키징 변경 개선
- 기능 식별
- 입출력 데이터, 데이터 흐름 식별
- 기능 단위 및 출력에 대해 상세히 정의
- 모듈화
- 모듈 간 결합도와 응집도를 분석
- 기능 단위 및 서비스 단위를 모듈별로 분류
- 빌드 진행
- 정상 적인 빌드되는 기능 단위 및 서비스를 분류
- 사용자 환경 분석
- 최소 사용자 환경 사정을 정의
- 패키지 적용 시험
- 실 사용자 환경에서의 패키징 적용 테스트
- 패키징 변경 개선
- 개선 버전을 다시 패키징
제품 소프트웨어의 패키징 도구
- 패키징 시에 지식재산권을 보호하고 관리하는 기능을 제공하는 도구
- 소프트웨어의 안전한 유통 및 배포를 도와주는 솔루션
- 권한 제어 기술, 패키징 기술, 라이선스 관리, 권한 통제 기술
- 고려사항
- 내부 콘텐츠에 대한 암호화
- 적절한 암호화 알고리즘 적용
- DRM 연동 고려
- 복잡성 및 비효율성 문제를 고려
패키징 도구의 구성 요소 | 설명 |
---|---|
암호화(Encryption) | 라이선스 암호화, 전자서명을 할 수 있는 기술 |
키 관리(Key Management) | 암호화한 키에 대한 저장 및 배포 기술 |
암호화 파일 생성(Packager) | 콘텐츠를 암호화 된 콘텐츠로 생성하기 위한 기술 |
식별 기술(Identification) | DOI, URI |
저작권 표현(Right Expression) | XrML, MPEG-21, REL, ODRL |
정책 관리(Policy Management) | XML |
크랙 방지(Tamper Resistance) | Secure DB |
인증(Authentication) | 라이선스 발 급 및 사용의 기준이 되는 사용자 인증 기술, SSO, Digital Certificate |
*DOI: 디지털 콘텐츠를 고유하게 식별하는 번호, URL과는 달리 콘텐츠의 위치와는 관계없이 콘텐츠의 내용을 기반으로 생성
*URI: 인터넷에서 리소스를 식별하는 일반적인 방법을 제공하는 식별자 (URL의 상위개념)
REL(Rights Expression Language)
- XML 기반의 디지털 콘텐츠의 권한관리를 위해 사용되는 언어
- DRM(디지털 권한 관리 시스템)에서 사용
ODRL(Open Digital Rights Language)
- XML 기반의 저작권 관리를 위한 권한 표현 언어
SSO(Single Sign-On)
- 로그인할 때 발생하는 번거로움을 줄이기 위한 인증 방식
- 네이버 로그인, 구글 로그인
디지털 인증서(Digital Certificate)
- 공인된 제 3자 인증 기관이 발행하는 전자 문서
- 디지털 서명과 함께 사용됨
모니터링 도구와 협업 도구
애플리케이션 모니터링 도구(APM : Application Performance Management)
- 성능과 서비스 이용성을 감시하고 관리
- 목적: 부하량, 접속자 파악, 장애 진단, 통계, 분석 등
- 대표적인 APM 도구
- SCOUTER : DB 모니터링
- Jennifer : 전 생애주기 단계 동안 성능을 모니터링
기능 도구 | 기능 | 설명 |
---|---|---|
Change-Minder | 변경 관리 | 변경 관리, 영향 분석, 품질 관리 등의 기능 |
Jennifer | 성능 관리 | 트랜잭션 수향, 처리 시간, 응답 시간 등을 모니터링 |
JenniferNmon | 성능 관리 | 리눅스 서버 자원에 대한 모니터링 도구 |
PMD | 정적 분석 | Java로 작성된 소스코드의 잠재적인 문제와 코딩 규칙 오류를 발견 |
Cppcheck | 정적 분석 | C/C++ 소스코드에 대한 잠재적 문제 발견 |
Valgrid | 동적 분석 | C/C++ 기반 프로그램에 대한 메모리 및 스레드 문제 발견 |
Avalanche | 동적 분석 | Valgrid + STP 를 기반으로 구현, 심각한 소프트웨어 에러와 취약점을 발견 |
- APM제공 기능
- 애플리케이션 모니터링
- 성능 모니터링
- 사용자 모니터링
- 사용자 로그를 분석, 발생시킨 이벤트 추적
- 성능 최적화
- 장애 대응
- 애플리케이션 모니터링
협업 도구
- 개발 과정에서 이해관계자 간의 지속적 이견 조율을 수행하기 위한 도구
- 분류: 문서 공유, 소스 공유, 아이티어 공유, 디자인 공유, 일정 관리, 프로젝트 관리, 마인드 맵
대표적인 협업 도구 | 설명 |
---|---|
버전관리 시스템 | Git, SVN |
이슈 트래커 | Jira, Trello |
채팅 도구 | Slack, Microsoft Teams |
코드 리뷰 도구 | Gerrit, Crucible |
CI/CD 도구 | 자동화된 테스트 수행 도구, Jenkins, CircleCI |
제품 소프트웨어 저작권 보호
DRM (Digital Rights Management)
- 개념
- 디지털 콘텐츠의 생성~실제 사용자까지 모든 유통과정에 걸쳐 콘텐츠를 안전하게 관리 및 보호하고 허가된 사용자 만이 접근할 수 있도록 제한하는 기술
- 무한 복제가 가능하고 원본과 복사본이 동일하게 배포될 가능성이 커 이를 방지하기위한 기술적인 방법
- 기술적 요구사항
- 지속적 보호 : 무결성, 비밀성, 강인성
- 이용 편리성 : DRM 컨트롤러를 통해 설치 프로그램 최소화 및 자동설치
- 유연성 : 다른 응용시스템과 연동
- 통합의 용이성 :
완전히 독립된 시스템→ 도메인 별로 존재하는 애플리케이션 또는 시스템과의 연동이 필요
- DRM 특성
- 거래 투명성, 사용 규칙 제공
- 자유로운 상거래 제공
DRM 기술 요소 ⭐ | 설명 | 방식 |
---|---|---|
암호화(Encryption) | 암호화, 전자서명을 할 수 있는 기술 | PKI |
키 관리(Key Management) | 암호화된 키에 대한 저장, 분배 | |
암호화 파일 생성(Packager) | 콘텐츠를 암호화하기 위해 생성된 기술 | |
식별 기술(Identification) | 콘텐츠에 대한 식별 체계 표현 기술 | DOI, URI |
저작권 표현(Right Expression) | 라이선스의 내용 표현 기술 | ODRL, REL |
정책 관리(Policy Management) | 라이선스 발급 및 사용에 대한 정책 표현, 관리 기술 | XML |
크랙 방지(Tamper Resistance) | 크랙에 의한 콘텐츠 사용 방지 기술 | SSO, 디지털 인증, ID/PW |
인증(Authentication) | 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술 | |
인터페이스(Interface) | 다른 DRM플랫폼 간의 상호호환성, 인터페이스 및 인증기술 | IPMP |
이벤트 보고(Event Reporting) | 모니터링 기술 | |
사용권한(Permission) | 콘텐츠의 사용에 대한 권한을 관리하는 기술 요소 | 퍼미션(렌더, 트랜스포트, 데리버티브) |
DRM의 유통 과정과 구성⭐
DRM 구성 | 설명 |
---|---|
콘텐츠 제공자 (Contents Provider) |
콘텐츠를 제공하는 저작권자 |
콘텐츠 분배자 (Contents Distributor) |
배포하는 기업이나 단체, DRM 시스템 구축, 암호화된 콘텐츠를 인증된 사용자에게 배포 |
패키저 (Packager) |
콘텐츠를 메타 데이터와 함께 배포할 수 있는 단위로 묶는 기능 |
보안 컨테이너 (Security Container) |
원본을 안전하게 유통하려는 전자적 보안 장치 |
DRM Controller | 배포된 콘텐츠의 이용 권한을 통제 |
Clearing House | 키 관리 및 라이선스 발급 관리, 제 3의 운영 주체, 저작권료의 정산 및 분배가 이루어짐 계약서 관리, 정산 시스템 구축, 자금 관리 등의 기능을 제공 |
DRM 정책
- Permission 유형
- Render Permission
- 사용자에게 콘텐츠가 표현되고 이용되는 권리 형태를 정의
- 디지털 콘텐츠를 재생하는 권한
- Transport Permission
- 사용자들 간에 권리 교환이 이루어지는 권리 형태를 정의
- copy, move, loan
- Derivative Permission
- 콘텐츠의 추출 변형이 가능한 변환
- extract, embed, edit
- Render Permission
- 사용 조건
- Period : 사용기간 설정
- Count : 문서 사용 횟수 설정
- Domian : 특정한 사용자 또는 특정 지역에서만 이용할 수 있도록 제한
- 권한 통제
- 변경 방지
- 탬퍼링 유형
- 소프트웨어 크래킹 기술을 이용한 시도
- 시간 및 데이터의 조작을 통한 시도
- 위장 모듈을 이용한 시도
- *탬퍼링 : 악의적인 공격자가 디지털 콘텐츠를 변조하려는 것
- 인증
- ID/패스워드
- 디지털 인증서
- 이메일 인증
- SSO
- 생체 인식
소프트웨어 매뉴얼
- 제품 소프트웨어 개발 단계부터 적용한 기주이나 패키징 이후 설치와 사용자 측면의 주요 내용 등을 기록한 문서
- 구분: 설치 매뉴얼, 사용자 메뉴얼
소프트웨어 설치 매뉴얼
- 실사용자가 제품을 최초 설치 시 참조하는 매뉴얼
- 예외 상황에 관련 내용을 별도로 구분하여 설명
- 전 과정을 빠짐없이 순서대로 설명
- 사용자 기준
- 목차, 개요, 기본 사항 등
- 구성:
- 목차 및 개요, 문서 이력 정보, 설치 매뉴얼 주석(주의 사항, 참고사항), 설치 도구의 구성, 설치 위치 지정
- 기능 식별
- UI 분류
- 설치 파일/백업 파일 확인
- Uninstall 절차
- 이상 Case 확인
- 최종 매뉴얼 적용
소프트웨어 사용자 매뉴얼
- 소프트웨어 사용 방법을 기술
- 패키지의 기능, 패키지의 인터페이스, 포함하고 있는 메소드 등의 설명이 포함
- 사용자 매뉴얼 구성
- 사용자 화면 및 UI : 주의사항, 참고사항
- 주요 기능 분류
- 응용 프로그램/설정 : 제품 실행 시 영향을 받거나 주는 소프트웨어에 대해 설명, 사전에 실행해야한 소프트웨어가 있다면 설명
- 장치 연동 : Embedded관련 제품일 경우 연동 장치에는 무엇이 있는지 설명
- Network 환경
- Profile 설명
- 고객 지원 방법
- 준수 정보 및 제한 보증
릴리즈 노트 작성하기
Release Note
- 애플리케이션 최종 사용자인 고객에게 제공하는 잘 정리된 배포 정보 문서
- 현재 시제로 개발팀에서 직접 작성
- 작성 항목
- 헤더 : 문서명, 제품명, 배포 버전 번호, 릴리즈 날짜, 참고 날짜, 문서(릴리즈 노트) 버전 등
- 개요, 목적
- 이슈 요약 : 버그의 간단한 설명과 개선사항
- 재현 항목 : 버그 발생 재현
- 수정 및 개선 내용
- 최종 사용자 영향도, 노트, 면책 조항, 연락정보
- 릴리즈 노트 작성 순서
- 모듈 식별 → 릴리즈 정보 확인 → 릴리즈 노트 개요 작성 → 영향도 체크(버그 설명 및 재현 테스트)
→ 정식 릴리즈 노트 작성 → 추가 개선 항목 식별
- 모듈 식별 → 릴리즈 정보 확인 → 릴리즈 노트 개요 작성 → 영향도 체크(버그 설명 및 재현 테스트)
- 릴리즈 노트 작성 시 주의 사항
- 명확한 제목, 구체적인 내용, 사용자 중심의 작성, 문제 해결 방법 제공 버전 정보 포함, 참고 문서 제공, 재배포 가능 여부 명시, 최신 정보 제공
소프트웨어 품질 관리
- 효과
- 고객 만족도 향상, 개발 비용 절감, 소프트웨어의 안정성 확보, 유지보수성 향상
- 주의 사항
- 품질요구사항, 개발 프로세스 관리, 코드 검토, 테스트 계획 수립, 자동화된 테스트
소프트웨어 품질 관련 국제 표준
🔎 ISO/IEC 9126
- 소프트웨어 품질 특성과 척도에 관한 지침
- 기능적 하위 특성
- 적절성, 정확성, 상호운용성, 보안성, 준수성
🔎 ISO/IEC 12119
- ISO/IEC 9126의 품질 모델을 따름
- 품질 요구사항 및 테스트를 위한 국제 표준
🔎 ISO/IEC 25000
- 품질 평가를 위함
- ISO/IEC 9126 + ISO/IEC 14598
- 2500n, 2501n, 2502n, 2503n, 2504n 의 다섯가지 분야와 확장 분야인 2505n이 있음
- 2501n (9126-2, 품질 모형) : 품질 모델 및 품질 사용
- 2503n (9126-3, 품질 측정) : 매트릭을 통한 측정 방법 제시
🔎 ISO/IEC 12270
- 일관적이고 체계적인 프레임워크를 제공하기 위한 생명주기 프로세스 국제 표준
- 구분 : 획득 프로세스, 공급 프로세스, 개발 프로세스, 운영 프로세스, 유지보수
항목 | ISO/IEC 9126 | ISO/IEC 12119 | ISO/IEC 25000 | ISO/IEC 12207 |
---|---|---|---|---|
대상 | 소프트웨어 품질 | 소프트웨어 검증 및 검사 | 소프트웨어 제품 품질 | 소프트웨어 개발 프로세스 |
구성요소 | 6가지 특성 (기능성, 신뢰성, 사용성, 효율성, 유지보수성, 이식성) |
5가지 검증 활동 (계획, 사양, 설계, 검사, 확인) |
5가지 모델 (SQuaRE, SQuaRE-TM, SQuaRE-IT, SQuaRE-ME, SQuaRE-RM) |
소프트웨어 개발 생명주기 프로세스 |
목적 | 소프트웨어 품질 향상을 위한 평가모델 제공 | 소프트웨어 검증 및 검사를 위한 표준 지침 제공 | 소프트웨어 제품 품질 평가를 위한 모델 제공 | 소프트웨어 개발 프로세스 표준화 및 개발 품질 향상 |
평가방법 | 특성별 품질 요구사항 평가 | 검증 및 검사 활동에 대한 지침 제공 | 소프트웨어 품질 특성 평가 | 소프트웨어 개발 생명주기 모델 적용 |
대상 평가자 | 개발자, 테스터, 사용자 | 검증 및 검사 담당자, 품질 보증 담당자 | 품질 평가자, 테스터, 검증 담당자, 사용자 | 소프트웨어 개발자, 관리자, 품질 보증 담당자 |
🔎 ISO/IEC 15504 (SPICE) ⭐
- 소프트웨어 프로세스를 평가 및 개선하는 국제 표준
- ISO/IEC 12270의 단점을 해결
- SPICE 모델의 레벨
- 레벨 5 : 최적(Optimizing) 단계
- 레벨 4 : 예측(Predictable) 단계
- 레벨 3 : 확립(Established) 단계
- 레벨 2 : 관리(Managed) 단계
- 레벨 1 : 수행(Performed) 단계
- 레벨 0 : 불완전(Incomplete) 단계
- SPICE 모델의 레벨
소프트웨어 품질 목표(Software Quality and Goals)⭐
- 운영 특성
- 정확성 : 사용자 요구기능 충족
- 신뢰성 : 오류 없이 수행
- 사용 용이성 : 사용자가 쉽게 사용
- 효율성 : 성능과 자원 소요 정도
- 무결성 : 자료의 변경을 제어하는 정도
- 변경 수용 특성
- 이식성 : 다양한 환경에서도 운용할 수 있도록쉽게 수정될수 있음
- 상호운용성 : 다른 소프트웨어와 정보를 교환할 수 있는 정도
- 재사용성
- 유지보수성 : 소프트웨어 진화가 가능한 정도
- 유연성 : 얼마만큼 쉽게 수정할 수 있는가의 정도
- 시험 역량 : 프로그램을 테스트할 수 있는 정도
품질 측정 시 관점 별 분류
품질의 세부 속성들은 관계자의 관점에 따라 다름
- 사용자 관점 : 제품의 신뢰성, 효율성, 사용 용이성, 간결성 등
- 개발자 관점 : 검증 가능성, 유지보수성, 이식성, 무결성, 사용성 등
- 프로젝트 관리자 관점 : 프로세스의 생산성과 제어 용이성 등
'자격증 > 정보처리기사' 카테고리의 다른 글
[소프트웨어개발] 5. 애플리케이션 성능 개선 (0) | 2024.01.31 |
---|---|
[소프트웨어개발] 4. 애플리케이션 테스트 (0) | 2024.01.26 |
[소프트웨어개발] 2. 시스템인터페이스 구현 (0) | 2024.01.26 |
[소프트웨어개발] 1. 통합구현 (0) | 2024.01.22 |
[소프트웨어설계] 6. 시스템 인터페이스 설계 (0) | 2024.01.21 |