태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.

VS 2013 ALM/TFS 20132014.12.05 19:36

[프로페셔널 TFS 간단정리] 5장. 버전 제어 개요(2) - 버전 제어 제품들

이 장에서는 일반적으로 사용되는 버전 제어 제품들의 장, 단점에 대해 알아본다.

 

1. 버전 제어 제품들

1.1. Microsoft VIsual SourceSafe 

장점

단점 

설치와 사용이 쉽다. 

더 이상 개발되지 않으며 지원이 종료되었다. 

개발 도구를 광범위하게 지원한다.

WAN 환경에서는 잘 실행되지 않는다.

업계에 널리 채택되었다.

트랜잭션 없이 체크인하기 때문에 원자성이 보장되지 않는다.

 

분기 기능이 매우 제한적이다(공유 기능을 통해 제공한다).

 

1.2. Apache Subversion 

장점

단점 

오픈 소스로 무료로 사용할 수 있다.

소스 폴더 내에 .svn 디렉터리를 사용해서 로컬 작업 사본의 상태를 저장하고 서버와 동기화한다. 이는 로컬 소스 트리를 오염시킬 수 있으며 매은 큰 프로젝트나 파일의 경우 성능 이슈가 있을 수 있다.

오픈 소스 프로젝트에서 널리 사용된다.

파일 이름 변경을 복사 및 삭제 작업으로 처리한다. 이는 병합할 때 문제가 발생할 수 있다. 

다양한 운영체제에서 동작한다.

윈도우 환경에서는 인증 구성 및 특정 관리 기능 실행이 어려울 수 있다.

모든 플랫폼의 개발 도구를 광범위하게 지원한다.

보류 기능이 없다. 

 

1.3. Microsoft Team Foundation Server 

장점 

단점 

버전 제어 이상의 기능(작업 항목 추적, 빌드, 보고 등)을 제공한다.

오프라인 기능이 향상되었지만, 여전히 Git과 같은 분산 버전 제어 도구만큼 강력하지 않다. 

Visual Studio와 Eclipse용 클라이언트를 Microsoft가 직접 제공한다. 

코드에 체크 인하고 팀원들과 협업하려면 서버를 설치해야 한다. 그러나 VSO(Visual Studio Online, http://tfs.visualstudio.com) 를 이용하면 별도의 설치없이 가능하다.

중앙집중식 보안 관리, Active Directory 통합 인증, 단일 로그온(SSO), SharePoint 통합과 같은 기업 환경을 위한 기능을 제공한다.

서버는 윈도우 플랫폼에서만 실행된다. 그러나 클라이언트는 크로스 플랫폼을 지원한다.

높은 확장성을 가진다.

 

로컬의 변경 내용을 메인 코드 저장소에 커밋하지 않고도 서버에 저장할 수 있는 보류 집합(shelveset) 기능이 있다.

 

저장소에 커밋하기 전에 통과해야 하는 체크 인 정책을 제공한다.

 

제어된 체크 인(gated check-in) 기능을 사용하여 메인 저장소에 커밋하기 전에 빌드 자동화를 실행할 수 있다.

 

모든 데이터는 보안과 백업 용이성을 위해 SQL Server 데이터베이스에 저장된다.

 

 

감사합니다.

webmars.

 

 

 

Posted by webmars
VS 2013 ALM/TFS 20132014.12.05 19:31

[프로페셔널 TFS 간단정리] 5장. 버전 제어 개요(1) - 핵심 개념

이 장에서는 특정 버전 제어 도구와 상관없이 일반적으로 사용되는 기본 개념과 기능에 대해 설명한다.

 

1. 버전 제어란?

버전 제어(version control)을 의미하는 용어는 다양하다: 소스 제어(source control), 리비전 제어(revision control), 소프트웨어 형상관리(SCM).

버전 제어 시스템의 주요 기능

  • 소프트웨어 프로젝트를 빌드하는데 필요한 소스 코드, 이미지, 빌드 스크립트 등의 저장소
  • 이러한 파일들의 변경 기록을 추적하고, 특정 시점의 파일 상태를 조회
  • 같은 프로젝트를 수행하는 다른 팀원들과의 협업을 위한 도구와 메커니즘

 

2. 버전 제어 시스템의 핵심 개념

개념

설명

저장소(repository)

일반적으로 코드는 컴퓨터 내의 저장소에 저장된다. 저장소는 파일 시스템의 디렉터리 구조와 비슷하다. 그러나 파일의 변경 내용을 추적하고 다른 팀원들과 공유할 수 있다는 점에서 파일 시스템과는 다르다.

작업 사본(working copy)

저장소에 있는 파일들은 개발자 컴퓨터의 로컬 영역에도 있어야 한다. 이 로컬 버전을 TFS에서는 작업 영역(workspace)라고 하며, 다른 시스템에서는 샌드박스(sand box) 또는 작업 사본(working copy)라고도 한다.

작업 폴더 매핑(working folder mapping)

작업 폴더 매핑(working folder mapping)은 저장소 내의 파일 저장 위치와 로컬 시스템 내의 작업 사본 위치를 연결해주는 링크를 말한다. 작업 디렉터리(working directory), 작업 영역 매핑(workspace mapping) 또는 샌드박스(sandbox) 등도 작업 폴더 매핑을 의미한다.

가져오기(get)

저장소에서 로컬 컴퓨터로 파일을 다운로드하는 것을 TFS에서는 가져오기라고 한다. 동일한 과정을 CVS나 SVN에서는 체크아웃(check ou)이라고 한다. Git과 같은 분산 버전 제어 시스템에서는 저장소에서 개발 파일 대신 저장소를 통째로 복제한다.

추가하기(add)

로컬 컴퓨터에서 파일과 폴더를 저장소에 추가하여 다른 팀원들과 공유한다. 이때 소스 코드를 컴파일한 바이너리 파일, 빌드할 때마다 개발 도구가 생성하는 파일 등은 공유할 필요가 없다.

체크아웃(checkout)

파일을 편집하려 할 때, 해당 파일을 사용하겠다고 서버에 통보하여 다른 팀원들이 알 수 있게 하는 작업을 TFS에서는 체크아웃이라고 한다. CVS나 SVN에서의 체크아웃은 저장소의 파일을 다운로드해서 로컬에 작업 사본을 만드는 것을 의미한다.

변경 집합(changeset)

로컬 컴퓨터에서 체크아웃하고 편집한 다음 저장소에 저장할 대상이 되는 파일들을 변경 집합, 커밋(commit) 또는 변경 목록(changelist)라고 한다.

체크 인(check-in) 

로컬 컴퓨터에서의 변경 내용을 다른 팀원들과 공유하기 위해 저장소에 변경 집합을 커밋한다. 이를 TFS에서는 체크인(check-in)이라고 한다. 다른 도구에서는 커밋(commit)과 같은 용어를 사용하기도 한다. 

기록(history)

버전 제어 시스템은 시간에 따라 폴더나 파일에 어떤 변화가 있었는지 모든 것을 기록한다. 이 기록을 통해 고객에게 어떤 코드가 전달됐는지, 이 코드가 왜 지금처럼 작성됐는지, 과거에 특정 기능을 누가 구현했는지 등을 알 수 있다. 

분기 및 병합(branching and merging) 

분기는 저장소에 있는 파일들의 복사본이다. 분기를 하면 둘 이상의 팀이 동시에 같은 프로젝트를 수행할 수 있다. 어떤 분기에서 다른 분기로 변경 내용을 합치는 것을 병합이라고 한다.

 

3. 버전 제어 제품들

3.1. Microsoft VIsual SourceSafe 

장점

단점 

설치와 사용이 쉽다. 

더 이상 개발되지 않으며 지원이 종료되었다. 

개발 도구를 광범위하게 지원한다.

WAN 환경에서는 잘 실행되지 않는다.

업계에 널리 채택되었다.

트랜잭션 없이 체크인하기 때문에 원자성이 보장되지 않는다.

 

분기 기능이 매우 제한적이다(공유 기능을 통해 제공한다).

 

3.2. Apache Subversion 

장점

단점 

오픈 소스로 무료로 사용할 수 있다.

소스 폴더 내에 .svn 디렉터리를 사용해서 로컬 작업 사본의 상태를 저장하고 서버와 동기화한다. 이는 로컬 소스 트리를 오염시킬 수 있으며 매은 큰 프로젝트나 파일의 경우 성능 이슈가 있을 수 있다.

오픈 소스 프로젝트에서 널리 사용된다.

파일 이름 변경을 복사 및 삭제 작업으로 처리한다. 이는 병합할 때 문제가 발생할 수 있다. 

다양한 운영체제에서 동작한다.

윈도우 환경에서는 인증 구성 및 특정 관리 기능 실행이 어려울 수 있다.

모든 플랫폼의 개발 도구를 광범위하게 지원한다.

보류 기능이 없다. 

 

3.3. Microsoft Team Foundation Server 

장점 

단점 

버전 제어 이상의 기능(작업 항목 추적, 빌드, 보고 등)을 제공한다.

오프라인 기능이 향상되었지만, 여전히 Git과 같은 분산 버전 제어 도구만큼 강력하지 않다. 

Visual Studio와 Eclipse용 클라이언트를 Microsoft가 직접 제공한다. 

코드에 체크 인하고 팀원들과 협업하려면 서버를 설치해야 한다. 그러나 VSO(Visual Studio Online, http://tfs.visualstudio.com) 를 이용하면 별도의 설치없이 가능하다.

중앙집중식 보안 관리, Active Directory 통합 인증, 단일 로그온(SSO), SharePoint 통합과 같은 기업 환경을 위한 기능을 제공한다.

서버는 윈도우 플랫폼에서만 실행된다. 그러나 클라이언트는 크로스 플랫폼을 지원한다.

높은 확장성을 가진다.

 

로컬의 변경 내용을 메인 코드 저장소에 커밋하지 않고도 서버에 저장할 수 있는 보류 집합(shelveset) 기능이 있다.

 

저장소에 커밋하기 전에 통과해야 하는 체크 인 정책을 제공한다.

 

제어된 체크 인(gated check-in) 기능을 사용하여 메인 저장소에 커밋하기 전에 빌드 자동화를 실행할 수 있다.

 

모든 데이터는 보안과 백업 용이성을 위해 SQL Server 데이터베이스에 저장된다.

 

 

감사합니다.

webmars.

 

 

 

Posted by webmars
VS 2013 ALM/TFS 20132014.11.24 10:29

[프로페셔널 TFS 간단정리] 4장. Team Foundation Server에 연결

이 장에서는 Team Foundation Server 클라이언트에 대해 알아봅니다.

 

1. Visual Studio 팀 탐색기

Visual Studio 팀 탐색기는 모든 Visual Studio 에디션에 기본적으로 포함되어 있는 클라이언트이다.

Team Foundation Server 2013과 Visual Studio 간의 호환성은 다음과 같다.

 

2. Team Explorer Everywhere

Team Explorer Everywhere(TEE)는 Eclipse IDE와 크로스 플랫폼(Mac, Unix, Linux) 용 클라이언트이다.

Team Explorer Everywhere(TEE)는 두 가지 주요 도구로 구성되어 있다.

  1. Eclipse 용 Team Foundation Server  플러그인
  2. Team Foundation Server 크로스 플랫폼 명령줄 클라이언트

 

TEE는 TFS 2013, 2012, 2010, 2008 및 Visual Studio Online에서 사용할 수 있다.

TEE는 Java로 구현되어 Windows 뿐만 아니라 Mac OS X, Unix 진영(예, Linux, HP-UX, Solaris, AIX) 등의 주용 플랫폼을 지원한다.

 

3. Team Web Access

Team Web Access는 웹 기반 클라이언트로 웹 브라우저를 통해 TFS에 액세스할 수 있다. 따라서 TFS 전용 클라이언트를 설치하지 않으려는 사용자에게 적합하다.

이 클라이언트는 기본적으로 http://<tfs이름>:8080/tfs/web에 설치된다.

 

4. Microsoft Excel과 Project

팀 탐색기를 설치하면 Mcrosoft Excel 및 Project의 리본 메뉴에 팀 메뉴가 추가된다.

팀 리본 메뉴에서 TFS에 연결할 수 있으며, 쿼리를 사용하여 작업 항목을 조회, 편집, 추가할 수 있다.

Excel에서는 현재 상태 및 과거의 추세를 분석하기 위해 Excel 통합 문서에 여러 유형의 보고서를 생성할 수 있다.

TFS 2012부터는 Project Server와의 통합 기능이 포함되어 있어, 양 서버 간의 작업 동기화가 가능하다.

 

5. Windows 탐색기

Team Foundation Server Power Tools의 일부로 Windows 쉘 통합 기능을 설치할 수 있다. 이 기능이 설치되면, Windows 탐색기에서 TFS의 버전 제어 메뉴에 접근할 수 있다.

이는 Visual Studio 또는 Eclipse 이외의 환경에서 TFS와 함께 작업하고자 할 때 유용하다.

 

감사합니다.

webmars.

 

 

 

 

Posted by webmars
VS 2013 ALM/TFS 20132014.11.21 18:33

[프로페셔널 TFS 간단정리] 3장. 설치 및 구성

이 장에서는 Team Foundation Server를 구성하는 유형에 대해 설명한다.

TFS 설치는 MSDN의 TFS 설치 가이드를 참고한다.

 

1. 기본(Basic)

TFS를 가장 빠르고 쉽게 설치할 수 있는 방법으로 소규모 팀에게 적합하다. 단, 보고서 서비스 및 SharePoint 통합 기능은 사용할 수 없다. 만약 TFS를 Windows Server에 설치한 경우라면 나중에 이 두 가지 구성요소를 추가할 수는 있다.

 

2. 표준 단일 서버 (Standard Single Server)

한 대의 서버에 Team Foundation Server를 설치할 때 사용한다. TFS의 모든 기능뿐만 아니라 보고서 서비스 및 SharePoint 통합 기능도 사용할 수 있다. 단, 원격 서버에 설치된 SharePoint나 SQL Server를 사용하려 할 경우에는 이 유형을 사용해서는 안 된다.

 

3. 고급 (Advanced)

표준 단일 서버와 마찬가지로 TFS의 모든 기능뿐만 아니라 보고서 서비스 및 SharePoint 통합 기능을 제공한다.  SharePoint, SQL Server, SQL Server Reporting Service를 원격 서버에 구성할 수 있다.

 

감사합니다.

webmars.

Posted by webmars
VS 2013 ALM/TFS 20132014.11.21 17:10

[프로페셔널 TFS 간단정리] 2장. 배포 계획(2) - 프로젝트 컬렉션 및 팀 프로젝트를 나누는 방식

이 장에서는 팀 프로젝트 컬렉션 또는 팀 프로젝트를 어떤 기준으로 나누어야 하는지에 대해 설명한다.

 

1. 팀 프로젝트 컬렉션을 나누는 방식

팀 프로젝트 컬렉션은 밀접하게 관련된 팀 프로젝트들을 하나로 묶는 그룹이다. 팀 프로젝트 컬렉션을 나눌 때는 기본적으로 제품 또는 관련 응용프로그램 군을 고려한다. 예를 들어, 제품 간에 코드 공유를 전혀하지 않는 제품들에 대해서는 서로 다른 팀 프로젝트 컬렉션을 만들고, 코드 재사용성이 높거나 프레임워크를 서로 공유하는 제품들에 대해서는 단일 팀 프로젝트 컬렉션을 사용한다.

 

2. 팀 프로젝트를 나누는 기준

일반적으로 팀 프로젝트는 "여러분이 생각하는 것보다 크다". 다음은 팀 프로젝트의 범위를 설정하는데 사용되는 일반적인 세 가지 방식이다.

A. 응용프로그램 별 팀 프로젝트

응용프로그램 별로 팀 프로젝트를 각각 만든다. 이는 가장 일반적인 방식이며, 가장 먼저 고려해봐야 할 방식이다.

B. 릴리즈 별 팀 프로젝트

아주 큰 규모의 팀이 프로젝트를 오랜 기간 동안 진행할 경우에 효과적이다. 특히 독립 소프트웨어 벤더(ISVs)에 적합하다. 사실 Microsoft에서도 많은 제품에 이 방식을 적용하고 있다.

C. 팀 별 팀 프로젝트

팀원이 50명 이하인 적은 규모의 팀으로써 팀원 수에 거의 변화가 없지만, 그들이 관리하는 응용프로그램이 계혹해서 변화하는 경우에 적합하다.

 

감사합니다.

webmars.

Posted by webmars
VS 2013 ALM/TFS 20132014.11.20 17:47

[프로페셔널 TFS 간단정리] 2장. 배포 계획(1) - TFS 제한사항

이 장에서는 Team Foundation Server와 관련된 제한사항에 대해 알아본다.

 

1. 팀 프로젝트 이름 변경

팀 프로젝트를 생성한 이후에는 이름을 변경할 수 없다. 그러나 팀 프로젝트 컬렉션은 이름을 변경할 수 있다.

 

2. 작업 항목 이동

다른 팀 프로젝트로 작업 항목을 이동시킬 수 없다. 대신 작업 항목을 복사해야만 한다. 작업 항목을 복사하면 동일한 필드의 값들은 그대로 복사가 된다. 단, 상황(state)는 복사가 되지 않는다.

 

3. Office Excel, Project, Project Server에서 여러 팀 프로젝트의 작업 항목 관리

Microsoft Office Excel과 Project에서는 여러 팀 프로젝트의 작업 항목을 조회, 편집, 추가할 수 없다.

TFS와 Project Server는 양방향 동기화를 할 수 있는데, Project Server의 엔터프라이즈 프로젝트 계획은 오직 하나의 팀 프로젝트에만 매핑되지만, 하나의 팀 프로젝트에는 여러 개의 엔터프라이즈 프로젝트 계획이 매핑될 수 있다.

 

4. 팀 및 용량 계획 관리

Team Web Access의 용량 계획 도구는 오직 같은 팀 프로젝트 내의 작업에 대해서만 계획을 세울 수 있다.

 

5. 여러 팀 프로젝트의 분기에 걸쳐있는 병합된 변경 내용 추적

팀 프로젝트 경계에 걸쳐있는 분기에 대해서는 분기 시각화 및 병합된 변경 내용 추적 시각화 기능을 사용할 수 없다.

 

6. 팀 프로젝트 컬렉션 간 팀 프로젝트 이동

팀 프로젝트를 다른 팀 프로젝트 컬렉션으로 이동시킬 수 없다. 이를 해결할 수 있는 한 가지 방법은 팀 프로젝트 컬렉션을 분할하는 것이다. 즉, 팀 프로젝트 컬렉션 복사본을 만든 다음, 각 팀 프로젝트 컬렉션에서 필요하지 않은 팀 프로젝트 제거하는 방식이다.

 

7. 팀 프로젝트 컬렉션으로 범위가 제한된 아티팩트

하나의 팀 프로젝트 컬렉션 안에 포함된 모든 아티펙트는 다른 팀 프로젝트 컬랙션과 격리된다. 따라서 다른 팀 프로젝트 컬렉션에 있는 파일, 변경 집합, 작업 항목, 빌드 등과 연결할 수 없다.

팀 프로젝트 컬렉션에 걸친 분기 및 병합은 불가능하다.

테스트 컨트롤러와 에이전트 뿐만 아니라 빌드 컨트롤러와 에이전트는 오직 하나의 팀 프로젝트 컬렉션으로 범위가 제한된다.

여러 팀 프로젝트 컬렉션의 팀 프로젝트들에서 작업 항목을 가져오기 위한 작업 항목 쿼리를 만들 수 없다. 단, 보고서 웨어하우스는 모든 팀 프로젝트 컬렉션과 팀 프로젝트에 저장된 아티팩트의 정보를 포함하고 있기 때문에 이 모든 정보를 보여주는 사용자 지정 보고서를 만들 수 있다.

 

8. 팀 프로젝트 컬렉션 및 팀 프로젝트 개수

TFS가 설치된 서버의 하드웨어 사양에 따라 수천 개의 팀 프로젝트 컬렉션을 지원할 수도 있다. 이 제한사항은 SQL Server가 설치된 서버의 하드웨어와 더 많은 관계가 있다. 일반적으로 하나의 SQL Server 인스턴스는 30~100개 사이의 활성화된(팀에서 매일 접근하는) 팀 프로젝트 컬렉션을 지원할 수 있다. 이 범위는 SQL에서 사용할 수 있는 물리적인 메모리와 관계가 있다.

팀 프로젝트 컬렉션에 포함할 수 있는 팀 프로젝트는 프로세스 템플릿에 정의된 작업 항목 형식의 복잡도에 따라 제한된다. TFS의 표준 프로세스 템플릿(예, MSF for Agile Software Development v6.0)을 기준으로 했을 때 500개 이상의 팀 프로젝트를 지원한다.

 

감사합니다.

webmars.

 

Posted by webmars
VS 2013 ALM/TFS 20132014.11.20 17:17

[프로페셔널 TFS 간단정리] 2장. 배포 계획(1) - TFS 특징 및 도입 시 고려사항

이 장에서는 TFS를 도입할 때 고려해야 할 TFS의 특장점과 도입 단계에 대해 설명한다.

 

Team Foundation Server(이하 TFS)는 소프트웨어 개발팀을 위해 통합된 형태로 협업 기능을 제공하는 제품이다. TFS에서 제공하는 협업 기능은 다음과 같다.

  • 프로젝트 관리
  • 작업 항목 추적
  • 버전 제어
  • 테스트 사례 관리
  • 빌드 자동화
  • 보고서
  • 가상 환경 및 랩(Lab) 관리
  • 피드백 관리

 

1. TFS 특장점

1.1. 릴리즈 및 프로젝트 투명성

소프트웨어 개발 수명 주기의 시작부터 끝까지의 다양한 결과물(소스 코드, 요구사항, 빌드, 테스트, 문서 등)을 모두 저장하며, 결과물 간의 관계를 처음부터 마지막까지 보여준다.

 

1.2. 여러 팀 및 역할 간의 협업

TFS에 저장된 소프트웨어 프로세스의 다양한 결과물에 대한 정보와 변경 이력을 손쉽게 확인할 수 있기 때문에 원활한 협업이 가능하다.

 

1.3. 컴파일, 테스트, 패키지, 배포 자동화

빌드 자동화 기능을 통해 빌드 프로세스의 복잡도를 낮출 수 있으며, 빌드 절차를 주기적으로 또는 개발자가 적용한 변경사항에 의해 반복적으로 수행되도록 전환할 수 있다.

 

1.4. 테스트 계획 관리

테스트 사례를 관리할 수 있으며, 릴리즈 주기 동안 테스트 수행 과정을 관리할 수도 있다.

 

1.5. 병렬 개발

이전 릴리즈 버전, 현재 릴리즈 버전, 차기 릴리즈 버전 등 여러 개의 버전을 관리하고, 각각의 버전에 수정된 코드를 통합하는데 필요한 시간과 오류를 줄일 수 있는 분기 및 병합 도구를 제공한다. 이 도구를 통해 언제 어떻게 코드가 변경되었는지 알 수 있으며, 어떤 분기에 변경사항이 통합되었는지도 쉽게 알 수 있다.

 

2. 도입 시 고려사항

2.1. 단계적 도입

팀의 역량 및 내부 상황을 고려하여 여러 단계에 걸쳐서 TFS의 각 부분별로 도입하는 것이 가장 효과적이다. TFS 부분별 도입 단계는 일반적으로 다음과 같다. 그러나 반드시 이 단계를 따라야 하는 것은 아니며, 팀의 핵심 문제를 해결하는데 가장 필요한 기능부터 도입하는 것이 중요하다.

  • 1단계: 버전 제어
  • 2단계: 작업 항목 추적
  • 3단계: 빌드 자동화
  • 4단계: 테스트 사례 관리
  • 5단계: 보고서
  • 6단계: 가상 환경 및 랩(Lab) 관리

 

2.2. TFS 설치 서버

소프트웨어 개발을 위주로 하는 조직에서는 버전 제어 저장소가 작업을 완료하는데 아주 중요하다. 따라서 TFS는 조직의 다른 중요 업부 응용프로그램과 같은 수준으로 취급되어야 한다.

TFS는 한 대의 서버 또는 다중 서버에 호스트될 수 있다. 각 서버는 물리적 메모리, 디스크, CPU 등 충분한 자원을 가져야 한다.

만약 업그레이드, 구성 변경, 교육 등을 진행할 경우에는 테스트 용 TFS를 사용해야 한다.

 

2.3. TFS 관리자

TFS 환경을 구성하고 상태를 책임질 인원을 식별해야 한다. 일반적으로 TFS 관리 업무는 회사 내의 타 업무와 병행하여 수행하도록 하며, 여의치 않을 경우 외부 전문 회사에 TFS 관리 서비스를 의뢰하기도 한다.

 

2.4. 파일럿 프로젝트

TFS를 새로 도입하거나 커스터마이징을 해야 할 부분을 찾아내고자 할 때는 미리 테스트하는 것이 좋으며 이를 위한 소규모 팀 프로젝트를 식별해야 한다. 이와 같이 파일럿 프로젝트를 수행함으로써 도움이 될 수 있는 많은 정보를 얻을 수 있다.

 

감사합니다.

webmars.

Posted by webmars
VS 2013 ALM/TFS 20132014.01.07 17:55

TFS의 작업 항목 필드 중 담당자(Assigned To)에는 기본적으로 TFS에 등록된 모든 사용자의 이름이 표시됩니다.

사용자 수가 적을 때는 별 문제가 없지만, 몇 십 명에서 몇 백 명 이상이 되면 너무 많은 사용자 이름이 표시되기 때문에 특정 사용자를 찾는게 쉽지 않습니다.

물론 오름차순으로 정렬이 되어 있으서 스크롤을 쭈~욱 내리면서 찾으면 되겠지만, 그래도 매번 그 많은 사용자 중에서 스크롤을 내려가면서 특정 사용자를 찾는다는게 여간 귀찮은 작업이 아니죠.

만약 담당자 필드에 특정 그룹 또는 특정 팀의 멤버만 표시되도록 할 수 있다면 좀 더 편리하겠죠?

 

이 글에서는 담당자 필드에 TFS의 특정 그룹 멤버만 표시되도록 하는 방법에 대해 알아보려고 합니다.

 

먼저 담당자 필드에 어떤 규칙이 설정되어 있길래 TFS에 등록된 모든 사용자의 이름이 표시되는지부터 살펴보겠습니다.

다음은 작업(Task) 작업 항목 형식 정의 중 담당자 필드가 정의된 부분입니다.

<FIELD name="담당자" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
    <ALLOWEXISTINGVALUE/>
    <VALIDUSER/>
</FIELD>

['작업' 작업 항목 형식 - Visual Studio Scrum 2013 (한글)]

 

담당자 필드에는 'ALLOWEXISTINGVALUE'와 'VALIDUSER' 두 개의 규칙이 설정되어 있습니다.

각 규칙에 대해 잠깐 살펴볼까요?

  • ALLOWEXISTINGVALUE: 허용된 값이 아니더라도 기존의 값을 그대로 유지하도록 합니다.
  • VALIDUSER: TFS에 등록된 사용자만 입력할 수 있도록 지정합니다.

 

위의 규칙 중에서 VALIDUSER 규칙에 의해서 담당자 필드에 TFS 사용자 목록이 표시됩니다.

 

따라서 담당자 필드에 특정 그룹 멤버만 표시되도록 하기 위해서는 VALIDUSER 규칙을 제거하고 다른 규칙을 설정해야 합니다.

 

필드의 규칙 중에는 ALLOWEDVALUES라는 규칙이 있습니다.

이 규칙은 필드에 사용할 수 있는 값의 목록을 지정하고, 그 목록에서 선택할 수 있는 값만 허용하고자 할 때 사용합니다.

예를 들어, 위험도 필드에 High/Medium/Low 값 중 하나만 입력하게 하고 싶을 때는 그 필드에 ALLOWEDVALUES 규칙을 설정하고 허용되는 값을 High/Medium/Low로 지정합니다.

만약 ALLOWEDVALUES 목록에 없는 값을 입력하고 저장하려고 하면 오류 메시지가 표시됩니다.

 

자 이제 담당자 필드에 특정 그룹 멤버만 표시되도록 하기 위해 ALLOWEDVALUES 규칙을 적용해 보겠습니다.

그리고 허용되는 값으로 팀 프로젝트의 기본 그룹인 Contributors 그룹의 멤버를 지정해 보겠습니다.

다음은 이와 같은 규칙을 적용한 후의 담당자 필드 정의 부분입니다.

      <FIELD name="담당자" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
        <ALLOWEXISTINGVALUE />
        <ALLOWEDVALUES expanditems="true" filteritems="excludegroups">
          <LISTITEM value="[project]\Contributors" />
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name 

 

여기서 주의해야 할 점은 [project]에서 project를 팀 프로젝트 이름으로 대체하는 것이 아니라 있는 그대로 '[project]'라고 명시해야 한다는 것입니다.

 

이렇게 ALLOWEDVALUES 규칙을 적용하면 담당자 필드에는 해당 팀 프로젝트의 Contributors 그룹에 포함된 사용자들만 표시가 됩니다.

 

눈치를 채셨겠지만, 'Contributors' 대신 어떠한 팀 프로젝트의 그룹(예를 들면, Project Administrators, Readers 등)을 지정해도 됩니다.

또한 다음과 같이 TFS 2012부터 추가된 (Team)을 지정할 수도 있습니다.

      <FIELD name="담당자" refname="System.AssignedTo" type="String" syncnamechanges="true" reportable="dimension">
        <ALLOWEXISTINGVALUE />
        <ALLOWEDVALUES expanditems="true" filteritems="excludegroups">
          <LISTITEM value="[project]\ScrumTeamA" />
        </ALLOWEDVALUES>
      </FIELD>
      <FIELD name 

 

이상으로 담당자 필드에 특정 그룹 사용자만 표시하는 방법에 대해 살펴보았습니다.

 

감사합니다.

webmars.

 

Posted by webmars
VS 2013 ALM/TFS 20132014.01.03 17:10

TFS 버전 제어 기능 중에 레이블(label)이라는게 있습니다. 흔히 '라벨'이라 부르는 것이지요.

이 기능은 소스 코드의 베이스라인(또는 스냅숏)을 설정하는데 활용됩니다.

예를 들어, 2014년 1월 3일 배포한 DLL 및 EXE를 빌드하는데 사용된 소스 코드들에 대해 레이블을 적용해 두면, 향후에 레이블을 이용하여 이 소스 코드들을 가져다가 버그를 수정하거나 새 기능을 추가하는데 편리하죠.

 

레이블은 주로 폴더에 대해 적용하게 되는데, 레이블을 적용하기 위해서는 해당 폴더에 대한 레이블 권한이 필요합니다.

그런데 레이블 권한이 적용되는 것이 우리가 일반적으로 생각하는 것과는 차이가 있습니다.

어떤 차이가 있는지 아래의 예로 설명을 해보겠습니다.

 

다음과 같은 폴더 구조가 있다고 가정해 보겠습니다.

$/MyTeamProject

/MySource

/MySolution1

/MySolution2

 

그리고 A라는 개발자가 있다고 가정해 보죠.

자, 이제 A에게 MySolution2 폴더에 대해서는 레이블 적용을 할 수 없게 하고, MySolution1 폴더에 대해서 레이블을 적용할 수 있게 하고 싶습니다.

어떻게 하면 될까요?

 

직관적으로 생각을 할 때는 MySolution1 폴더에서 A에게 레이블 권한을 부여하기만 하면 될 것 같은데요.

하지만 여기서 우리가 일반적으로 생각하는 것과의 차이가 있습니다.

 

만약 위와 같이 레이블 권한을 부여한 다음에 A가 MySoluction1 폴더에 대해 레이블을 적용하려고 하면 다음과 같은 오류 메시지가 표시됩니다.

 

루트 폴더인 $/MyTeamProject에 대해 레이블 권한이 필요하다는 메시지입니다.

레이블을 MySolution1 폴더에 적용하려고 하는데, 루트 폴더에 대한 레이블 권한이 없다는 것이지요.

 

한 가지 더 재밌는 사실이 있습니다.

만약 A에게 MySolution1 폴더에 대해서만 읽기/쓰기 권한을 부여했을 경우 즉, 그 외 다른 폴더에 대해서는 읽기/쓰기 권한이 없게 했을 경우인데요.

A에게 루트 폴더($/MyTeamProject)에 대한 레이블 권한을 부여하여 MySolution1 폴더에 레이블을 적용했다 하더라도 루트 폴더에 '읽기' 권한이 없으면 레이블을 찾을 수 없다는 것입니다.

레이블 찾기를 하면 아래와 같은 메시지가 표시됩니다.

 

따라서 특정 개발자에게 특정 폴더에 대해서만 레이블을 적용하고 나중에 그 레이블을 찾을 수 있게 하고 싶더라도 루트 폴더에 대한 레이블읽기 권한을 허용해야 한다는 것입니다.

 

왜 TFS가 이와 같이 특정 폴더에 대해 레이블을 적용하고자 할 때도 루트 폴더에 대한 레이블 권한을 요구하는지, 그리고 레이블을 찾고자 할 때도 루트 폴더에 대한 읽기 권한을 요구하는지 아직은 잘 모르겠습니다.

어떤 이유가 있을 수도 있고 아니면 버그일 수도 있겠죠.

어찌됐건 폴더 별로 개발자에 대한 레이블 권한을 다르게 관리하고자 할 때는 이와 같은 내용을 참고하셔서 적용하셔야 합니다.

 

감사합니다.

webmars.

 

 

Posted by webmars
VS 2013 ALM/TFS 20132014.01.03 10:52

지난 글(오프라인 상태에서 변경한 내용 체크 인 하기)에서 오프라인 상태에서 변경한 내용을 TFS에 체크 인 하는 방법에 대해 살펴보았는데요.

그 중에서 TFS Power Tools의 TFPT 유틸리티를 사용하는 경우에 매번 명령 프롬프트 창에서 TFPT Online 명령을 실행하는 것이 번거로울 수 있죠.

이와 같은 경우에는 TFPT Online 명령을 Visual Studio의 외부 도구로 등록하여 사용하면 편리합니다.

 

이 글에서는 Visual Studio의 외부 도구에 TFPT Online 명령을 등록해서 좀 더 편리하게 오프라인 상태에서의 변경 내용을 TFS에 체크 인하는 방법에 대해 설명합니다.

 

우선 다음과 같은 간략한 절차를 따라해 보시죠.

  1. Visual Studio 실행
  2. TOOLS > External Tools... 선택
  3. External Tools 대화 상자에서 Add 버튼 클릭
  4. Title 항목에 'TFPT ONLINE' 입력
  5. Command 항목의 ... 버튼을 클릭하여 TFPT.exe를 찾아서 선택
  6. Arguments 항목에 'Online /recursive' 입력
  7. Initial directory 항목에서 ▶ 버튼을 클릭한 다음 Solution Directory를 선택
    • Solution Directory를 선택한 경우에는 솔루션을 오픈한 상태에서 이 명령을 실행해야 합니다.
    • 만약 솔루션을 오픈하지 않은 상태에서도 이 명령을 실행하고 싶다면, 이 항목에 솔루션 폴더 경로를 직접 입력합니다(예: D:\Work\MySource\MySolution).
  8. OK 버튼 클릭

위의 절차는 (다들 아시겠지만) TFPT Online 명령을 Visual Studio의 외부 도구로 등록하는 방법입니다.

그리고, 다음 그림은 External Tools 대화 상자에서 TFPT ONLINE을 등록하는 화면입니다.

 

위의 절차를 마쳤다면 이제 Visual Studio의 TOOLS 메뉴에서 TFPT ONLINE이 정상적으로 등록되었는지 확인해 봅니다.

 

자, 이제 등록된 TFPT Online을 실행시켜 보죠.

Visual Studio에서 TOOLS > TFPT Online을 차례로 선택하여 실행시킵니다.

(TFPT ONLINE을 등록할 때 Initial directory를 $(SolutionDir)로 설정했기 때문에 솔루션이 열려 있어야 합니다.)

 

다음 그림은 TFPT Online을 실행시킨 결과 화면입니다.

 

화면에서 변경 내용을 보류 시킬 항목을 선택한 다음 Pend Changes 버튼을 클릭하면, 선택한 항목들이 Pending Changes 창에 표시됩니다.

마지막으로 Pending Changes 창에서 체크 인을 클릭하면 됩니다.

 

이상으로 TFPT Online 명령을 Visual Studio의 외부 도구로 등록하여 좀 더 편리하게 사용하는 방법에 대해 설명하였습니다.

감사합니다.

webmars.

 

Posted by webmars