[정보처리기사 필기] 제품 소프트웨어 패키징 - 041. 소프트웨어 버전 등록

1. 소프트웨어 패키징의 형상 관리

  • 소프트웨어의 개발 과정에서 소프트웨어의 변경 사항을 관리하기 위해 개발된 일련의 활동
  • 형상 : 소프트웨어 개발 단계 과정에서 만들어지는 프로그램, 프로그램을 설명하는 문서, 데이터 등을 통칭하는 말 
  • 소프트웨어 변경의 원인을 알아내고 제어하며, 적절히 변경되고 있는지 확인하여 해당 담당자에게 통보
  • 소프트웨어 개발의 전 단계에 적용되는 활동, 유지보수 단계에서도 수행
  • 소프트웨어 개발의 전체 비용을 줄이고, 개발 과정의 여러 방해 요인이 최소화되도록 보증하는 것을 목적으로 함
  • 관리 항목 : 소스 코드, 프로젝트 계획, 분석서, 설계서, 프로그램, 테스트 케이스 등이 포함
  • 형상 관리를 통해 가시성과 추적성을 보장함으로써 소프트웨어의 생산성과 품질을 높일 수 있음
    • 가시성 : 대상을 확인할 수 있는 정도를 의미
  • 대표적인 형상 관리 도구 : Git, CVS, Subversion 등

2. 형상 관리의 중요성

  • 지속적인 소프트웨어의 변경 사항을 체계적으로 추적하고 통제할 수 있음
  • 제품 소프트웨어에 대한 무절제한 변경을 방지할 수 있음
  • 버그, 수정 사항을 추적할 수 있음
  • 소프트웨어는 형태가 없어 가시성이 결핍되므로 형상 관리를 통해 진행 정도를 확인하기 위한 기준으로 사용될 수 있음
  • 소프트웨어의 배포본을 효율적으로 관리할 수 있음
  • 여러 명의 개발자가 동시에 개발할 수 있음

3. 형상 관리 기능

  • 형상 식별 : 형상 관리 대상에 이름과 관리 번호를 부여하고, 계층 (Tree) 구조로 구분하여 수정 및 추적이 용이하도록 하는 작업
  • 버전 제어 : 소프트웨어 업그레이드, 유지 보수 과정에서 생성된 다른 버전의 형상 항목을 관리하고, 이를 위해 특정 절차와 도구(Tool)를 결합시키는 작업
  • 형상 통제 (변경 관리) : 식별된 형상 항목에 대한 변경 요구를 검토하여 현재의 기준선(Base Line)이 잘 반영될 수 있도록 조정하는 작업
    • 기준선 (변경 통제 시점) : 정식으로 검토되고 합의된 명세서나 제품, 소프트웨어 개발 시 소프트웨어 변경을 적절히 제어할 수 있도록 도와줌
  • 형상 감사 : 기준선의 무결성을 평가하기 위해 확인, 검증, 검열 과정을 통해 공식적으로 승인하는 작업
    • 무결성 : 결점이 없다는 것, 정해진 기준이 어긋나지 않고 조건을 충실히 만족하는 정도
  • 형상 기록 (상태 보고) : 형상의 식별, 통제, 감사 작업의 결과를 기록, 관리하고 보고서를 작성하는 작업

4. 소프트웨어 버전 등록 관련 주요 기능

  • 저장소 Rapository : 최신 버전의 파일들과 변경 내역에 대한 정보들이 저장되어 있는 곳
  • 가져오기 Import : 버전 관리가 되고 있지 않은 아무것도 없는 저장소에 처음으로 파일을 복사
  • 체크아웃 Check-Out : 프로그램을 수정하기 위해 저장소에 파일을 받아옴, 소스 파일과 함께 버전 관리를 위한 파일들도 받아옴
  • 체크인 Check-In : 체크아웃한 파일의 수정을 완료한 후 저장소의 파일을 새로운 버전으로 갱신
  • 커밋 Commit : 체크인을 수행할 때 이전에 갱신된 내용이 있는 경우에는 충돌을 알리고 diff 도구를 이용해 수정한 후 갱신을 완료
    • diff 도구 : 비교 대상이 되는 파일들의 내용을 비교하여 서로 다른 부분을 찾아 표시해 주는 도구
  • 동기화 Update : 저장소에 있는 최신 버전으로 자신의 작업 공간을 동기화

5. 소프트웨어 버전 등록 과정

  1. 가져오기 : 개발자가 저장소에 신규로 파일을 추가
  2. 인출 : 수정 작업을 진행할 개발자가 저장소에 추가된 파일을 자신의 작업 공간으로 인출
  3. 예치 : 인출한 파일을 수정한 후 설명을 붙여 저장소에 예치
  4. 동기화 : 커밋 후 새로운 개발자가 자신의 작업 공간을 동기화, 기존 개발자가 추가했던 파일이 전달
  5. 차이 : 새로운 개발자가 추가된 파일의 수정 기록을 확인하면서 이전 개발자가 처음 추가한 파일과 이후 변경된 파일의 차이를 확인