108 소프트웨어 패키징
◈ 소프트웨어 패키징의 개요
- 모듈별로 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것
- 개발자가 아닌 사용자 중심으로 진행
- 소스 코드는 향후 관리를 고려해 모듈화하여 패키징
◈ 패키징 작업 순서
- 패키징 주기는 소프트웨어 개발 기법에 따라 달라지는데 각 주기가 끝날 때마다 패키징 수행
- 프로젝트 개발 과정에서 주기별로 패키징한 결과물은 테스트 서버에 배포
- 마지막 개발 과정을 거쳐 패키징한 결과물은 고객이 사용할 수 있도록 온라인 배포 또는 오프라인으로 배포
- 작업 순서
① 기능 식별 : 작성된 코드의 기능 확인
② 모듈화 : 확인된 기능 단위로 코드를 분류
③ 빌드 진행 : 모든 단위별로 실행 파일을 만듦
④ 사용자 환경 분석 : 웹, 모바일, PC 등 소프트웨어가 사용될 환경이나 운영체제, CPU, RAM 등의 최소 운영 환경 정의
⑤ 패키징 및 적용 시험 : 빌드된 실행 파일들을 정의된 환경에 맞게 배포용 파일 형식으로 패키징하여 정의된 환경과 동일한 환경에서 패키징 결과를 테스팅하고 소프트웨어에 대한 불편사항을 사용자 입장에서 확인
⑥ 패키징 변경 개선 : 확인된 불편 사항을 반영하기 위한 패키징의 변경 및 개선 진행
⑦ 배포 : 배포 수행 시 오류가 발생하면 개발자에게 전달하여 수정 요청
109 릴리즈 노트 작성
◈ 릴리즈 노트(Release Note)의 개요
- 개발 과정에서 정리된 릴리즈 정보를 소프트웨어의 최종 사용자인 고객과 공유하기 위한 문서
◈ 릴리즈 노트 작성 순서
① 모듈 식별 : 모듈별 빌드 수행 후 릴리즈 노트에 작성될 내용들 확인
② 릴리즈 정보 확인 : 릴리즈 노트 이름, 소프트웨어 이름, 릴리즈 버전, 릴리즈 날짜, 노트 날짜, 노트 버전 등을 확인
③ 릴리즈 노트 개요 작성 : 소프트웨어 및 변경사항 전체에 대한 간략한 내용 작성
④ 영향도 체크 : 버그나 이슈 관련 내용 또는 해당 릴리즈 버전에서의 기능 변화가 다른 소프트웨어나 기능을 사용하는데 미칠 수 있는 영향에 대해 기술
⑤ 정식 릴리즈 노트 작성 : 머릿말, 개요, 영향도 체크 항목을 포함하여 정식 릴리즈 노트에 작성될 기본 사항들을 작성
⑥ 추가 개선 항목 식별 : 추가 버전 릴리즈 노트 작성이 필요한 경우 추가 릴리즈 노트 작성
110 디지털 저작권 관리(DRM)
◈ 저작권의 개요
- 창작자가 가지는 배타적 독점적 권리로 타인의 침해를 받지 않을 고유한 권한
- 복제하기 쉬운 저작물에 대해 불법 복제 및 배포 등을 막기 위한 기술적인 방법을 통칭해 저작권 보호 기술이라 함
◈ 디지털 저작권 관리의 기술 요소
- 암호화(Encryption) : 콘텐츠및 라이선스를 암호화하고 전자 서명을 할 수 있는 기술
- 키 관리(Key Management) : 콘텐츠를 암호화한 키에 대한 저장 및 분배 기술
- 암호화 파일 생성(Packager) : 콘텐츠를 암호화된 콘텐츠로 생성하기 위한 기술
- 식별 기술(Identification) : 콘텐츠에 대한 식별 체계 표현 기술
- 저작권 표현(Right Expression) : 라이선스의 내용 표현 기술
- 정책 관리(Policy Management) : 라이선스 발급 및 사용에 대한 정책 표현 및 관리 기술
- 크랙 방지(Tamper Resistance) : 크랙에 의한 콘텐츠 사용 방지 기술
- 인증(Authentication) : 라이선스 발급 및 사용의 기준이 되는 사용자 인증 기술
111 소프트웨어 설치 매뉴얼 작성
◈ 소프트웨어 설치 매뉴얼의 개요
- 개발 초기에서부터 적용된 기준이나 사용자가 소프트웨어를 설치하는 과정에 필요한 내용을 기록한 설명서와 안내서
◈ 설치 매뉴얼 작성 순서
① 기능 식별 : 소프트웨어의 개발 목적과 주요 기능을 흐름 순으로 정리하여 기록
② UI 분류 : 설치 매뉴얼을 작성할 순서대로 UI를 분류한 후 기록
③ 설치 파일 / 백업 파일 확인 : 폴더 위치, 설치 파일, 백업 파일 등의 개별적인 기능을 확인하여 기록
④ Uninstall 절차 확인 : 직접 Uninstall을 수행하면서 그 순서를 단계별로 자세히 기록
⑤ 이상 Case 확인 : 설치 과정에서 발생할 수 있는 다양한 Case를 만들어 확인하고 해당 Case에 대한 대처법 자세하게 기록
⑥ 최종 매뉴얼 적용 : 설치가 완료된 화면과 메시지를 캡쳐하여 추가. 완성된 메뉴얼을 검토하고 고객 지원에 대한 내용 기록
112 소프트웨어 사용자 매뉴얼 작성
◈ 소프트웨어 사용자 매뉴얼의 개요
- 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서와 안내서
◈ 사용자 매뉴얼 작성 순서
① 기능 식별 : 소프트웨어의 개발 목적과 사용자 활용 기능을 흐름 순으로 정리하여 기록
② 사용자 화면 분류 : 사용자 화면을 메뉴별로 분류하여 기록
③ 사용자 환경 파일 확인 : 폴더 위치, 사용자 로그 파일, 백업 파일 등의 개별적인 기능을 확인하여 기록
④ 초기화 절차 확인 : 프로그램을 사용하기 위한 초기화 절차를 확인하고 그 단계를 순서대로 기록
⑤ 이상 Case 확인 : 소프트웨어 사용 과정에서 발생할 수 있는 다양한 이상 Case를 만들어 확인. 해당 Case에 대한 대처법을 자세하게 기록
⑥ 최종 매뉴얼 작성 : 사용과 관련된 문의 답변(FAQ)을 정리하여 기록. 완성된 매뉴얼을 검토하고 고객 지원에 대한 내용을 기록
113 소프트웨어 버전 등록
◈ 소프트웨어의 버전 등록 관련 주요 용어
- 저장소(Repository) : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
- 가져오기(import) : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일을 복사
- 체크아웃(Check-Out) : 프로그램을 수정하기 위해 저장소에서 파일을 받아오고 소스 파일과 함께 버전 관리를 위한 파일들도 받아옴
- 체크인(Check-In) : 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신
- 커밋(Commit) : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에 충돌을 알리고 diff 도구를 이용해 수정한 후 갱신을 완료
- 동기화(Update) : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화 함
◈ 소프트웨어의 버전 등록 과정
① 가져오기(Import) : 개발자가 저장소에 신규로 파일을 추가
② 인출(Check-Out) : 수정 작업을 진행할 개발자가 저장소에 추가된 파일을 자신의 작업 공간으로 인출
③ 예치(Commit) : 인출할 파일을 수정한 후 설명을 붙여 저장소에 예치
④ 동기화(Update) : 커밋 후 새로운 개발자가 자신의 작업 공간을 동기화 함. 이때 기존 개발자가 추가했던 파일이 전달 됨
⑤ 차이(Diff) : 새로운 개발자가 추가된 파일의 수정 기록을 확인하면서 이전 개발자가 처음 추가한 파일과 이후 변경된 파일의 차이를 확인
114 소프트웨어 버전 관리 도구
◈ 공유 폴더 방식
- 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식
- ex) SCCS, RCS, PVCS, QVCS
◈ 클라이언트/서버 방식
- 버전 관리 자료가 서버에 저장되어 관리되는 방식
- ex) CVS, SVN(Suvbersion), CVSNT, Clear Case, CMVC, Perforce
◈ 분산 저장소 방식
- 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식
- ex) Git, GNU arch, DCVS, Bazaar, TeamWare, Bitkeeper 등
◈ Subversion(서브버전, SVN)
- CVS를 개선한 것으로 아파치 소프트웨어 재단에서 2000년에 발표
- 클라이언트/서버 구조로 서버에는 최신 버전의 파일들과 변경 내역 관리
- 서버의 자료를 클라이언트로 복사해와 작업 후 변경 내용을 서버에 반영
◈ Git(깃)
- 리누즈 토발즈가 2005년 리눅스 커널 개발에 사용할 관리 도구로 개발한 이후 주니오 하마노가 유지 보수
- Git은 분산 버전 관리 시스템으로 2개의 저장소인 지역 저장소와 원격 저장소가 존재
- 지역 저장소는 개발자들이 실제 개발을 진행하는 장소로 버전 관리를 수행
- 원격 저장소는 여러 사람들이 협업을 위해 버전을 공동 관리하고 자신의 버전 관리 내역을 반영하거나 다른 개발자의 변경 내용을 가져올 때 사용
115 빌드 자동화 도구
◈ 빌드 자동화 도구 개념
- 빌드란 소스 코드 파일들을 컴파일 한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정
◈ Jenkins
- JAVA 기반의 오픈 소스 형태로 가장 많이 사용되는 빌드 자동화 도구
- 서블릿 컨테이너에서 실행되는 서버 기반 도구
- SVN, Git 등 대부분의 형상 관리 도구와 연동 가능
- 친숙한 Web GUI 제공으로 사용이 쉬움
- 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트 가능
◈ Gradle
- Groovy 기반의 오픈 소스 형태로 안드로이드 앱 개발 환경에서 사용
- 별도의 플러그인 설정 시 JAVA, C/C++, Python 등의 언어도 빌드 가능
- Groovy를 사용해서 만든 DSL을 스크립트 언어로 사용
- Gradle은 실행할 처리 명령들을 모아 태스크로 만든 후 태스크 단위로 실행
'자격증 > 정보처리기사' 카테고리의 다른 글
[정보처리 실무] 10장 응용 SW 기초 기술 활용 (0) | 2021.02.11 |
---|---|
[정보처리 실무] 9장 소프트웨어 개발 보안 구축 (0) | 2021.02.11 |
[정보처리 실무] 8장 SQL 응용 (0) | 2021.02.11 |
[정보처리 실무] 7장 애플리케이션 테스트 관리 (0) | 2021.02.11 |
[정보처리 실무] 6장 화면 설계 (0) | 2021.02.11 |
댓글