소프트웨어 패키징
소프트웨어 패키징이란? 모듈별 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것.
- 패키징 시 고려사항
- 운영체제, CPU, 메모리 등에 필요한 최소 환경 정의
- UI는 시각적 자료와 함께 제공, 매뉴얼과 일치시켜 패키징.
- 소프트웨어는 단순 패키징하여 배포하는 것으로 끝나는 것이 아닌 하드웨어와 함께 관리될 수 있도록 Managed Service 형태로 제공
- 고객의 편의성을 고려한 안정적 배포가 중요.
- 패키징 변경 및 개선에 대한 관리 고려
- 작업 순서
- 기능 식별 - 모듈화 - 빌드 진행 - 사용자 환경 분석 - 패키징 및 적용 시험 - 패키징 변경 개선 - 배포
릴리즈 노트 작성
릴리즈 노트란 개발 과정에서 정리된 릴리즈 정보를 소프트웨어 최종 사용자 고객과 공유하기 위한 문서.
- 릴리즈 노트 항목
- 헤더 : 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 릴리즈 노트 날짜, 릴리즈 노트 버전 등
- 개요 : 소프트웨어 및 변경사항 전체에 대한 간단한 내용
- 목적 : 해당 릴리즈 버전에서 새로운 기능이나 수정된 기능 목록과 릴리즈 노트의 목적에 대한 간략한 개요
- 문제 요약 : 수정된 버그에 대한 간략한 설명 또는 릴리즈 추가 항목에 대한 요약
- 재현 항목 : 버그 발견에 대한 과정 설명
- 수정/개선 내용 : 버그를 수정 / 개선한 내용 간단히 설명
- 사용자 영향도 : 사용자가 다른 기능들을 사용하는데 있어 해당 릴리즈 버전에서의 기능 변화가 미칠 수 있는 영향에 대한 설명
- SW 지원 영향도 : 릴리즈 버전에서 기능 변화가 다른 응용 프로그램들을 지원하는 프로세스에 미칠 수 있는 영향에 대한 설명
- 노트 : SW / HW 설치 항목, 업그레이드, 소프트웨어 문서화에 대한 참고 항목
- 면책 조항 : 회사 및 소프트웨어 관련 참조 사항
- 연락처 : 사용자 지원 및 문의 응대를 위한 연락처 정보
- 릴리즈 노트 작성 순서
- 모듈 식별 - 릴리즈 정보 확인 - 릴리즈 노트 개요 작성 - 영향도 체크 - 정식 릴리즈 노트 작성- 추가 개선 항목 식별
디지털 저작권 관리(DRM; Digital Right Management)
저작권이란? 창작자가 가지는 배타적 독점적 권리. 타인의 침해를 받지 않을 고유한 권리.
- 디지털 저작권 관리 흐름도
- 클리어링 하우스(Clearing House) : 저작권 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 수행
- 콘텐츠 제공자 : 콘텐츠 제공 저작권자
- 패키저 : 콘텐츠를 메타 데이터(속성 정보 설명 데이터)와 함께 배포 가능 형태로 묶어 암호화하는 프로그램
- 콘텐츠 분배자 : 암호화된 콘텐츠를 유통하는 곳이나 사람
- 콘텐츠 소비자 : 콘텐츠를 구매해서 사용하는 주체
- DRM 컨트롤러 : 배포된 콘텐츠 이용 권한을 통제하는 프로그램
- 보안 컨테이너 : 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
- 디지털 저작권 관리 기술 요소
- 암호화 : 콘텐츠 및 라이선스 암호화, 전자 서명을 할 수 있는 기술
- 키 관리 : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술
- 암호화 파일 생성 : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
- 식별 기술 : 콘텐츠에 대한 식별 체계 표현 기술
- 저작권 표현 : 라이선스 내용 표현 기술
- 정책 관리 : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
- 크랙 방지 : 크랙에 의한 콘텐츠 사용 방지 기술
- 인증 : 라이선스 발급 및 사용 기준이 되는 사용자 인증 기술
소프트웨어 설치 매뉴얼 작성
- 설치 매뉴얼 포함 항목
- 목차(전체 설치 과정 순서대로 요약 후 관련 내용 시작 페이지 함께 기술) 및 개요(설치 매뉴얼 주요 특징, 구성과 설치 방법, 순서 등의 내용 기술)
- 서문
- 문서 이력, 설치 매뉴얼 주석, 설치 도구 구성, 설치 환경 체크 항목 기술
- 기본 사항
- 소프트웨어 개요, 설치 관련 파일, 설치 아이콘, 프로그램 삭제, 관련 추가 정보
- 설치 매뉴얼 작성 방법
- 설치 화면 및 UI, 설치 이상 메시지, 설치 완료 및 결과, FAQ, 설치 시 점검 사항, network 환경 및 보안, 고객 지원 방법, 준수 정보 및 제한 보증 등에 대한 내용 기술
- 설치 매뉴얼 작성 순서
- 기능 식별 - UI 분류 - 설치 파일 / 백업 파일 확인 - Uninstall 절차 확인 - 이상 Case 확인 - 최종 매뉴얼 적용
소프트웨어 사용자 매뉴얼 작성
- 사용자 매뉴얼 포함 항목
- 목차(매뉴얼 전체 내용 순서대로 요약 후 관련 내용 시작 페이지 함께 기술) 및 개요(소프트웨어 주요 특징, 메뉴얼 구성과 실행 방법, 사용법, 항목별 점검 기준, 항목별 설정 방법 등에 대한 내용 기술)
- 서문
- 문서 이력, 주석, 기록 보관 내용
- 기본 사항
- 소프트웨어 개요, 소프트웨어 사용 환경, 소프트웨어 관리, 모델, 버전별 특징, 기능, 인터페이스 특징, 소프트웨어 구동 환경
- 사용자 매뉴얼 작성 방법
- 사용자 화면 및 UI, 주요 기능 분류, 응용 프로그램 및 설정, 장치 연동, Network 환경, Profile 안내, 고객 지원 방법, 준수 정보 및 제한 보증
- 작성 순서
- 기능 식별 - 사용자 화면 분류 - 사용자 환경 파일 확인 - 초기화 절차 확인 - 이상 Case 확인 - 최종 매뉴얼 적용
소프트웨어 버전 등록
형상 관리란? 소프트웨어 개발 과정에서 소프트웨어 변경 사항을 관리하기 위해 개발된 일련의 활동
- 형상 관리 기능
- 형상 식별 : 형상 관리 대상 수정 및 추적이 용이하도록 하는 작업
- 버전 제어 : 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전 형상 항목 관리, 이를 위해 특정 절차와 도구 결합시키는 과정
- 형상 통제(변경 관리) : 식별된 형상 항목에 대한 변경 요구를 검토하여 현재 기준선이 잘 반영될 수 잇도록 조정하는 작업
- 형상 감사 : 기준선 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
- 형상 기록(상태 보고) : 형상 식별, 통제, 감사 작업 결과를 기록 * 관리하고 보고서를 작성하는 작업
- 주요 용어
- 저장소(Repository) : 최신 버전 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
- 가져오기(Import) : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일 저장
- 체크아웃 : 프로그램을 수정하기 위해 저장소에서 파일을 받아온다.
- 체크인 : 체크아웃한 파일의 수정을 완료 후 저장소의 파일을 새로운 버전으로 갱신한다.
- 커밋 : 체크인 수행할 대 이전 갱신된 내용이 있는 경우 충돌을 알리고 diff 도구를 이용해 수정 후 갱신 완료
- 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간 동기화
- 소프트웨어 버전 등록 과정
- Import - Check-out - Commit - Update - Diff
소프트웨어 버전 관리 도구
- 공유 폴더 방식 : 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장돼 관리되는 방식
- 종류 : SCCS, RCS, PVCS, QVCS
- 클라이언트/서버 방식 : 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식
- 종류 : CVS, CVSNT, Clear Case, CMVC, Perforce
- SVN(Subversion)
- 모든 개발 작업은 trunk 디렉터리에서 수행. 추가 작업은 branches 디렉터리 안에 별도의 디렉터리를 만들어 작업 완료 후 trunk 디렉터리와 병합한다.
- 주요 명령어
- add : 새로운 파일이나 디렉터리를 버전 관리 대상으로 등록.
- commit : 버전 관리 대상으로 등록된 클라이언트 소스 파일을 서버 소스 파일에 적용
- update : 서버 최신 commit 이력을 클라이언트 소스 파일에 적용. commit 전 매번 update를 수행해 클라이언트에 적용되지 않은 서버 변동 내역을 클라이언트에 적용
- checkout : 버전 관리 정보와 소스 파일을 서버에서 클라이언트로 받아온다.
- lock/unlock : 서버 소스 파일이나 디렉토리를 잠그거나 해제
- import : 아무것도 없는 서버 저장소에 맨 처음 소스 파일을 저장하는 명령. 한 번 사용하면 다시 사용하지 않음.
- export : 버전 관리에 대한 정보를 제외한 순수 소스 파일만을 서버에서 받아온다.
- info : 지정 파일에 대한 위치나 마지막 수정 일자 등에 대한 정보 표시
- diff : 지정 파일이나 경로에 대해 이전 리비전과 차이 표시
- merge : 다른 디렉터리에서 작업된 버전 관리 내역을 기본 개발 작업과 병행
- SVN(Subversion)
- 종류 : CVS, CVSNT, Clear Case, CMVC, Perforce
- 분산 저장소 방식 : 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC 로컬 저장소와 함께 저장되어 관리되는 방식
- 종류 : GNU arch, DCVS, Bazaar, Mercurial, TeamWare, Bitkeeper, Plastic SCM 등
- Git
- 리누스 토발즈가 리눅스 커널 개발에 사용할 관리 도구로 개발한 이후 주니오 하마노에 의해 유지 보수되고 있음. 브랜치를 이용해 기본 버전 관리 틀에 영향을 주지 않으며 다양한 형태의 기능 테스팅 가능. 파일 변화를 스냅샷으로 저장하는데, 스냅샷은 이전 스냅샷의 포인터를 가져 버전 흐름을 파악할 수 있음.
- 주요 명령어
- add : 작업 내역을 지역 저장소에 저장하기 위해 스테이징 영역에 추가.
- commit : 작업 내역을 지역 저장소에 저장.
- branch : 새로운 브랜치 생성.
- checkout : 지정한 브랜치로 이동.
- merge : 지정한 브랜치 변경 내역을 현재 HEAD 포인터가 가리키는 브랜치에 반영함으로써 두 브랜치 병합
- init : 지역 저장소 생성
- remote add : 원격 저장소에 연결
- push : 로컬 저장소 변경 내역을 원격 저장소에 반영
- fetch : 원격 저장소 변경 이력만을 지역 저장소로 가져와 반영
- clone : 원격 저장소 전체 내용을 지역 저장소로 복제
- fork : 지정한 원격 저장소의 내용을 자신의 원격 저장소로 복제
빌드 자동화 도구
빌드란 소스 코드 파일들을 컴파일한 후 여러 개 모듈을 묶어 실행 파일로 만드는 과정.
이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구가 빌드 자동화 도구이다.
- Ant, Make, Maven
- Jenkins : Java 기반 오픈 소스 형태, 가장 많이 사용되는 빌드 자동화 도구.
- 서블릿 컨테이너에서 실행되는 서버 기반 도구
- 대부분 형상 관리 도구와 연동 가능.
- Web GUI 제공으로 쉬운 사용.
- 여러 대 컴퓨터를 이용한 분산 빌드나 테스트 가능
- Gradle : Groovy(동적 객체 지향 프로그래밍 언어)를 기반으로 한 오픈 소스 형태 자동화 도구. 안드로이드 앱 개발 환경에서 사용.
- 플러그인을 설정하면, Java, C/C++, Python 등의 언어도 빌드 가능.
- 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행.
- 이전 사용한 태스크 재사용하거나 다른 시스템 태스크를 공유할 수 있는 빌드 캐시 기능 지원. 빌드 속도 향상 가능.
'그 외 공부 > 정처기-실기(완)' 카테고리의 다른 글
10장 응용 SW 기초 기술 활용 (0) | 2021.07.07 |
---|---|
9장 소프트웨어 개발 보안 구축 (0) | 2021.07.06 |
8장 SQL 응용 (0) | 2021.07.06 |
7장 어플리케이션 테스트 관리 (0) | 2021.07.05 |
6장 화면 설계 (0) | 2021.07.02 |