작업공간이란 개발자가 프로젝트의 채택 표준에 따라 다른 개발자와 비교적 분리된 상태에서 코드를 구현하고 테스트할 수 있는 '개인용' 영역입니다. 형상 관리자는 프로젝트의 각 개발자에 대해 작업공간 환경을 작성해야
합니다.
작업공간은 각 개발자에게 각 파일의 적절한 버전을 선택하고 제공하는 일관되고 유연하고 비용이 적게 들며 재생 가능한 환경을 제공합니다. 작업공간은 공유 및 분리에 대해 모두 세분화된 제어를 제공할 수 있어야
합니다. 대부분의 프로젝트에서 개발자는 다른 인원들이 작성한 변경사항에서 분리된 상태로 있어야 하기 때문에 이러한 제어가 필요하지만, 동시에 개발자는 다른 특정 개발자가 작성한 변경사항을 사용하여 자신의 변경사항을
유닛 테스트할 수 있어야 합니다.
이전 릴리스에 대한 유지보수를 수행할 때 개발자는 이전 버전, 2진 파일, 문서, 테스트, 도구 및 기타 오브젝트를 볼 수 있어야 합니다. 이 경우 작업공간은 '타임 머신'의 역할을 하여 자원 뿐만 아니라 환경의
모든 것이 이전에 수행된 대로 나타내게 합니다.
각 개발자의 작업공간은 편집, 컴파일, 테스트 및 디버깅 목적으로 분리되어야 합니다. 그러나 작업공간의 분리는 절대적이 아니라 상대적이어야 합니다.
-
다른 사람들은 개발자의 작업을 추적할 수 있고 선택적으로 자신들의 작업에 통합할 수 있어야 합니다.
-
다른 사람들은 자신들의 작업에 대한 불안정함을 증명할 수 있는 변경사항을 후속 통합 기간까지 가릴 수 있어야 합니다.
작업공간은 완전히 개별 개발자의 개인용이 될 수도 있고 네트워크를 통해 개발자 팀 간에 공유할 수도 있습니다.
소스 버전에 대한 액세스를 제공할 뿐만 아니라 작업공간은 소프트웨어 개발 과정에서 생성된 파일의 개인용(분리) 저장영역을 제공해야 합니다.
-
소스 파일의 작업(체크 아웃) 버전
-
실행 파일
-
기타 작업공간 개인용 오브젝트 - 소스 코드, 테스트 서브디렉토리 및 테스트 데이터 파일
작업공간의 개인용 저장영역은 일반적으로 워크스테이션에 있는 개발자의 홈 디렉토리에 있습니다. 개발자 그룹이 공유하는 작업공간은 중앙 파일 서버에 해당 개인용 저장영역을 가질 수 있습니다. 그러나 개인용 저장영역의
실제 위치는 크게 불규칙합니다. 개발자의 관점에서 볼 때 작업공간의 개인용 저장영역은 완전히 통합된 것으로 나타나야 합니다.
위 그림은 CM Cube의 전체 컨텍스트에서 개인용 및 통합 작업공간의 개념을 보여 줍니다.
작업 구성(작업공간 프로파일)이란 프로젝트의 작업 세트를 구성하는 특정 서브시스템입니다. 작업 세트는 작업 부분을 구현하기 위해 참조 또는 수정되어야 하는 서브시스템의 특정 버전
목록입니다. 이 목록은 전체 시스템 또는 서브세트를 나타낼 수 있습니다.
보기는 프로젝트 저장소의 파일 세트에 대한 액세스를 제공합니다. 또한 보기는 해당 파일의 해당 버전 세트에 대한 액세스를 제공합니다.
-
새 개발 보기는 가장 최신 파일 버전에 대한 액세스를 제공할 수 있습니다.
-
다른 새 개발 보기는 제품의 새 사용자 인터페이스에 대해 작업하는 팀이 사용하고 있는 버전에 대한 액세스를 제공할 수 있습니다.
-
유지보수 보기는 지정된 제품 릴리스를 빌드하는 데 사용된 파일 버전에 대한 액세스를 제공할 수 있습니다.
보기라고도 하는 작업공간을 사용하여 개발자는 팀의 나머지와 수정을 공유하기 전에 개인적으로 변경사항을 작성하고 테스트할 수 있습니다. 두 가지 유형의 보기가 있습니다.
스냅샷 보기는 개발자에게 안정성 있고 변경되지 않는 작업 환경을 제공합니다. 이 보기는 컴퓨터 디렉토리 트리와 유사합니다. 스냅샷 보기는 하나 이상의 프로젝트 저장소의 해당 파일 버전의 사본으로
채워집니다. 일부 인원은 해당 디렉토리 트리에 "샌드 박스"라는 용어를 사용합니다. 개발자는 다른 팀 구성원이 작성한 변경사항을 보려고 할 때 자신의 보기를 갱신합니다. 이 작업 스타일은 자동 갱신 메커니즘을 통해
즉시 사용 가능해지는 것이 아니라 관련 정보의 능동적 풀(pull)에 의존하기 때문에 풀(pull) 모델로 정의됩니다.
동적 보기는 모든 개발 데이터를 포함하는 것처럼 나타나는 가상 데이터 구조입니다. 동적 보기는 로컬 파일 사본을 작성하지 않지만 네트워크를 통한 즉시 갱신에 의존합니다. 동적 보기는 다음 경우에 최선의
선택이 될 수 있습니다.
-
클라이언트측 디스크 공간이 제한된 경우
-
도출된 오브젝트 공유를 사용하려고 하는 경우
-
개발 팀이 최신 코드 버전에 대해 작업해야 하는 경우. 이 기능은 특히 지정된 소프트웨어의 최신 버전을 필요로 하는 통합에 유용합니다.
|