팀 프로젝트 컬렉션 관리
TFS(Team Foundation Server)가 여러 팀 프로젝트를 호스트하는 경우 프로젝트를 함께 그룹으로 묶고 같은 리소스를 할당하여 더욱 효율적으로 관리할 수 있습니다. 예를 들어 특정 코드베이스에 액세스하는 모든 팀 프로젝트와 같이 요구 사항이나 목표가 비슷한 프로젝트를 그룹으로 묶을 수 있습니다. 그런 다음 고유한 사용자 그룹, 서버 리소스 및 유지 관리 일정을 사용하여 팀 프로젝트의 그룹을 자치 리소스로 관리할 수 있습니다.
팀 프로젝트의 그룹을 팀 프로젝트 컬렉션이라고 합니다. TFS를 설치하면 모든 팀 프로젝트를 포함하는 기본 컬렉션이 만들어집니다. 컬렉션을 만들 때는 해당 컬렉션 내의 팀 프로젝트에서 사용할 수 있는 논리적 리소스와 물리적 리소스를 지정해야 합니다. 이러한 팀 프로젝트에 사용되는 모든 아티팩트와 데이터는 컬렉션의 단일 데이터베이스에 저장됩니다.
다음 그림에서는 TFS의 논리적 아키텍처에 팀 프로젝트 컬렉션의 데이터베이스가 통합되는 방식을 보여 줍니다. 팀 프로젝트를 만들 때는 해당 데이터를 저장할 컬렉션을 지정합니다.
정보 확인 또는 기존 팀 프로젝트 컬렉션 구성
TFS 관리자로 추가되지 않은 경우 관리자로 추가합니다.
콘솔을 열려는 서버의 로컬 관리자 그룹 멤버여야 하며, Team Foundation 관리자 그룹의 멤버이거나 서버 수준 정보 편집 권한이 허용으로 설정되어 있어야 합니다.
TFS의 응용 프로그램 계층 서버에 로그온하고 TFS의 관리 콘솔을 연 다음 팀 프로젝트 컬렉션 노드를 엽니다.
관리 콘솔을 여는 방법을 알아보려면 Team Foundation 관리 콘솔을 사용하여 배포 구성 및 관리를 참조하세요.
컬렉션의 이름을 강조 표시하고 여러 탭에서 제공되는 정보를 검토합니다. TFS 배포에서 응용 프로그램 계층을 지원하도록 해당 응용 프로그램이 구성된 경우에만 표시되는 탭도 있습니다.
해당 탭에서 다음 작업을 수행할 수 있습니다.
탭
작업
일반
컬렉션 시작 또는 컬렉션 중지: 컬렉션을 시작하거나 중지합니다. 컬렉션을 중지하면 팀 프로젝트를 사용할 수 없게 됩니다. 일반적으로는 컬렉션 이동 또는 분할과 같은 유지 관리 작업을 지원하기 위해 컬렉션을 중지합니다.
컬렉션이 시작된 경우 컬렉션 중지만 나타납니다. 컬렉션이 중지된 경우 컬렉션 시작만 나타납니다. 컬렉션 시작 또는 중지를 완료하려면 몇 분 정도 걸릴 수 있습니다. 상태 변경을 표시하기 위해 새로 고침을 선택해야 할 수도 있습니다.
설정 편집: 컬렉션의 설명 또는 구성을 편집합니다.
그룹 멤버 자격: 사용자 또는 그룹을 컬렉션의 멤버로 추가하거나 컬렉션에서 제거합니다. 자세한 내용은 팀 프로젝트 컬렉션에 대한 관리자 권한 설정을 참조하세요.
보안 관리: 컬렉션 그룹의 권한을 관리합니다. 자세한 내용은 Team Foundation Server에 대한 사용 권한 참조을 참조하세요.
상태
활동 로그를 보거나 작업을 다시 실행합니다.
팀 프로젝트
컬렉션에 대해 정의된 팀 프로젝트를 보고 팀 프로젝트 삭제를 수행합니다.
팀 프로젝트에 대한 자세한 내용은 팀 프로젝트 만들기를 참조하세요.
보고서 폴더
컬렉션에서 사용하도록 보고서 서버를 구성합니다.
기본 폴더 위치를 편집할 때 서버에서 폴더를 만들 권한이 없는 상태에서 해당 서버에 없는 폴더의 경로를 입력하면 작업이 실패합니다. 해당 서버에서 폴더를 만들 권한이 없으면 기존 폴더를 지정해야 합니다.
보고서 하위 폴더의 기본 위치를 제거하려면 구성 지우기를 선택합니다.
구성을 지우면 컬렉션의 모든 기존 팀 프로젝트와 이후에 만드는 팀 프로젝트에 대한 보고 기능이 제거됩니다.
이 탭은 TFS에 보고서 서버를 추가한 경우에만 표시됩니다.
SharePoint 사이트
팀 프로젝트 포털을 만드는 기본 루트 위치를 확인, 구성 또는 제거합니다. 새 팀 프로젝트 만들기 마법사에서는 이 위치에 팀 프로젝트 포털을 만듭니다.
SharePoint 웹 응용 프로그램 목록이 비어 있으면 응용 프로그램 계층이 응용 프로그램을 포함하도록 구성되지 않은 것입니다.
이 탭은 SharePoint 제품을 포함하도록 응용 프로그램 계층을 구성한 경우에만 표시됩니다. 배포에 SharePoint 제품 추가을 참조하세요.
팀 프로젝트 컬렉션 만들기
팀 프로젝트 컬렉션을 만들기 전에 여러 팀 프로젝트 컬렉션을 만드는 경우의 장단점에 대해 자세히 설명하는 섹션을 확인합니다.
TFS 관리자로 추가되지 않은 경우 관리자로 추가합니다.
콘솔을 열려는 서버의 로컬 관리자 그룹 멤버여야 하며, Team Foundation 관리자 그룹의 멤버이거나 서버 수준 정보 편집 권한이 허용으로 설정되어 있어야 합니다.
관리 콘솔에서 팀 프로젝트 컬렉션 페이지를 열고 컬렉션 만들기를 선택합니다.
팀 프로젝트 컬렉션 만들기 마법사에서 제공하는 지침을 따릅니다.
이름으로는 64자 이내의 고유한 이름을 지정합니다. 이름은 짧을수록 좋으며 슬래시나 Team Foundation의 명명 제한에 나와 있는 기타 특수 문자는 지정하면 안 됩니다.
마법사에서는 다음 리소스를 구성할 수 있습니다. 컬렉션을 호스트하는 응용 프로그램 계층 서버가 해당하는 응용 프로그램을 지원하도록 이전에 구성한 경우에만 구성할 수 있는 리소스도 있습니다.
데이터 계층 또는 SQL Server 인스턴스
SQL Server 인스턴스에서 TFS 데이터 계층 서버의 이름을 지정합니다. 이 팀 프로젝트 컬렉션의 데이터베이스를 호스팅하는 데 명명된 인스턴스를 사용하려면 다음 예제와 같이 인스턴스의 이름도 지정해야 합니다.
ServerName**\**InstanceName
컬렉션용 데이터베이스를 만들려면 이 컬렉션에 대한 새 데이터베이스 만들기를 선택합니다. 이 옵션을 사용하려면 Visual Studio Team Foundationq 백그라운드 작업 에이전트에서 사용하는 서비스 계정에 SQL Server 인스턴스에서 데이터베이스를 만들 권한이 있어야 합니다.
또는 이미 있는 데이터베이스를 사용하려면 기존의 데이터베이스 사용을 선택하고 텍스트 상자에 데이터베이스의 이름을 지정합니다. 이 옵션을 사용하려면 명명된 SQL Server 인스턴스에 빈 데이터베이스가 있어야 하며 쓰기 권한이 있어야 합니다.
SharePoint 웹 응용 프로그램
SharePoint 웹 응용 프로그램은 SharePoint 웹 응용 프로그램을 포함하도록 응용 프로그램 계층을 구성한 경우에 표시되며 그렇지 않으면 사용하지 않도록 설정됩니다. 나중에 SharePoint 웹 응용 프로그램을 구성하려면 배포에 SharePoint 제품 추가를 참조하세요.
기본 옵션을 사용하여 사이트 모음을 만들려면 다음을 선택합니다. 비즈니스 인프라에서 기존 사이트 모음을 사용해야 하는 경우가 아니면 이 옵션을 선택합니다. 이 옵션을 사용하는 경우 SharePoint 사이트 컬렉션이 만들어지고 컬렉션의 이름이 SharePoint 웹 응용 프로그램에 구성되어 있는 루트 사이트의 하위 사이트 이름으로 사용됩니다.
이 옵션을 사용하려면 TFS 서비스 계정이 팜 관리자 그룹의 멤버여야 합니다. 그렇지 않으면 사이트 모음을 만들 수 없습니다.
또는 자동으로 작성된 팜 관리자 그룹 멤버인 기존 사이트 모음을 사용하려면 고급 구성을 확장하고 기존 SharePoint 사이트의 경로 지정을 선택한 후에 자동으로 작성된 사이트 모음의 상대 경로를 지정합니다.
경로 확인을 선택하고 경로가 올바른 경우 다음을 선택합니다.
SQL Server Reporting Services
보고서는 SQL Server Reporting Services를 사용하도록 응용 프로그램 계층을 구성한 경우에 표시되며 그렇지 않으면 사용하지 않도록 설정됩니다. 나중에 보고서를 구성하려면 보고서 서버 추가를 참조하세요.
보고서를 호스트할 서버와 폴더의 정보를 검토하고 다음을 선택합니다. 이 옵션을 사용하려면 사용자 계정에 Reporting Services를 실행 중인 서버에 폴더를 만들 권한이 있어야 합니다.
비즈니스 인프라의 보안 제한 사항 때문에 마법사를 통해 자동으로 폴더를 만드는 것이 금지된 상황이 아니라면 폴더를 만드는 데 기본 옵션을 사용해야 합니다.
Reporting Services를 실행 중인 서버에서 관리자가 만든 폴더를 사용해야 하는 경우에는 고급 구성을 확장하고 기존 폴더의 경로 지정을 선택한 후에 관리자가 만든 폴더의 상대 경로를 지정합니다.
경로 확인을 선택하고 경로가 올바른 경우 다음을 선택합니다.
Lab Management
Lab Management는 컬렉션에 대해 Lab Management를 사용하도록 응용 프로그램 계층을 구성한 경우에 표시되며 그렇지 않으면 사용하지 않도록 설정됩니다. 나중에 Lab Management를 구성하려면 SCVMM 환경에 대해 Lab Management 구성을 참조하세요.
Lab Management를 사용하지 않는 경우 확인 프로세스로 건너뜁니다.
Lab Management를 사용하는 경우에 SCVMM 환경에 대해 Lab Management 구성에서 설명하는 대로 각 팀 프로젝트 컬렉션에 대해 Lab Management를 구성하려면 에 제공된 단계를 따릅니다.
확인 프로세스
준비 검사에서 검사 상태를 확인합니다.
구성에 오류가 있으면 해당 구성 옆에 파란색 밑줄이 있는 오류 표시기가 나타납니다. 문제에 대한 자세한 메시지 표시기를 선택할 수 있습니다. 작업을 계속 진행하려면 모든 오류를 해결해야 합니다.
준비 검사를 모두 통과한 후 만들기를 선택합니다.
팀 프로젝트 컬렉션을 만드는 프로세스가 시작됩니다.
마법사를 마친 후 닫기를 선택합니다.
팀 프로젝트 컬렉션 삭제 또는 분리
컬렉션 이동 또는 분할 등의 유지 관리 작업을 수행하려는 경우 팀 프로젝트 컬렉션을 분리합니다. 컬렉션을 분리하면 팀이 팀 프로젝트나 소스 코드에 액세스할 수 없습니다.
컬렉션에 정의된 팀 프로젝트에 저장되어 있는 데이터가 더 이상 필요하지 않으면 컬렉션을 삭제합니다. 컬렉션을 삭제하는 세 단계는 (1) 컬렉션 분리, (2) 컬렉션 데이터베이스 삭제, 그리고 (3) 삭제된 컬렉션을 지원하는 SharePoint 사이트 컬렉션 삭제입니다.
컬렉션 분리
관리 콘솔에서 삭제하려는 컬렉션의 이름을 강조 표시하고 컬렉션 분리를 선택합니다.
팀 프로젝트 컬렉션 분리 마법사에서 제공하는 지침을 따릅니다.
(옵션) 팀 프로젝트 컬렉션에 대한 서비스 메시지를 제공하십시오. 페이지의 서비스 메시지에서 이 컬렉션의 프로젝트에 대한 연결을 시도하는 사용자를 위한 메시지를 지정합니다.
모든 준비 검사가 성공적으로 완료된 경우 분리를 선택합니다.
팀 프로젝트 컬렉션 분리 진행률을 모니터링하십시오. 페이지에서 모든 프로세스가 완료된 경우 다음을 선택합니다.
(옵션) 이 팀 프로젝트 컬렉션에 대한 보충 정보를 검토하십시오. 페이지에서 로그 파일의 위치를 확인합니다.
데이터베이스 및 SharePoint 사이트 모음 삭제
SQL Server Management Studio를 열고 컬렉션 데이터베이스를 호스팅하는 SQL Server 데이터베이스 엔진의 인스턴스에 연결한 다음 해당 인스턴스를 확장합니다.
컬렉션 데이터베이스의 이름(기본적으로 TFS_CollectionName)을 강조 표시하고 해당 데이터베이스를 삭제합니다.
자세한 내용은 방법: 데이터베이스 삭제를 참조하세요.
SharePoint 중앙 관리를 열고 삭제된 컬렉션을 지원하던 사이트 컬렉션을 삭제합니다.
자세한 내용은 SharePoint 2013에서 사이트 모음 삭제를 참조하세요.
팀 프로젝트 컬렉션이 관리 콘솔의 컬렉션 목록에 더 이상 나타나지 않습니다.
Q & A
Q: 여러 팀 프로젝트 컬렉션을 만드는 경우의 장단점은 무엇인가요?
개발 과정에서 코드 분기 및 병합 기능을 사용하면 유용하거나 같은 코드와 관련된 작업 항목의 상태를 쿼리해야 하는 경우에는 팀 프로젝트를 같은 팀 프로젝트 컬렉션에 통합해야 합니다.
A: 컬렉션을 두 개 이상 만드는 경우의 장점
각 코드베이스 또는 기타 프로젝트 그룹의 운영 요구 사항을 더 효율적으로 구분할 수 있습니다. 각 컬렉션의 데이터가 자체 데이터베이스에 저장되므로 배포의 다른 컬렉션과는 별도로 각 컬렉션의 다양한 측면을 독립적으로 관리할 수 있습니다. 예를 들어 각 컬렉션을 개별적으로 중지 및 시작할 수 있습니다. 따라서 각 컬렉션의 유지 관리 작업을 각기 다른 시간에 진행하도록 일정을 예약할 수 있습니다.
팀 프로젝트를 둘 이상의 컬렉션으로 그룹화하는 경우 다음과 같은 장점이 있습니다.
데이터베이스와 리소스를 관리 및 배포하는 과정의 유동성과 확장성을 높일 수 있습니다. 관련 팀 프로젝트 그룹이 보고서, 작업 항목, 프로세스 지침 및 코드베이스를 공유합니다.
각 컬렉션에 대해 데이터베이스를 만들면 팀과 관리자가 다음 작업을 수행할 수 있습니다.
컬렉션 내의 프로젝트 요구 사항에 따라 자치 코드베이스를 빌드, 분기, 병합 및 반복할 수 있습니다. 컬렉션 외부의 코드 종속성을 체계적으로 관리할 수 있습니다.
다른 컬렉션과 독립적으로 각 컬렉션에 대해 데이터를 백업 및 복원할 수 있습니다.
단일 SQL Server 인스턴스에 모든 컬렉션 데이터베이스를 저장하거나 하나 이상의 인스턴스로 데이터베이스를 분산시킵니다.
컬렉션을 분리하고 백업한 다음 다른 TFS 배포로 복원합니다.
시간이 경과함에 따라 프로젝트 크기가 커지면 프로젝트 수요를 더 효율적으로 충족하기 위해 리소스를 다시 할당합니다.
운영상의 보안이 개선됩니다. 각 컬렉션에는 고유한 사용자 및 권한 집합이 있으므로 컬렉션마다 서로 다른 코드베이스를 격리할 수 있습니다. 관리자는 특정 코드베이스에 관련된 프로젝트를 하나 이상 포함하는 컬렉션에만 사용자를 추가할 수 있습니다.
사용자 지정 워크플로 프로세스를 지원하는 기능이 개선됩니다. 각 컬렉션은 프로세스 템플릿, 작업 항목 형식, 링크 형식, 전역 목록 및 작업 항목 필드를 다른 컬렉션과 별도로 관리합니다. 다른 워크플로 프로세스를 포함하는 팀 프로젝트를 다른 컬렉션으로 분리하면 컬렉션 내의 팀 프로젝트에 필요한 사용자 지정 내용만 표시됩니다.
A: 컬렉션을 두 개 이상 만드는 경우의 단점
둘 이상의 팀 프로젝트 컬렉션을 만드는 경우의 가장 큰 단점은 TFS 배포가 더 복잡해진다는 것입니다.
각 컬렉션의 데이터베이스를 개별적으로 백업 및 복원해야 할 뿐만 아니라 컬렉션의 수에 비례하여 기타 유지 관리 작업의 양도 많아집니다. 예를 들어 각 팀 프로젝트 컬렉션에 대한 사용자 및 권한 집합을 개별적으로 관리해야 합니다.
팀에서 컬렉션 간에 작업 항목을 연결할 수 없습니다.
팀에서 컬렉션 간에 코드를 분기하거나 병합할 수 없습니다.
팀에서 컬렉션 간에 쿼리를 만들 수 없습니다.
Q: 컬렉션 수준에서 관리되는 개체나 리소스는 무엇인가요?
A: 각 팀 프로젝트는 컬렉션에 속합니다. 또한 다음 개체도 컬렉션 수준에서 관리됩니다.
소스 제어(TFVC): 파일 형식 및 서버 작업 영역에서 비동기 체크 아웃 사용/사용 안 함
작업 항목 추적: 프로세스 템플릿, 작업 항목 형식, 링크 형식, 작업 항목 필드, 전역 목록 및 전역 워크플로
컬렉션 내에 정의된 모든 팀 프로젝트에 대해 정의되는 모든 필드는 컬렉션에 대해 관리 또는 구성됩니다. 같은 팀 프로젝트 컬렉션에서 작업 항목 필드는 1,024개까지만 정의할 수 있으며 모든 팀 프로젝트 컬렉션에서 필드를 1,024개까지만 보고 가능하도록 설정할 수 있습니다.
Dev-Test-Ops: 빌드 컨트롤러 및 Lab management 리소스(SCVMM의 호스트 그룹 및 라이브러리 공유)
Q: TFS는 다른 팀 컬렉션용으로 저장된 데이터의 보고서를 어떤 방식으로 지원하나요?
A: 단일 관계형 데이터 웨어하우스에는 TFS 배포의 모든 프로젝트 컬렉션에서 정의되는 모든 팀 프로젝트의 모든 보고 가능 데이터가 포함되어 있습니다. 그러면 해당 웨어하우스의 데이터가 처리되어 OLAP 큐브에 기록됩니다. 데이터가 단일 데이터 웨어하우스로 수집되므로 여러 팀 프로젝트 컬렉션에 대해 보고할 수 있습니다.
보고서를 만들거나 사용자 지정하려면 TfsWarehouseDataReader 역할에 사용자 계정을 추가해야 합니다. 보고서 작성자에게는 관계형 데이터 웨어하우스 및 Analysis Services 큐브 둘 다에 대한 읽기 액세스 권한이 필요합니다. 이러한 계정은 TFS 배포의 모든 팀 프로젝트 컬렉션에서 호스트되는 모든 팀 프로젝트의 데이터를 볼 수 있습니다. 팀 프로젝트 또는 컬렉션에 대한 액세스를 제한하는 방법은 없습니다.
Q: 컬렉션을 사용하여 배포를 확장하려면 어떻게 해야 하나요?
A: 팀 프로젝트 컬렉션 이동 또는 팀 프로젝트 컬렉션 분할를 참조하세요.
Q: 컬렉션을 관리하기 위한 명령줄 도구가 있나요?
A: TFSConfig Collection 명령을 사용하여 팀 프로젝트 컬렉션을 연결, 분리, 삭제 또는 복제할 수 있습니다. 수집 명령[TFSConfig]을 참조하세요.