11장 : 제품 소프트웨어 패키징(2과목)
1. 소프트웨어 패키징
- 모듈별로 생성한 실행 파일들을 묶어, 배포용 설치 파일을 만드는 것
- 사용자 중심으로 진행
- 모듈화 후, 패키징
- 다양한 환경을 위해, 일반적인 배포 형태로 패키징
- 2 ~ 4주를 주기로 하여 수행
- 패키징 작업 순서
1-1. 소프트웨어 패키징 작업 순서
순서 | 과정 | 설명 | |
1 | 기능 식별 | 작성된 코드의 기능을 확인한다. | |
2 | 모듈화 | 확인된 기능 단위로 코드를 분류한다. | |
3 | 빌드 진행 | 모듈 단위 별로, 실행 파일을 만든다. | |
4 | 사용자 환경 분석 | ||
5 | 패키징 및 적용 시험 | 정의된 환경과 동일한 환경에서 패키징 결과를 테스팅한다. | |
6 | 패키징 변경 개선 | ||
7 | 배포 | 배포 수행 시, 오류가 발생하면 해당 개발자에게 전달하여 수정을 요청한다. |
2. 릴리즈 노트 (Release Note)
- 개발 과정에서 정리된 릴리즈 정보를, 고객과 공유하기 위한 문서
- 최종 승인 후, 문서화하여, 사용자에게 제공
- 현재 시제로 작성
- 특수한 상황이 발생한 경우, 릴리즈 노트를 추가로 작성
2-1. 릴리즈 노트 작성 순서
순서 | 과정 |
1 | 모듈 식별 |
2 | 릴리즈 정보 확인 |
3 | 릴리즈 노트 개요 작성 |
4 | 영향도 체크 |
5 | 정식 릴리즈 노트 작성 |
6 | 추가 개선 항목 식별 |
3. 디지털 저작권 관리 (DRM : Digital Right Management) ★★★
- 디지털 콘텐츠의 전 과정에 걸쳐 사용되는, 디지털 콘텐츠 관리 및 보호 기술
- 아날로그인 경우에는 디지털로 변환한 후 수행
- 크기가 작으면, 실시간으로 패키징을 수행
- 크기가 크면, 미리 패키징을 수행
- 패키징을 수행하면, 암호화된 저작권자의 전자서명이 포함되고, 라이선스 정보가 클리어링 하우스에 등록
- 요금이 부과
3-1. 디지털 저작권 관리의 흐름도

** 클리어링 하우스 (Clearing House) : 저작권에 대한 사용 권한, 라이선스 발급, 사용량에 따른 결제 관리 등을 수행하는 곳
4. 형상 관리 (SCM : Software Configuration Management)
- 변경 사항을 관리하기 위해 개발된 일련의 활동
- 개발 비용을 줄이고, 방해 요소를 최소화되도록 보증하는 것을 목표
4-1. 형상 관리의 과정
순서 | 과정 | 설명 |
1 | 가져오기 (Import) | 개발자가 저장소에 신규로 파일을 추가 |
2 | 인출 (Check-Out) | 저장소의 파일을 자신의 작업 공간으로 인출 |
3 | 예치 (Commit) | 수정 후 갱신 |
4 | 동기화 (Update) | 저장소의 최신 버전으로 동기화 |
5 | 차이 (Diff) |
5. 소프트웨어 버전 관리 방식의 종류 ★★★
- 공유 폴더 방식
- 클라이언트 / 서버 방식
- 분산 저장소 방식
- 서브버전 (SVN)
- 깃 (Git)
6. 서브버전 (SVN : Subversion) ★★★
- 클라이언트 / 서버 방식 중 하나
- 커밋할 때마다 리버전이 1씩 증가
- 무료로 이용 가능
- CVS의 단점이었던 디렉터리의 이동, 이름 변경이 가능
7. 깃 (Git) ★★★
- 분산 저장소 방식 중 하나
- 분산 버전 관리 시스템
- 커밋할 때마다 48자리 문자열로 표시
- 파일의 변화를 스냅샷으로 저장
- 처리 속도가 빠르지 않음
8. 빌드 자동화 도구
- 빌드, 테스트 및 배포를 자동화하는 도구
- Jenkins
- JAVA 기반
- 오픈 소스 형태
- 서버 기반의 도구
- 여러 대의 컴퓨터를 이용한 분산 빌드나 테스트가 가능
- Gradle
- Groovy를 기반으로 한 오픈 소스 형태
- 안드로이드, JAVA, C, C++, Python 등 가능
- 테스크를 만든 후, 테스크 단위로 실행