소프트웨어 패키징
소프트웨어 패키징: 생성한 실행 파일들을 묶어 배포용 설치 파일을 만드는 것.
- 개발자가 아닌 사용자 중심으로 진행
- 소스코드는 모듈화 하여 패키징
- 패키징 작업 순서: 기능 식별 - 모듈화 - 빌드 - 환경 분석 - 패키징 적용 - 패키징 개선 - 배포
릴리즈 노트 작성
릴리즈 노트: 릴리즈 정보를 고객과 공유하기 위한 문서
- 정확하고 완전한 정보를 기반하여 개발팀에서 직접 현재 시제로 작성
- 변경 또는 개선된 항목에 대한 이력 정보들도 작성되어야 함
- 릴리즈 노트 작성 순서: 모듈 식별 - 릴리즈 정보 확인 - 개요 작성 - 영향도 체크 - 릴리즈 노트 작성 - 추가 개선
디지털 저작권 관리(DRM)
- 클리어링 하우스: 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행
- 콘텐츠 제공자: 콘텐츠를 제공하는 저작권자
- 패키저: 콘텐츠를 메타 데이터와 함께 배포 가능한 형태로 묶어 암호화하는 프로그램
- 콘텐츠 분배자: 암호화된 콘텐츠를 유통하는 곳이나 사람
- 콘텐츠 소비자: 콘텐츠를 구매해서 사용하는 주체
- DRM 컨트롤러: 배포된 콘텐츠의 이용 권한을 통제하는 프로그램
- 보안 컨테이너: 콘텐츠 원본을 안전하게 유통하기 위한 전자적 보안 장치
콘텐츠의 크기에 따라 크기가 작은 경우에는 사용자가 콘텐츠를 요청하는 시점에 실시간으로 패키징을 진행, 크기가 큰 경우에는 미리 패키징을 수행한 후 배포
소프트웨어 설치 매뉴얼 작성
- 설치 매뉴얼은 사용자를 기준으로 작성
- 설치 시작부터 완료할 때까지의 전 과정을 빠짐없이 순서대로 설명
- 오류 메시지 및 예외 상황에 대한 내용을 별도로 분류하여 설명
소프트웨어 사용자 매뉴얼 작성
- 사용자가 소프트웨어를 사용하는 과정에서 필요한 내용을 문서로 기록한 설명서
- 사용자가 소프트웨어 사용에 필요한 절차, 환경 등의 제반 사항이 모두 포함
- 매뉴얼에 대한 버전을 관리
- 컴포넌트 단위로 매뉴얼을 작성
Profile: 소프트웨어의 구동 환경을 점검하는 파일
소프트웨어 버전 등록
형상 관리: 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
- 지속적인 소프트웨어의 변경 사항을 체계적으로 추적하고 통제할 수 있음
- 제품 소프트웨어에 대한 무절제한 변경을 방지
- 제품 소프트웨어에서 발견된 버그나 수정 사항을 추적 가능
주요 용어
- 저장소(Repository): 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
- 가져오기(Import): 아무것도 없는 저장소에 처음으로 파일을 복사
- 체크아웃(Check-Out): 프로그램을 수정하기 위해 저장소에서 파일을 받아옴.
- 체크인(Check-In): 체크아웃 한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신
- 커밋(Commit): 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌을 알리고 diff 도구를 이용해 수정한 후 갱신을 완료.
- 동기화(Update): 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화.
Import --> Check In --> Commit --> Update --> Diff
소프트웨어 버전 관리 도구
1. 공유 폴더 방식: 버전 관리 자료가 로컬 컴퓨터의 공유 폴더에 저장되어 관리되는 방식 (ex. SCCS, RCS, PVCS...)
2. 클라이언트/서버 방식: 버전 관리 자료가 중앙 시스템에 저장되어 관리되는 방식 (ex. CVS, SVN, SVSNT...)
3. 분산 저장소 방식: 버전 관리 자료가 하나의 원격 저장소와 분산된 개발자 PC의 로컬 저장소에 함께 저장되어 관리되는 방식 (ex. Git, DCVS, GNU arch...)
서브버전(Subversion, SVN)
- CVS를 개선한 것으로, 클라이언트/서버 방식.
- 모든 개발 작업은 trunk 디렉터리에서 수행. 추가 작업은 branch 디렉터리 안에 별도의 디렉터리를 만들어 작업을 완료한 후 trunk 디렉터리에 병합(Merge)
- Commit 할 때마다 리비전(Revision)이 1씩 증가
Git
- 분산 버전 관리 시스템. 로컬 저장소와 원격 저장소가 존재.
- 로컬 저장소: 개발자들이 실제 개발을 진행하는 장소로, 버전 관리가 수행
- 원격 저장소: 여러 사람이 협업을 위해 버전을 공동 관리
- 브랜치를 이용해 기본 버전 관리 틀에 영향을 주지 않으면서 기능 테스팅이 가능
- 파일의 변화를 스냅샷으로 저장.
빌드 자동화 도구
빌드: 소스 코드 파일들을 컴파일한 후 여러 개의 모듈을 묶어 실행 파일로 만드는 과정.
빌드 자동화 도구: 빌드를 포함하여 테스트 및 배포를 자동화하는 도구.
Jenkins: Java 기반의 오픈 소스 형태로, 가장 많이 사용되는 빌드 자동화 도구.
Gradle: Groovy를 기반으로 한 오픈 소스 형태의 자동화 도구. 안드로이드 앱 개발 환경에서 사용.
* 이 글은 시나공 정보처리기사 실기 책을 토대로 작성되었습니다.
'정보처리기사' 카테고리의 다른 글
[정처기 실기] 10장 - 응용 SW 기초 기술 활용 (2) (0) | 2021.04.14 |
---|---|
[정처기 실기] 10장 - 응용 SW 기초 기술 활용 (1) (0) | 2021.04.14 |
[정처기 실기] 9장 - 소프트웨어 개발 보안 구축 (0) | 2021.04.14 |
[정처기 실기] 7장 - 애플리케이션 테스트 관리 (0) | 2021.04.14 |
[정처기 실기] 6장 - 화면 설계 (0) | 2021.04.14 |