중간 산출물 (아티팩트): 프로젝트 저장소
이 중간 산출물은 프로젝트 파일 및 디렉토리의 모든 버전을 저장합니다. 또한 파일 및 디렉토리와 연관된 모든 파생 데이터 및 메타 데이터를 저장합니다.
목적

프로젝트 저장소는 프로젝트의 CM 도구에 의해 관리되는 모든 파일 및 디렉토리를 저장합니다. 프로젝트 저장소는 대부분의 프로젝트 팀 "클라이언트"에 의해 액세스되어야 하는 글로벌 자원입니다.

프로젝트 크기에 따라 여러 개의 프로젝트 저장소가 있을 수 있으며, 각 프로젝트 저장소는 수만 개의 파일 및 디렉토리를 포함할 수 있습니다. 지정된 프로젝트 저장소의 파일 수는 저장소 서버가 실행 중인 시스템의 크기와 동시에 데이터에 액세스할 것으로 예상되는 사용자 수에 의해 결정됩니다. 저장소 서버는 프로젝트 저장소에 대한 읽기/쓰기 트래픽을 처리합니다.

관계
역할책임이 있음: 수정자:
입력 대상필수: 선택사항:
  • 없음
외부:
  • 없음
특성
선택사항
계획됨Yes
사용자 조정
표시 옵션UML 표시: 선택적으로, 이 중간 산출물은 패키지(<<project repository>>로 스테레오타입 지정)로 표시할 수 있습니다.

이 중간 산출물의 사용자 조정은 중간 산출물: 형상 관리 계획에 문서화되어 있어야 합니다.

프로젝트 저장소는 모든 측면의 실패 중심점이 될 수 있으므로, 제품 개발에 방해가 되지 않도록 모드 데이터를 수용하고 고성능이 되도록 크기 조절이 가능하고 신뢰할 수 있으며 결함이 허용되어야 합니다. 프로젝트 저장소의 주요 하드웨어 고려사항은 다음과 같습니다(우선순위 순서대로).

  • 메모리 요구사항: 메모리는 CM 도구의 성능을 개선하기 위한 가장 비용이 비싼 방법 중 하나입니다. 서버 시스템에 필요한 주 메모리 양에 대해서는, 경험상 프로젝트 저장소에 사용되는 모든 데이터베이스 공간을 더한 후 2로 나누면 됩니다. 예를 들어, 1MB의 주 메모리는 2MB의 데이터베이스 공간에 대해 캐싱 및 배경 데이터 쓰기를 허용할 수 있을 만큼 충분해야 합니다. 이 때 프로젝트 저장소에 있는 데이터의 절반이 지정된 시간에 활발히 액세스된다고 가정합니다. 서버 시스템은 최소 256MB를 가지고 있어야 합니다. 클라이언트측에서, 각 개발자의 시스템에는 최소 128MB의 주 메모리가 있어야 합니다.
  • 디스크 입출력(I/O) 요구사항: CM 환경에서 두 번째로 가능성이 높은 성능 병목 현상은 데이터를 디스크에 쓸 수 있는 속도입니다. 읽기/쓰기 집중 오퍼레이션은 체크인, 체크아웃 및 기준선 작성입니다. 디스크마다 전용 제어기 및 채널이 있는 것이 좋습니다.
  • 네트워크 대역폭: CM 도구는 일반적으로 분산 응용프로그램이므로, 좋은 성능을 위해서는 적절한 네트워크 용량 및 신뢰성이 요구됩니다. 따라서 프로젝트 저장소를 호스트하는 시스템과 보기를 같은 서브넷에 놓을 것을 권장합니다. 그리고 근거리 통신망(LAN)이 제한시간 초과 및 불충분한 응답으로 표시되는 것처럼 너무 포화 상태인 경우에는 네트워크 용량을 늘리거나 CM 도구 이용 시스템을 위한 서브넷을 추가하는 것이 좋습니다. 
  • 프로젝트 저장소 디스크 공간: 프로젝트 크기에 따라 여러 개의 프로젝트 저장소가 있을 수 있으며, 각 프로젝트 저장소는 수만 개의 파일 및 디렉토리를 포함할 수 있습니다. 지정된 프로젝트 저장소의 파일 수는 저장소 서버가 실행 중인 시스템의 크기와 동시에 데이터에 액세스할 것으로 예상되는 사용자 수에 의해 결정됩니다. 활성 상태의 읽기/쓰기 코드 개발 프로젝트 저장소는 동일 레벨의 사용자 트래픽을 수반하지 않는 휘발성이 덜한 저장소보다 적은 요소를 보유할 수 있습니다. 소프트웨어 개발의 경우 프로젝트 저장소는 저장소에 대략 3000 - 5000개의 요소를 보유할 것으로 예상합니다. 경험에 따라 좋은 규칙은 디스크 공간의 증가를 허용하고 프로젝트 저장소마다 2GB의 저장영역을 할당하여 약 50% 여유 공간을 갖는 것입니다.

프로젝트 저장소는 전용 서버에 있어야 합니다. 이는 프로젝트 저장소 서버가 다음과 같은 용도로 사용되지 않아야 함을 의미합니다.

  • 컴파일, 빌드 또는 테스트
  • 다른 써드파티 도구 실행
  • 메일 서버
  • 웹 서버