[2021년 정보시스템감리사][소프트웨어공학] 40번

40. 소프트웨어 버전 관리에 대한 다음 설명 중 가장 적절하지 않은 것은? 

① Git과 Subversion 모두 commit 명령으로 새로운 버전을 생성할 수 있다.

② 분산 버전 관리 시스템인 Git은 버전 저장소에서 컴포넌트 버전 간 차이인 델타를 이용하여 공간을 절약한다.

③ Subversion은 하나의 마스터 저장소에 모든 컴포넌트의 버전을 유지하는 중앙집중 버전 관리 시스템이다.

④ 베이스라인은 시스템을 구성하는 컴포넌트 버전들의 집합을 의미한다. 소프트웨어 개발 과정 중 특정 시점이나 목적을 위하여 만들어진 산출물의 집합이다.











[해설]

SW 형상 관리 활동

-      버전 관리 : 시스템 컴포넌트들의 여러 버전들을 추적 관리하고 여러 개발자들에 의한 컴포넌트 변경이 서로 방해받지 않도록 보장하는 것

-      시스템 구축 : 컴포넌트, 데이터, 라이브러리들을 조립하고, 실행가능한 프로그램을 생성하기 위해 이것들을 컴파일하고 링킹하는 프로세스

-      변경 관리 : SW에 대한 고객과 개발자들의 변경 요청을 추적관리하고, 이런 변경을 수행하기 위한 비용과 영향을 파악하고, 이런 변경을 구현할 것인지, 한다면 언제 할 것인지를 판단하는 것

-      릴리스 관리 : 고객 사용을 위해 릴리스되는 시스템 버전들을 추적 관리하는 것

 

SW 형상 관리 주요 용어

용어

정의

베이스 라인

   시스템을 구성하는 컴포넌트 버전들의 모음

   베이스라인들은 통제되는데, 이것은 베이스라인에서 사용되는 컴포넌트 버전들은 변경될 수 없다는 것을 의미

   베이스라인은 그것의 구성 컴포넌트들로부터 항상 다시 생성될 수 있음

코드라인

   소프트웨어 컴포넌트 그리고 컴포넌트가 의존하는 다른 형상 항목들의 버전들의 집합

형상 항목

   형상 관리를 받는 소프트웨어의 프로젝트에 관련된 모든 것(설계, 코드, 테스트 데이터, 문서 등)

   형상 항목은 항상 유일한 식별자를 갖음

메인라인

   시스템의 여러 버전들을 나타내는 일련의 베이스라인들

저장소

   SW 컴포넌트의 버너들과 컴포넌트들의 변경에 관한 메타 정보의 공유된 데이터베이스

작업공간
(work space)

   개발자가 SW를 사용 또는 수정하고 있는 다른 개발자들에게 영향을 미치지 않고 그 SW를 변경할 수 있는 곳

버전

   형상 항목의 다른 인스턴스와 어떤 식으로든 구별되는 인스턴스

   버전들은 항상 유일한 식별자를 갖음

 

▣ 버전 관리 시스템 유형

구분

설명

중앙집중 시스템

   하나의 마스터 저장소가 개발 중인 소프트웨어 컴포넌트의 모든 버전들을 유지

   ex) Subversion

분산 시스템

   컴포넌트 저장소의 복수 버전들이 동시에 존재

   ex) Git

 

▣ 주요 명령어




▣ 델타(deltas)를 사용한 저장소 관리

-      버전 관리 시스템이 처음 개발되었을 때, 저장소 관리는 가장 중요한 기능중의 하나였음

-      디스크공간의 값이 비쌌으므로, 컴포넌트의 여러 복사본들에 의해 사용되는 디스크 공간을 최소화하는 것이 중요했음

-      각각의 버전의 완전한 내용을 유지하는 것 대신, 버전 사이의 차이(delta)들의 목록을 저장함

-      공간을 아낄 수 있으나 모든 delta를 적용하는데 시간이 많이 소요됨

-      Gitdelta를 사용하지 않고 저장된 파일들 그리고 연관된 메타 정보에 대해 표준 압축 알고리즘을 적용함( delta를 포함한 packfile 개념 사용)


댓글

이 블로그의 인기 게시물

영리목적의 마케팅 정보를 전송하기 위한 개인정보 처리 조치