태터데스크 관리자

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

태터데스크 메시지

저장하였습니다.

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