SW
[2020 정보처리기사 필기] 제품 소프트웨어 패키징 (2) 본문
45. 소프트웨어 사용자 매뉴얼 작성 ★
1. 소프트웨어 사용자 매뉴얼의 개요
- 소프트웨어 사용자 매뉴얼은 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서와 안내서이다.
- 사용에 필요한 절차, 환경 등의 제반 사항이 모두 포함되도록 작성
- 배포 후 발생될 수 있는 오류에 대한 패치나 기능에 대한 업그레이드를 위해 매뉴얼의 버전을 관리한다.
- 개별적으로 동작이 가능한 컴포넌트 단위로 매뉴얼을 작성
2. 서문
- 문서 이력, 사용자 매뉴얼의 주석, 기록 보관을 위해 필요한 내용을 기술한다.
- 사용자 매뉴얼의 주석 : 주의 사항과 참고사항을 기술한다.
3. 기본 사항
- 소프트웨어의 개요, 소프트웨어 사용 환경, 소프트웨어 관리, 버전별 특징, 기능특징, 소프트웨어 구동 환경
4. 사용자 매뉴얼 작성 방법
- 사용자 매뉴얼은 사용자 화면 및 UI, 주요 기능 분류, 응용 프로그램 및 설정, 장치 연동, Network 환경, Profile(소프트웨어 구동에 필요한 환경을 점검하는 파일) 안내, 고객 지원 방법, 준수 정보 및 제한 보증 등에 대한 내용을 기술한다.
5. 사용자 매뉴얼 작성 순서
- 기능 식별 -> 사용자 화면 분류 -> 사용자 환경 파일 확인 -> 초기화 절차 확인 -> 이상 Case 확인 -> 최종 매뉴얼 적용
핵심
- 사용자 매뉴얼은 사용자가 설치와 사용에 필요한 절차, 환경 등의 제반 사항 모두가 포함되도록 작성한다.
- Profile은 소프트웨어 구동에 필요한 환경을 점검하는 파일이다.
46. 소프트웨어 버전 등록 ★★
1. 소프트웨어 패키징의 형상 관리
- 형상 관리(SCM; Software Configuration Management)는 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동이다.
- 형상이란 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 통칭하는 말이다.
- 소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보한다.
- 형상 관리는 소프트웨어 개발 전 단계에 적용되는 활동이며, 유지보수 단계에서도 수행된다.
- 형상 관리는 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 한다.
2. 형상 관리의 중요성
- 지속적인 소프트웨어의 변경 사항을 체계적으로 추적하고 통제할 수 있다.
- 무절제한 변경 방지 가능
- 버그나 수정 사항을 추적할 수 있다.
- 소프트웨어는 형태가 없어 가시성이 결핍되므로 진행 정도를 확인하기 위한 기준으로 사용될 수 있다.
3. 형상 관리 기능
- 형상 식별 : 형상 관리 대상에 이름과 관리번호를 부여하고, 계층(Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업
- 버전 제어 : 소프트웨어 업그레이드나 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구를 결합시키는 작업
- 형상 통제(변경 관리) : 변경 요구를 검토하여 현재 기준선이 잘 반영될 수 있도록 조정하는 작업
- 형상 감사 : 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
- 형상 기록(상태 보고) : 형상 식별, 감사 작업의 결과록 기록, 관리하고 보고서를 작성하는 작업
4. 소프트웨어 버전 등록 관련 주요 용어
- 저장소(Repository) : 최신 버전 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
- 가져오기(Import) : 버전관리가 되고 있지 않은 저장소에 처음으로 파일을 복사한다.
- 체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장소에서 파일을 받아온다, 소스 파일과 함께 버전 관리를 위한 파일도 받아온다.
- 체크인(Check-In) : 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신한다.
- 커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌을 알리고 diff도구를 이용해 수정한 후 갱신을 완료한다.
- 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화한다.
5. 소프트웨어 버전 등록 과정
- Import -> Check-Out -> Commit -> Update -> Diff
핵심
- 형상 : 소프트웨어 개발 단계의 각 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 통칭하는 용어
- 형상관리 : 형상들의 변경에 대한 관리
- 버전 등록 관련 주요 용어 : import(빈 저장소에 처음으로 파일 복사), commit(갱신 내용 있는 경우 충돌을 알리고 diff도구 이용해 수정 후 갱신 완료)
47. 소프트웨어 버전 관리 도구 ★★★
1. 공유 폴더 방식
- 공유 폴더 방식은 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식이다.
- 파일의 변경사항을 데이터베이스에 기록하여 관리한다.
2. 클라이언트/서버 방식
- 버전 관리 자료가 중앙 시스템(서버)에 저장되어 관리되는 방식이다.
- 서버의 자료를 개발자별로 자신의 PC(클라이언트)로 복사하여 작업한 후 변경된 내용을 서버에 반영한다.
- 모든 버전 관리는 서버에서 수행된다.
- 서버에 문제가 생기면, 서버가 복구되기 전까지 다른 개발자와의 협업 및 버전 관리 작업은 중단된다.
- CVS, SVN(Subversion) 등
3. 분산 저장소 방식
- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식이다.
- 개발자별로 원격 저장소의 자료를 자신의 로컬 저장소로 복사하여 작업한 후 변경된 내용을 로컬 저장소에서 우선 반영한 다음 이를 원격 저장소에 반영한다.
- 로컬 저장소에서 버전 관리가 가능하므로 원격 저장소에 문제가 생겨도 로컬 저장소의 자료를 이용하여 작업할 수 있다.
- Git, GNU arch 등
4. Subversion(서브버전, SVN)
- Subversion은 CVS를 개선한 것으로, 아파치에서 발표하였다.
- 클라이언트/서버 구조로, 서버에는 최신 버전의 파일들과 변경 내역이 관리된다.
- 서버의 자료를 클라이언트로 복사해와 작업한 후 변경 내용을 서버에 반영(Commit) 한다.
- 모든 개발 작업은 trunk 디렉터리에서 수행되며, 추가 작업은 branches 디렉터리 안에 별도의 디렉터리를 만들어 작업을 완료한 후 trunk 디렉터리와 병합(merge)한다.
- 커밋(Commit)할 때마다 리비전(Revision)이 1씩 증가한다.
- 클라이언트는 대부분의 운영체제에서 사용되지만, 서버는 주로 UNIX를 사용한다.
- 오픈소스라 무료로 사용할 수 있다.
- 파일이나 디렉터리의 이름 변경, 이동 등이 가능하다.
- 주요 명령어 : add, commit, update, checkout(소스파일을 서버에서 클라이언트로 받아온다), lock/unlock, import, export(버전 관리 정보를 제외한 순수한 소스 파일만을 서버에서 받아온다.), info, diff, merge
5. Git(깃)
- Git은 리누스 토발즈가 리눅스 커널 개발에 사용할 관리 도구로 개발한 이후 주니오 하마노에 의해 유지 보수되고 있다.
- 분산 버전 관리 시스템으로 2개의 저장소, 즉 지역(로컬) 저장소와 원격 저장소가 존재한다.
- 지역 저장소는 개발자들이 실제 개발을 진행하는 장소로, 버전 관리가 수행된다.
- 원격 저장소는 협업을 위해 버전을 공동 관리하는 곳으로, 자신의 버전 관리 내역을 반영하거나 다른 개발자의 변경 내용을 가져올 때 사용한다.
- 브랜치를 이용하면 다양한 형태의 테스팅이 가능하다.
- 파일의 변화를 스냅샷(Snapshot)으로 저장하는데, 스냅샷은 이전 스냅샷의 포인터를 가지므로 버전의 흐름을 파악할 수 있다.
- 주요 명령어 : add, commit, branch, checkout(브랜치 이동), merge, init, remote add, push, fetch(변경 이력만 지역 저장소로 가져와 반영), clone, fork
핵심
- Subversion은 클라이언트/서버
- Git은 분산 버전 관리 시스템
- 각각의 특징과 명령어
48. 빌드 자동화 도구 ★★
1. 빌드 자동화 도구의 개념
- 빌드란 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정이며, 이러한 빌드를 포함하여 테스트 및 배포를 자동화하는 도구를 빌드 자동화도구라고 한다.
- 애자일 환경에서는 하나의 작업이 마무리될 때마다 모듈 단위로 나눠서 개발된 코드들이 지속적으로 통합되는데, 이러한 지속적인 통합개발 환경에서 빌드 자동화 도구는 유용하게 활용된다.
- Ant, Make, Maven, Gradle, Jenkins 등이 있다.
2. Jenkins
- JAVA 기반의 오픈소스 형태로, 가장 많이 사용되는 빌드 자동화 도구이다.
- 서블릿 컨테이너(클라이언트의 요청을 처리해 주기 위해 서버측에서 실행되는 작은 프로그램인 서블릿을 실행하고 생명주기를 관리하는 역할)에서 실행되는 서버 기반 도구이다.
- 친숙한 Web GUI 제공으로 사용이 쉽다.
- 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능하다.
3. Gradle
- Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구로, 안드로이드 앱 개발 환경에서 사용된다.
- 안드로이드 뿐만 아니라 플러그인을 설정하면, JAVA, C/C++, Python 등의 언어도 빌드가 가능하다.
- Groovy를 사용해서 만든 DSL(Domain Specific Language)을 스크립트 언어로 사용한다.
- Gradle은 실행할 처리 명령들을 모아 태스크(Task)로 만든 후 태스크 단위로 실행한다.
- 이전에 사용했던 태스크를 재사용하거나 다른 시스템의 태스크를 공유할 수 있는 빌드 캐시 기능을 지원하므로 빌드의 속도를 향상시킬 수 있다.
핵심
- 빌드 자동화 도구 : 빌드, 테스트, 배포 과정을 자동화하는 도구
- Jenkins : JAVA기반, 서블릿 컨테이너에서 실행, Web GUI
- Gradle : Groovy기반, 안드로이드 앱 개발 환경, 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행, 빌드 캐시 기능 지원
'대학교 > 자격증' 카테고리의 다른 글
[2020 정보처리기사 필기] 애플리케이션 테스트 관리 (2) (0) | 2020.08.17 |
---|---|
[2020 정보처리기사 필기] 애플리케이션 테스트 관리 (1) (0) | 2020.08.17 |
[2020 정보처리기사 필기] 제품 소프트웨어 패키징 (1) (0) | 2020.08.17 |
[2020 정보처리기사 필기] 통합 구현 (0) | 2020.08.17 |
[2020 정보처리기사 필기] 시스템 보안 구축 (0) | 2020.08.17 |