[정보 처리] 11. 제품 소프트웨어 패키징

2025. 4. 14. 11:59·Study/Computer Science

- 이번 포스팅에선 소프트웨어 공학 분야에서 팔기 위해 만들어진 제품 소프트웨어를 포장(패키징)하는 방법을 학문적으로 정리할 것입니다.

 

- 제품 소프트웨어 패키징이란,

개발이 완료된 제품 소프트웨어를 고객에게 전달하기 위한 형태로 포장하는 작업입니다.

설치에서부터 사용까지 필요한 모든 사항 및 매뉴얼이 포함되어 있어야 하며,

일단 배포된 소프트웨어에 대한 패치 및 업그레이드를 위한 버전 관리가 가능해야 합니다.

 

- 제품 소프트웨어 패키징 필요사항

1. 사용자 편의성을 중심으로 구성

2. 범용적 환경에서 사용이 가능하도록 고려

3. 버전 관리 등 지속적 관리를 고려

 

(소프트웨어 빌드)

- 소프트웨어 빌드란, 개발자가 작성하는 인간 중심의 코드를 실제 컴퓨터가 실행 가능하도록 해석하는 것입니다.

 

- 소프트웨어 빌드 및 패키징을 용이하게 하기 위해선 소프트웨어를 모듈화하여 분리된 단위별 디버깅, 테스트 및 통합 및 수정을 용이하게 해야합니다.

 

- 소프트웨어 빌드 툴

소프트웨어를 빌드 할 때 프로그래밍 언어 자체에서 제공하는 빌드 툴이 있으며, 그 외에 추가된 기능을 제공하는 빌드 툴이 존재합니다.

빌드툴이 필요한 이유는, 소프트웨어를 만들기 위한 소스코드가 단일로 존재하고 있지는 않기 때문입니다.

자주 사용되고 중요하고 복잡하고 어려운 기능은 이미 만들어져서 외부에서 제공되는 경우도 있는데,

이를 소스코드에 복사하는 형태가 아니라, 소스코드 상에 해당 파일의 위치 등을 설정해서 마치 실제로 소스코드에 존재하는 것처럼 다루는 식으로 개발이 이루어 질 것입니다.

이때 빌드툴이 없다면 이러한 외부 라이브러리 등을 연계하는데에 수동으로 처리를 해야할 것이기에,

이러한 수고를 덜어주기 위한 빌드 자동화 툴이 필요합니다.

 

- 소프트웨어 빌드 툴 종류는, Gradle, Ant, Maven 과 같이 인터넷 스토리지에 올라와 있는 라이브러리를 가져와 사용할 수 있는 기능을 제공하는 툴이 있으며, 이미 빌드된 다른 파일과의 연결을 용이하게 해주는 Make, 다른 빌들 툴들을 종합하여 빌드 실행, 빌드 처리, 테스트, 에러 처리 등을 한번에 해주는 Jenkins 라는 툴이 있습니다.

 

(사용자 중심 패키징)

- 고객 편의성을 위해 사용자의 실행환경(OS, 시스템 사양, 고객 운용 환경 등)을 우선시하여 패키징을 진행합니다.

만약 여러 실행 환경을 고려해야 한다면, 각 실행환경별 배포본을 분류하여 각각을 따로 패키징 해야 합니다.

 

- 사용자 관점 패키징 고려사항

1. 사용자의 시스템 사양 등 최소 수행 환경 정의

2. 사용자 직관적 UI 제공 및 메뉴얼과 일치

3. 하드웨어와 함께 통합 제공되는 경우 운영부분까지 고려(키오스크를 예로들면 기기와 소프트웨어 관리 업체가 다를 경우 소비자 입장에서는 한곳에만 연락하면 그곳에서 자동으로 다른 기업으로 요청을 전달)

4. 안정적 배포가 가장 중요하며, 다양한 사용자 요구사항 및 요구사항 변경을 고려해야 합니다.

 

- 소프트웨어 패키징 수행 절차

1. 기능 식별

소스코드로 소프트웨어가 수행하는 기능 및 입출력 데이터를 식별합니다.

 

2. 모듈화

모듈로 분류할 수 있는 기능 및 서비스 단위로 분리하여 여러번 호출되는 기능은 공유 및 재활용 할수 있도록 모듈화 합니다.

결합도 약화 및 응집도 강화가 목적입니다.

 

3. 빌드 진행

빌드 진행을 위한 소스코드와 빌드 툴을 준비하고 빌드를 수행합니다.

 

4. 사용자 환경 분석

패키징 수행 시 실제 사용자의 최소 환경 요구사항에 맞춰 정의합니다.

 

5. 패키징 적용 시험

사용자 환경과 같은 환경으로 패키징을 적용한 후 소프트웨어 동작을 테스트합니다.

소프트웨어 UI 및 시스템 환경과 맞는지, 불편한 점이 있는지를 확인합니다.

 

6. 패키징 변경 개선

추후 재패키징을 대비하여 변경 부분을 정리하고 최소 수준에서 개선 할 수 있도록 개선합니다.

 

[릴리즈 노트]

- 릴리즈 노트란, 소프트웨어 릴리즈 정보(제품 수정, 변경, 반영 정보)를 사용자에게 공유하기 위하여 알기 쉬운 형식으로 소프트웨어 배포 및 변경 사항을 문서화한 것입니다.

 

- 릴리즈 노트의 배포는 개발팀 주체로 명확하고 정확하며 완전한 정보를 제공해야 합니다.

 

- 릴리즈 노트 특징

1. 테스트의 진행 이력, 개발팀이 제공 사양을 얼마나 준수했는지 확인 가능합니다.

2. 사용자에게 소프트웨어 변경 사항에 대한 정확한 정보 제공

3. 기본적으로는 전체적인 제품의 수행 기능 및 서비스의 변화를 공유하는 역할

4. 버전 관리 및 릴리즈 정보 관리에 대한 자동화를 적용할수도 있습니다.

 

(릴리즈 노트 작성 요소)

- 릴리즈 노트를 작성할 때에는 아래와 같은 요소가 포함되어야 합니다.

1. Header : 문서 이름, 제품 이름, 버전 번호, 릴리즈 날짜, 참고 날짜, 노트 버전 등

2. 개요 : 제품 및 변경에 대한 간략한 전반적 정보

3. 목적 : 릴리즈 버전의 새로운 기능 목록과 릴리즈 목적에 대한 간략한 정보

4. 이슈 요약 : 보그의 간단 설명 또는 릴리즈 추가 항목 요약

5. 재현 항목 : 버그 발견에 따른 재현 단계를 기술

6. 수정/개선 내용 : 수정/개선 사항에 대한 간단한 설명

7. 사용자 영향도 : 버전 변역에 따른 최종 사용자 기준의 영향도 기술

8. SW 지원 영향도 : 버전 변경에 따른 SW 기준 지원 프로세스 및 영향도 기술

9. 노트 : SW 및 HW Install 항목, 제품, 문서를 포함한 업그레이드 항목 메모

10. 면책 조항 : 프리웨어, 불법 복제 방지, 주의사항 등 고지사항

11. 연락 정보 : 사용자 지원 및 문의에 대한 연락처 정보

 

(릴리즈 노트 작성 절차)

1. 모듈 식별

변경 또는 배포 대상이 되는 기능/시스템/모듈을 정확히 식별하는 단계입니다.

릴리즈 범위가 명확해야 영향도 분석과 테스트도 명확하게 진행되므로, 어떤 부분(모듈)이 변경되었는지 구체적으로 파악합니다.
(예: 로그인 모듈, 결제 API, 관리자 페이지 등)

버그 수정인지, 기능 추가인지, 리팩토링인지도 분류합니다.

 

2. 릴리즈 정보 확인

후속 대응이나 추적을 위해 릴리즈에 대한 기본 정보(버전, 날짜, 담당자 등)를 정리하는 단계입니다.

 

아래와 같은 정보를 정리하면 됩니다.
버전 번호 (예: v2.1.3),
릴리즈 일자,
릴리즈 대상 시스템/환경,
담당자 또는 릴리즈 책임자,
적용 방식 (패치, 전체 배포, hotfix 등)

 

3. 릴리즈 노트 개요 작성

사용자나 이해관계자가 쉽게 이해할 수 있도록, 릴리즈의 주요 내용을 요약합니다.

 

아래와 같은 내용을 요약합니다.
이번 릴리즈의 핵심 목적,
어떤 이슈를 해결했는지,
어떤 기능이 추가되었는지,
눈에 띄는 주요 변경점 정리

 

4. 영향도 체크

예상치 못한 오류나 서비스 중단을 막기 위해 변경된 항목이 시스템 전체에 어떤 영향을 주는지 분석하는 단계입니다.

 

아래와 같은 내용을 분석합니다.
다른 모듈이나 기능과의 연관성 확인,
DB 변경 여부,
API 연동 영향 여부,
테스트 필요 범위 정의,
성능이나 보안 측면 영향도 고려

 

5. 정식 릴리즈 노트 작성

앞서 정의된 내용을 포함하여, 최종 사용자 또는 운영팀, QA가 참고할 수 있도록 표준 포맷으로 릴리즈 노트를 작성합니다.

내부용과 외부용(사용자용) 릴리즈 노트를 분리하는 경우도 많습니다.

 

6. 추가 개선 항목 식별

이번 릴리즈에서 완료하지 못했거나, 후속 조치가 필요한 항목을 정리하는 단계입니다.

릴리즈 중 발생한 신규 이슈,
다음 릴리즈에 포함해야 할 항목,
릴리즈 후 사용자 피드백을 반영한 개선 항목을 정리해둡니다.

릴리즈는 끝이 아니라 다음 개선의 시작이므로, 추적 가능한 상태로 남겨야 합니다.

 

[소프트웨어 패키징]

- 패키징 도구란,

제품 소프트웨어의 패키징 작업 및 안정적 유통까지를 지원하는 도구입니다.

불법 복제 방지, 디지털 콘텐츠 지적 재산권 보호 기능을 포함합니다.

 

- 소프트웨어 패키징 주의사항

1. 사용자에게 코드를 제공하는 개념이 아닌 서비스를 제공하는 개념이므로, 내부 콘텐츠를 무단으로 해석하고 활용할 수 없도록 암호화 및 보안을 고려해야 합니다.

 

2. 디지털 저작권 관리를 고려해야합니다.

 

3. 사용자 입장에서 불편할 수 있는 부분을 최대한 효율적으로 개선합니다.

 

4. 범용성에 지장이 생기지 않도록 고려해야 합니다.

 

(DRM(Digital Rights Management))

- 저작권이란, 문학 또는 예술의 범위에 속하는 창작물인 저작물에 대한 배타적 독점적 권리로, 타임의 침해를 받지 않을 고유한 권한입니다.

 

- DRM (Digital Rights Management) 이란,
디지털 콘텐츠(영상, 음악, 문서 등)의 사용 권한을 통제하고 무단 복제, 유출, 변조, 공유를 방지하는 기술과 시스템의 총칭입니다.

 

- DRM 의 기술 요소는 아래와 같습니다.

1. 암호화(Encryption) : 

콘텐츠를 암호화된 형태로 변환하여, 권한이 없는 사용자가 열람하거나 복제하지 못하도록 보호하는 기술입니다.
영상, 음악, 문서 등의 원본 콘텐츠를 암호화 처리를 하는 DRM 시스템의 기본 보호 메커니즘입니다.
ex: 영상 파일을 암호화해서, 플레이어가 키 없으면 재생 불가

 

2. 키 관리(Key Manager) : 

암호화·복호화에 사용되는 암호키를 생성, 저장, 분배, 폐기하는 기술입니다.
콘텐츠 암호화에 사용된 키를 안전하게 관리, 사용자나 디바이스가 콘텐츠를 열람할 때 키를 제공합니다.
키 유출 시 DRM 무력화되므로 보안상 매우 중요합니다.
ex: 인증된 사용자에게만 복호화 키 전달

 

3. 암호화 파일 생성(Packager) : 

콘텐츠를 암호화하고, DRM 정보를 포함한 포맷으로 패키징하는 도구입니다.
암호화된 콘텐츠 + 라이선스 메타데이터 포함, DRM 플레이어에서 인식할 수 있는 형식으로 만듭니다.
ex: 영상 파일을 .mp4에서 DRM용 .cenc 형식으로 변환

 

4. 식별 기술(Identification) : 

사용자, 콘텐츠, 장비 등을 고유하게 식별하는 기술입니다.
콘텐츠 ID, 사용자 ID, 디바이스 ID 등을 부여하며,

접근 권한/추적/사용 로그 분석 등에 활용됩니다.
ex: 동일한 계정이라도 디바이스 ID가 다르면 거부 처리

 

5. 저작권 표현(Right Expression) :

디지털 콘텐츠의 저작권 조건을 디지털 방식으로 표현하는 기술입니다.
사용 권한(재생, 복사, 출력, 저장 등)을 디지털 메타데이터로 정의합니다.
XrML, ODRL 같은 표준 사용
ex: "7일간만 시청 가능", "1회만 다운로드 가능" 등의 조건 설정

 

6. 정책 관리(Policy management) :

콘텐츠 사용에 대한 정책을 정의하고 관리하는 기술입니다.
권한 정책 (누가/언제/어디서/어떻게), 콘텐츠 보호 수준 관리, 사용자 그룹별 정책 분기
ex: 프리미엄 사용자만 4K 재생 허용

 

7. 크랙 방지(Tamper Resistance) :

DRM 시스템 자체의 무결성을 보호하고, 크랙 시도나 우회 행위 차단을 위한 기술입니다.
코드 난독화, 디버깅 방지, 메모리 보호 등, 불법 사용자에 의한 리버스 엔지니어링을 방어합니다.
ex: 정품 DRM 모듈 외 실행 시 콘텐츠 강제 종료

 

8. 인증(Authentication) :

콘텐츠 접근을 시도하는 사용자나 기기의 정당성을 확인하는 기술입니다.
ID/패스워드, 토큰, 디바이스 인증 등을 사용하여 사용자가 DRM 정책에 따라 콘텐츠 열람 가능한지 판단합니다.
ex: 등록된 계정/기기만 콘텐츠 재생 허용

 

[제품 소프트웨어 매뉴얼]

- 제품 소프트웨어 매뉴얼이란,

제품 소프트웨어 개발 단계에서부터 적용한 기준이나 패키징 이후 설치 및 사용자 측면의 주요 내용 등을 문서로 기록한 것입니다.

사용자 중심으로 기능 및 방법을 설명한 설명 및 안내서를 의미합니다.

 

(소프트웨어 설치 매뉴얼)

- 설치 매뉴얼 작성 원칙

1. 개발자가 아닌 사용자가 읽는 것을 기준으로 작성합니다.

2. 최초 설치에서부터 실행 방식을 순차적으로 작성합니다.

3. 각 단계별 화면을 순서대로 캡쳐한 시각 자료와 함께 설명합니다.

4. 소프트웨어 설치 및 실행시 생겨날 수 있는 에러에 대해서도 설명합니다.

 

- 설치 매뉴얼 기본 작성 항목

1. 목차 : 매뉴얼 전체의 내용을 순서대로 요약 및 페이지 기록

2. 개요 : 설치 매뉴얼의 구성, 설치 방법, 순서 등 기술

3. 서문 : 서문에 포함되는 내용은 아래와 같습니다.

문서 이력 정보 : 설치 매뉴얼 자체의 문서 변경 이력 기록(버전, 작성일, 변경 내용 등)

설치 매뉴얼 주석 : 주의사항(필독 요소), 참고사항(영향 가능성 요소) 등을 기술하며,

    제품 키 보존, 저작권 정보, 불법 등록 사용 금지 등 사용자 준수사항 권고

설치 도구 구성 : 설치 파일 및 폴더 설명 및 제품 설치 환경 체크 항목 등

4. 기본 사항 : 기본 사항에 포함되는 내용은 아래와 같습니다.

제품 소프트웨어 개요 : 주요 기능 및 UI 설명

설치 관련 파일 : 제품 소프트웨어 설치를 위한 관련 파일 설명

설치 아이콘 설명 : 설치 아이콘 설명

프로그램 삭제 : 소프트웨어 삭제 방법 설명

관련 추가 정보 : 제품 소프트웨어 관련 추가 정보 기술, 기술 지원 및 제품 서비스를 받을 수 있는 연락처는 기술되어야 합니다.

 

- 설치 매뉴얼 작성 상세 지침

제품 소프트웨어 설치 방법을 순서대로 상세하게 설명합니다.

1. 설치 화면 : 설치 화면을 캡쳐하여 캡쳐를 기반으로 설명

2. 설치 에러 설명 : 설치 주의사항, 이상시 참고사항 등을 설명

3. 설치 결과 : 정상 설치 완료시 비교용 결과 화면 표시

4. FAQ : 자주 발생하는 문제 및 해결법 기록

5. 점검 사항 : 사용자 환경, 설치 권한, 에러 발생 시 체크할 사항 등...

6. 네트워크 환경 및 보안 : 보안 및 방화벽 관련 안내

 

- 설치 매뉴얼 작성 절차

설치 매뉴얼을 작성시에는 작성자가 직접 소프트웨어 설치를 진행 및 확인하고 작성에 필요한 정보를 준비하여 작성합니다.

 

1. 기능 식별 :

소프트웨어 자체의 목적 및 내용과 전체적 기능을 흐름순으로 정리하여 설명합니다.

 

2. UI 분류 :

화면 중심으로 UI 와 메뉴를 순서대로 분류하고, 사전에 작성된 UI 정의서를 항목별로 분류합니다.

 

3. 설치/백업 파일 확인 :

제품을 설치할 파일 및 백업 파일명 및 폴더 위치를 확인합니다.

실행 파일, 설정 파일, 백업 파일, 로그 파일 등의 다양한 파일을 확인하고 파일별 기능을 숙지합니다.

 

4. 제거 절차 확인 :

제품 제거시 필요한 언인스톨 파일 및 단계를 순서대로 기술합니다.

제거 완료 이후 설치 전 상태로 복원되는지를 확인합니다.

 

5. 이상 Case 확인 :

설치 진행시 이상 메시지 등에 대한 케이스를 발생시키고, 이에 따른 메시지를 정리합니다.

다양한 이상 현상에 대한 처리가 제대로 이루어졌는지 확인합니다.

 

6. 최종 설치 완료 결과 적용 :

설치 최종 완료 후 이에 대한 메시지 및 최종 결과를 캡쳐하여 기술합니다.

최종 매뉴얼 정리 검토

 

(소프트웨어 사용자 매뉴얼)

- 사용자 매뉴얼 작성 기본 사항

사용자 매뉴얼은 제품 기능에서 고객 지원 안내까지를 포함하는 문서입니다.

설치 및 사용에 필요한 제반 절차 및 환경 등 전체 내용을 포함하는 매뉴얼을 작성합니다.

소프트웨어 사용시 알아야 할 내용, 패키지 기능 및 인터페이스 등에 대한 설명이 포함됩니다.

 

- 사용자 매뉴얼 작성 절차

1. 컴포넌트 명세서/구현 설계서를 준비 : 이를 기반으로 매뉴얼 작성

2. 작성 지침 정의 : 사용자 매뉴얼 작성을 위한 지침 설정

3. 매뉴얼 구성 요소 정의 : 소프트웨어 기능, 구성 객체, 객체별 기능, 사용 예제, 세팅 방법 등

4. 구성 요소별 내용 작성 : 제품 소프트웨어 구성 요소별 내용 작성

5. 사용자 매뉴얼 검토 : 기능 설명의 완전성을 검토

6. 사용 매뉴얼 작성

 

- 사용자 매뉴얼 기본 작성 항목

1. 목차 : 매뉴얼 전체의 내용을 순서대로 요약 및 페이지 기록
2. 개요 : 제품 소프트웨어 주요 특징(구성, 실행 방법, 점검 기준, 설정 방법 등) 정리
3. 서문 : 서문에 포함되는 내용은 아래와 같습니다.
문서 이력 정보 : 설치 매뉴얼 자체의 문서 변경 이력 기록(버전, 작성일, 변경 내용 등)
사용자 매뉴얼 주석 : 주의사항(필독 요소), 참고사항(영향 가능성 요소) 등을 기술

    제품 키의 보존, 저작권 정보, 불법 등록 사용 금지 등의 사용자 준수사항 권고
기록 보관 : 제품 등록, 추가 정보, 웹 사이트, 지원 양식 등
4. 기본 사항 : 기본 사항에 포함되는 내용은 아래와 같습니다.
제품 소프트웨어 개요 : 주요 기능 및 UI 설명

제품 소프트웨어 사용 : 최소 환경, 최초 동작, 주의사항 등

제품 소프트웨어 관리 : 사용 종료 및 관리 등에 대한 내용

모델, 버전별 특징 : 제품 구별을 위한 모델이나 버전별 UI, 기능 차이

기능, 인터페이스 특징 : 제품 기능 및 인터페이스 특징

제품 소프트웨어 구동 환경 : 개발 언어 및 호환 OS, 설치 과정 요약

추가 정보 : 소프트웨어 기술 지원 및 제품 서비스를 받을 수 있는 연락수단 등...

 

- 사용자 매뉴얼 작성 상세 지침

사용자 매뉴얼에는 소프트웨어 사용 방법을 다양한 측면에서 캡쳐 등 시각 정보를 사용하여 상세하고 쉽게 설명합니다.

1. 사용자 화면 및 UI : UI 에서 주목해야 할 주의사항과 참고사항 안내

2. 주요 기능 분류 : 기능 순서대로 화면을 첨부하여 기능 동작 시 참고사항, 주의사항 안내

3. 응용 프로그램/설정 : 함께 동작하거나 충돌하는 프로그램 안내, 기본 설정 값 안내

4. 장치 연동 : 소프트웨어가 삽입 또는 연동되는 장치 안내

5. 네트워크 환경 : 소프트웨어와 관련한 네트워크 정보와 관련 설정값 표시

6. 프로파일 설명 : 환경 설정 파일등 필수 파일의 변경 금지 안내

 

[제품 소프트웨어 배포]

(제품 소프트웨어 배포본)

- 배포본이란, 개발 완료된 소프트웨어에 대해 제품화하고 배포 정보를 포함한 산출물로,

쉽게 말하면 배포하기 위해 준비된 소프트웨어 결과물입니다.

 

- 배포본에는,

소프트웨어 결과물과 더불어,

소프트웨어 버전, 시스템 설치 및 운영을 위한 요구사항, 설치 방법, 변경 기능 정보, 알려진 버그 및 대처 방법 등의 문서가 포함됩니다.

 

- 소프트웨어 배포본 중요사항

1. 최종 완성된 제품을 안정성을 고려하여 배포합니다.

2. 변경을 고려하여 배포본의 고유버전 및 배포 단위 기준을 정합니다.

3. 배포용 미디어 제작시엔 저작권 및 보안에 유의

4. 고유 시리얼 넘버를 반드시 부착하여 복제 및 사후 지원을 고려합니다.

 

[제품 소프트웨어 버전 관리]

- 제품 소프트웨어 버전이란, 소프트웨어 변경 이력을 관리하기 위한 체계입니다.

이번에 1.04 와 같이 소프트웨어에 버전을 붙였다고 하면,

다음에 추가 수정해서 배포할 때에 1.05 라는 버전을 붙이면 버전이 수정되었다고 쉽게 알아차릴 수 있고, 버전에 따라 어떤 부분이 수정되었는지를 쉽게 추적 가능합니다.

 

- 형상 관리 도구란,

버전 관리 도구를 말하는 것으로, 말 그대로 버전 관리를 도와주는 도구를 말하는 것입니다.

프로그램 개발 단계별 산출물(소스 코드, 문서, 이미지 등 리소스)의 변경 사항을 저장하고 관리하는 도구로,

소프트웨어 변경 사항을 체계적으로 추적하고 통제할 수 있는 솔루션입니다.

 

- 형상 관리의 중요성

1. 소프트웨어는 계속 변경되므로 변경 사항 관리가 중요

2. 형상 관리가 안 되어 있다면 변경사항 추적 결여 및 이에대한 의사소통 부재

3. 장기적 관리에서의 insight 제공

 

- 형상 관리 도구 주요 기능

기능 설명 Git 명령어
check-out 내 컴퓨터의 현재 버전을 특정 버전으로 바꾸는 기능
현재 버전 선택 및 저장소에서 해당 버전 상태 가져오기
git checkout
check-in 내 컴퓨터의 현재 버전을 저장소로 저장하는 기능
로컬의 현재 버전 정보를 저장소로 올리기
git push
commit 로컬의 코드 변경사항을 로컬의 임시 버전으로 승인하는 기능
로컬의 현재 상태를 기반으로 로컬상 새 버전 생성
git commit
update 저장소의 해당 버전의 최신 데이터를 받아옴
로컬의 현재 버전에 해당하는 저장소의 데이터를 받아와 동기화
git pull
import 비어있는 저장소에 처음 업로드 git init
export 비어있는 로컬에 처음 다운로드 저장소에서 복사

 

- 형상 관리 도구 사용 목적

1. 소프트웨어 변경 관리, 추가 버전 관리 편의성 재고

2. 유지보수성 및 생산성 상승

3. 관리 도구로 인한 형상 관리 수월

 

- 형상 관리 도구 사용 유의사항

1. 좋은 도구를 사용해도 숙련 미숙이라면 효율이 떨어집니다.

형상 관리 도구 사용법 숙달 및 문제 발생에 대한 매뉴얼을 구비해야합니다.

2. 지속적 형상 관리와 형상 관리 기준(어떤식으로 형상 관리를 할지에 대한 팀 공식 합의)이 필요

3. 배포 완료된 소프트웨어의 형상 관리는 최대한 신중히 진행

 

- 형상 관리 도구 필수 요소

1. 형상 관리 지침에 의거하여 언제든 버전 정보에 접근 가능해야 함

2. 인가되지 않은 사용자가 소스를 수정할 수 없도록 해야함

3. 동일 프로젝트에 대해 여러 개발자가 동시 개발 가능해야함

4. 에러 발생시 최대한 빠르게 복구 가능해야함

5. 사용자 요구에 따라 적시에 최고 품질 소프트웨어가 공급 가능해야함

 

(형상 관리 도구 유형별 특징)

- 방식에 따른 분류

관리 방식 설명 예시
공유 폴더    
분산 저장소 중앙의 원격 저장소가 존재하고, 개발자들 각각의 로컬 저장소와 동기화 하는 방식 Git,

 

- 형상 관리 도구 종류

1. CVS(Concurrent Versions System)

클라이언트/서버 구조로, 다수 인원이 동시에 범용적 운영체제로 접근하여 형상 관리를 하는 도구.

이클립스 IDE 를 클라이언트로 사용 가능

 

2. SVN(Subversion)

클라이언트/서버 구조로, CVS 의 단점을 보완한 형상도구입니다.

Git 과 함께 자주 사용됩니다.

 

3. RCS(Revision Control System)

공유 폴더 방식으로, 소스파일 수정이 한사람으로 제한됩니다.

 

4. Bitkeeper

분산 저장소 방식으로, 중앙에 원격 저장소가 존재하고, 개발자들 각각의 로컬 저장소와 동기하는 방식입니다.

저장소를 분산하여 대규모 프로젝트에서 빠른 속도를 내도록 개발되었습니다.

 

5. Git

분산 저장소 방식으로, 리눅스 커널의 버전 컨트롤 시스템인 Bitkeeper 를 대체하기 위해 나온 도구입니다.

다른 형상 관리 도구에 비해 대규모 프로젝트에 효과적이며,

사용법만 익히면 소규모 프로젝트라도 편하게 다룰 수 있습니다.

 

6. Clear Case

IBM 에서 제작된 복수의 서버와 클라이언트가 연계되는 구조이며 서버의 추가가 가능한 형상 관리 도구

저작자표시 비영리 변경금지 (새창열림)

'Study > Computer Science' 카테고리의 다른 글

[정보 처리] 13. 소프트웨어 성능 분석, 품질 평가  (0) 2025.04.17
[정보 처리] 12. 소프트웨어 테스트  (0) 2025.04.15
[정보 처리] 10. 시스템 통합 구현  (0) 2025.04.13
[정보 처리] 9. 정렬 알고리즘 이론  (0) 2025.04.12
[정보 처리] 8. 탐색 알고리즘 이론  (0) 2025.04.12
'Study/Computer Science' 카테고리의 다른 글
  • [정보 처리] 13. 소프트웨어 성능 분석, 품질 평가
  • [정보 처리] 12. 소프트웨어 테스트
  • [정보 처리] 10. 시스템 통합 구현
  • [정보 처리] 9. 정렬 알고리즘 이론
Railly Linker
Railly Linker
IT 지식 정리 및 공유 블로그
  • Railly Linker
    Railly`s IT 정리노트
    Railly Linker
  • 전체
    오늘
    어제
  • 공지사항

    • 분류 전체보기 (99) N
      • Programming (33)
        • BackEnd (18)
        • FrontEnd (2)
        • DBMS (1)
        • ETC (12)
      • Study (65) N
        • Computer Science (20)
        • Data Science (41) N
        • ETC (4)
      • Error Note (1)
      • ETC (0)
  • 인기 글

  • 최근 글

  • 최근 댓글

  • 태그

    단축키
    논리적 삭제
    지리 정보
    Kotlin
    kotlin arraylist
    kotlin linkedlist
    springboot 배포
    kotlin mutablelist
    unique
    docker 배포
    MacOS
    list
    데이터베이스 제약
    network_mode: "host"
    jvm 메모리 누수
    localhost
    docker compose
  • 링크

    • RaillyLinker Github
  • hELLO· Designed By정상우.v4.10.0
Railly Linker
[정보 처리] 11. 제품 소프트웨어 패키징
상단으로

티스토리툴바