IBM® Rational®Jazz™ 버전 제어 시스템은 약간 차이가 있는 다른 버전 제어 시스템과 비슷한 이름을 공유한다. 여기에서는 먼저, Jazz SCM을 구성하는 컴포넌트를 탐구하게 된다. 그 다음에는 변경을 계획하는 방법과 변경된 사항을 Jazz SCM 컴포넌트 간에 이동하는 방법을 살펴본다. 다음 다이어그램에는 모든 요소의 개요가 표시되어 있다.
그림 1. Jazz 소스 제어 관리(SCM) 다이어그램
Jazz SCM의 컴포넌트 구성은 사용 가능한 다른 SCM 시스템과 약간 차이가 있다. 계속하기 전에 이러한 컴포넌트는 어떤 것이고 그 용도는 무엇인지 이해하는 것이 중요하다.
- 변경 세트
- 변경 세트는 함께 그룹화되어 단일 유닛을 형성하는 파일 변경이나 디렉토리 변경으로 구성되는 콜렉션이다. 변경 세트는 단일 컴포넌트에 커미트되며 작업 항목과
연관되는 완전한 유닛이다. 변경 세트는 로컬 작업공간에서 변경을 체크인하여 저장소 작업공간으로 보낼 때 작성된다.
- 컴포넌트
- 컴포넌트는 모든 변경 세트의 최종 목적지이자 기준선이다. Eclipse나 Microsoft® Visual Studio를 사용하는 경우에는 파일과 디렉토리가 각각 프로젝트나 솔루션 레벨에서
컴포넌트에 공유된다.
- 스트림
- 스트림을 사용하면 사용자가 자신의 변경 세트를 컴포넌트에 전달할 수 있는 기준선과 변경 세트의 구성을 분리해서 작성할 수 있다. IBM® Rational Team Concert™ 프로젝트의
프로세스 구성에 따라 모든 사용자가 스트림이나 제한된 서브세트를 작성할 수 있다.
스트림을 사용하면 사용자가 자신의 변경 세트를 컴포넌트에 전달할 수 있는 기준선과 변경 세트의 구성을 분리해서 작성할 수 있다. Rational Team Concert 프로젝트의 프로세스 구성에 따라 모든 사용자가 스트림이나 제한된 서브세트를 작성할 수 있다.
새로 작성된 변경 세트가 전달될 때, 스트림 구성이 업데이트되어 그 전개를 반영한다. 해당 시스템은 스트림과 저장소 작업공간 구성 규칙 간의 차이점을 비교하여 스트림과 동기화를 유지하기 위해 사용자가 자신의 저장소 작업공간으로 수용해야 하는 변경 세트를 식별한다.
스트림은 스냅샷 정보용 컨테이너이기도 하다.
- 저장소 작업공간
- 저장소 작업공간은 Rational Team Concert 서버에 있는 스트로지 영역이다. 이 작업공간에는 컴포넌트와 기준선, 전달되지 않은 변경 세트와
기준선(아직 컴포넌트에 저장되지 않은)을 유지할 스토리지 및 아직 스트림으로 승격되지 않은 스냅샷용 스토리지로 이루어지는 구성이 포함되어 있다. 저장소 작업공간에
있는 변경 세트는 해당 컴포넌트로 전달될 수 있다.
- 로컬 작업공간
- 사용자의 로컬 워크스테이션에 있는 디렉토리이며, 사용자는 여기에서 저장소 작업공간을 로드한다. 사용자가 자신의 로컬 작업공간에서 수행하는 모든 변경은
식별되어, 저장소 작업공간(변경 세트로 그룹화된 변경이 있는 로드된 작업공간)으로 체크인될 후보로 강조된다.
- 기준선
- 사용자가 다른 다용자와 공유하거나 나중에 사용하기 위해 표시하고자 하는 파일이나 디렉토리 버전의 구성이 저장소 작업공간에 표시되는 경우에 기준선이
작성된다. 이러한 마커는 변경 세트가 전달되는 방법과 동일한 방식으로 컴포넌트에 전달된다. 기준선은 단일 컴포넌트에 존재하는 변경 세트에만 적용된다.
- 플로우 대상
- 저장소 작업공간과 스트림에는 또 다른 저장소 작업공간이나 스트림에 정의되어 있는 플로우 대상 관계가 있을 수 있다. 각 저장소 작업공간이나 스트림에는
플로우 대상이 많이 정의되어 있을 수 있지만, 활성화된 대상은 하나만 있을 수 있다. 활성 플로우 대상을 이용하면 수신 및 발신 변경을 계획할 수 있다.
Rational Team Concert 웹 기반 버전을 사용하는 경우에는 스트림을 통해 직접 Jazz SCM 기능을 사용할 수 있으며, 이러한 방식은 기술 저자와 같은 사용자가 자신의 자산을 구성 제어에 따라 배치할 수 있는 우수한 방식이다. 또한, 사용자는 광범위한 개발 팀과 협업할 수 있을 뿐만 아니라 이 팀에 기여할 수도 있다.
구성 관리 기능이 더 많이 필요한 개발자라면 Rational Team Concert Eclipse IDE이나 Microsoft Visual Studio Rational Team Concert 플러그인 또는 기능이 풍부한 Jazz SCM 명령행 인터페이스를 사용할 수 있다. 이 기사의 나머지 부분에서는 독자가 이러한 인터페이스 중 하나를 사용하고 있다고 가정한다.
Jazz SCM을 사용하려면 먼저 기타 다른 컴포넌트를 참조하지 않는 컴포넌트를 작성해야 한다. 그런 다음에는 사용자가 그들이 작업하고자 하는 스트림을 기반으로 저장소 작업공간을 작성해야 한다. 마지막으로는 사용자가 저장소 작업공간을 로컬 작업공간(예: Eclipse 작업공간)으로 로드해야 한다.
로컬 작업공간이 설정되고 나면, 저장소 작업공간이 있는 로컬 작업공간에서 Eclipse 프로젝트나 Microsoft Visual Studio 솔루션을 사용자가 공유할 수 있다. 사용자는 기존 컴포넌트나 새 컴포넌트를 자산이 존재하는 위치에 지정할 수 있다. 저장소 작업공간 내에서는 공유된 자산이 새 변경 세트로 체계화된다.
저장소 작업공간 내에서는 사용자가 변경 세트를 일시적으로 중단 또는 재개(이전에 일시적으로 중단한 경우)하거나 스트림을 통해 컴포넌트에 전달할 수 있다. 각 변경 세트는 단일 컴포넌트 내에만 존재할 수 있다. 대상 컴포넌트는 컴포넌트 안에 있는 자산에 의해 결정된다. 예를 들면, 공유 조작이 특정 컴포넌트와 연관될 상위 레벨 디렉토리 자산을 결정한다.
로컬 작업공간 내에서 Eclipse 프로젝트나 Microsoft Visual Studio 솔루션을 대상으로 수행된 모든 수정은 저장소 작업공간으로 체크인할 수 있는 항목으로 간주된다. 체크인 시, 이러한 항목은 하나 이상의 변경 세트 내에서 패키징되며 스트림을 통해 컴포넌트로 전달되어야 한다.
그림 2. Jazz SCM 핵심 조작
- 공유
- 기존의 Eclipse 프로젝트나 Visual Studio 솔루션을 가져와서 구성 관리를 위해 Jazz SCM에 공유한다.
- 변경사항 체크인
- 사용자가 변경사항을 체크인하는 경우에는 본질적으로 사용자는 로컬 작업공간에서 변경사항을 패키징하여 그것을 저장소 작업공간에 저장되어 있는 변경 세트로 복사한다.
- 전달
- 변경 세트를 전달할 때, 저장소 작업공간에 있는 변경 세트를 컴포넌트로 커미트한다.
- 승격
- 승격 동작은 그것이 존재하는 스냅샷의 스토리지 위치를 또 다른 저장소 작업공간이나 스트림으로 이동하는 것을 의미한다.
- 연관
- 변경 세트를 연관시킬 때, 변경 세트와 Rational Team Concert 작업 항목 또는 OSLC 변경 세트 간에 관계가 작성된다.
- 잠금
- 이 조작은 스트림의 컨텍스트 내에 지정된 자산을 잠그며, 이렇게 하면 다른 사용자가 해당 스트림을 수정할 수 없게 된다. 해당 스트림을 잠그는 조작을 시작한
사용자는 여전히 이 스트림을 수정할 수 있다.
- 잠금 해제
- 이 조작은 잠긴 자산을 사용자가 수정할 수 있게 기능을 복원한다.
- 일시중단
- 이 조작은 저장소 작업공간에 저장되어 있는 변경 세트를 대상으로 사용된다. 해당 변경 세트가 포함되지 않도록 저장소 작업공간
구성이 수정된다. 변경 세트가 포함되지 않도록 저장소 작업공간과 연관된 로컬 작업공간이 바로 업데이트된다. 변경 세트는 여전히 해당 저장소 작업공간 내에
저장되며 언제든지 재개될 수 있다.
- 재개
- 이 조작은 저장소 작업공간에 있는 일시중단된 변경 세트를 대상으로 사용된다. 재개된 변경 세트를 포함하기 위해 저장소 작업공간 구성이 업데이트된다. 이 시점에서는
로컬 작업공간에서 변경 세트를 받아서, 변경 세트가 일시중단된 후에 이루어진 모든 변경과 병합을 수행해야 한다.
이 섹션에서는 Jazz SCM이 작동하는 메커니즘을 새로운 프로젝트를 배경으로 자세히 탐구한다. 다음과 같은 특성을 설명하게 된다.
- 기본 Jazz SCM Rational Team Concert 프로젝트에서 제공되는 것
- Jazz SCM에 초기 자산을 추가하는 방법
- 나중에 참조하거나 공유하기 위해 컴포넌트 구성을 기록하는 방법
- 공유된 코드를 기반으로 협업적으로 작업하는 방법
- 나중에 복제할 목적으로 스트림 구성을 기록하는 방법
- 스트림을 새로 작성하고 스트림 간에 편차를 주는 방법
이 섹션이 끝날 때 쯤이면 SCM 제어에 자산이 추가되고 여기에서 자산이 수정됨에 따른 자산의 발전, 릴리스를 고유하게 표시하는 방법 및 다음 릴리스 작업과 충돌하지 않으면서 유지보수할 수 있는 방법에 감사하게 될 것이다.
Rational Team Concert에서 프로젝트 작성
프로젝트를 새로 작성할 때는 기본 작동(사용 중인 프로세스 템플리트에 종속됨)이 자동으로 작성될 기본 컴포넌트와 스트림을 대상으로 한다. 이 스트림은 초기 기준선에서 사용 중인 기본 컴포넌트와 연관되도록 구성된다. 이 구성이 스트림의 시작 구성이다.
다음 그림에는 사용자의 저장소 작업공간(스트림과 연관된)과 프로젝트를 작성한 후의 컴포넌트 구조가 표시되어 있다. 이 시점에서는 Jazz 소스 제어에 커미트된 파일이나 디렉토리는 없다.
그림 3. 새 Rational Team Concert 프로젝트의 Jazz SCM 상태
Jazz 소스 제어와 프로젝트 아티팩트 공유
사용할 IDE에 따라, 프로젝트나 솔루션을 작성한 후, 이것을 Jazz 소스 제어와 공유해야 한다. 공유하려면 대상 컴포넌트를 지정해야 한다. 공유하고 나면 자산이 변경 세트에 함께 그룹화되어 저장소 작업공간 안에 저장된다. 이러한 자산을 다른 Jazz 소스 제어 사용자가 보고 사용할 수 있도록 하려면 공유할 때 지정한 컴포넌트에 변경 세트를 전달해야 한다.
각 변경 세트에는 고유한 번호가 지정된다. 이 번호는 IDE 클라이언트에서는 볼 수 없지만, Jazz 소스 제어 CLI(Command Line Interface)에서는 볼 수 있다. 그림 4를 참조한다.
그림 4. 변경 세트 번호가 표시되어 있는 Jazz 소스 제어 CLI
변경 세트가 전달될 때, 스트림 구성이 업데이트되어 변경 세트의 현재 상태가 시작 기준선과 새 변경 세트의 조합이 되게 한다. 이러한 조치는 아래 그림 5에 표시되어 있다.
- 공유 조작은 선택된 프로젝트/솔루션을 새 변경 세트로 패키징하여 지정된 저장소 작업공간으로 이동시킨다.
- 전달은 변경 세트를 공유 조작이 수행되는 시점에서 지정된 컴포넌트로 이동시킨다.
참고: 스트림이나 저장소 작업공간의 구성 규칙에는 기준선만 표시된다.
그림 5. 프로젝트 아티팩트를 Jazz 소스 제어와 공유
이제 프로젝트가 공유되었으므로 활성 플로우 대상이 있는 모든 저장소 작업공간에서, 프로젝트가 전달된 스트림에 액세스할 수 있게 되었다. 이 프로젝트는 초기 기준선 밖에 있는 변경 세트 내에 포함되어 있기 때문에 다른 스트림에서는 이 프로젝트를 볼 수 없다.
새 스트림과 저장소 작업공간의 구성은 가변수의 컴포넌트와 기준선 쌍으로 구성된다. #1과 같은 특정 변경 세트를 저장소 작업공간으로 로드한 후, 전달하여 원하는 구성을 수동으로 재생할 수도 있지만, 새 변경 세트와 그 공유 프로젝트를 캡슐화하는 컴포넌트 기준선을 새로 작성하는 방법이 선호된다.
사용자는 저장소 작업공간 내에서 기준선을 작성할 수 있지만, 기준선을 해당 컴포넌트로 전달해야 한다. 그림 6에는 다음과 같은 조치가 표시되어 있다.
- 기준선 조작을 작성하는 조치는 저장소 작업공간 내에 있는 컴포넌트에서 수행된다. 기준선 오브젝트는 컴포넌트 구성 규칙의 마커이다. 기준선이 작성되면, 저장소 작업공간의 구성 규칙이 업데이트되어 기준선을 새로 반영한다. 이 예제에서는 ComponentA의 BL1을 참조하도록 규칙이 수정되었다. 기준선은 저장소 작업공간 안에 일시적으로 저장된다.
- 전달 조작은 다른 스트림이나 저장소 작업공간 구성 규칙 내에서 기준선을 사용할 수 있는 컴포넌트로 기준선을 이동시킨다. 이 조작 과정에서 기준선이 전달되었던 스트림이 구성 규칙을 업데이트하여 기준선을 반영하며, 이 예제에서는 기준선이 ComponentA의 BL1이다.
그림 6. 컴포넌트 기준선 작성
BL1(Baseline 1)은 기준선이 새로 반영되도록 구성 규칙이 업데이트되는 저장소 작업공간 내에서 작성된다. 이제 컴포넌트에 전달될 기준선은 저장소 작업공간 내에 위치한다. 기준선이 전달된 후에는 기준선이 컴포넌트로 이동하고 스트림 구성이 업데이트되어 기준선이 새로 반영된다. 그러면 다른 스트림이나 저장소 작업공간 구성 내에서 이 기준선을 참조할 수 있다.
기준선의 유효 범위는 단일 컴포넌트이다. 구성에 이러한 범위를 표시해야 하는 경우에는 다중 컴포넌트 스냅샷을 작성해야 하며, 이러한 내용은 나중에 다룬다.
컴포넌트에 전달되면, 자산은 제어된 방식으로 발전할 수 있다. 자산을 대상으로 수행된 변경은 저장소 작업공간으로 체크인해야 한다. 기본적으로 사용자가 이 조치를 시작해야 하지만, Eclipse IDE를 사용하여 파일을 저장할 때 체크인 조작이 자동으로 실행되게 할 수도 있다.
공유 자산을 대상으로 수행된 수정은 체크인 후보로 간주된다. 그러면 저장소 작업공간 내에서 변경 세트가 새로 작성된다. 후속 체크인 조작으로 변경을 이 변경 세트에 연관하거나 변경 세트가 새로 작성되도록 사용자가 명시적으로 요청할 수 있다.
저장소 작업공간에 변경 세트가 여러 개 있으면, 사용자가 변경과 연관시킬 변경 세트를 선택하거나 IDE 클라이언트가 변경 세트를 선택하게 할 수 있다. 사용자가 변경 세트를 선택하는 경우에는 자산이 수정되어 변경 세트에 추가되면, 동일한 자산에 대한 후속 변경을 원래의 변경 세트에서 수정해야 한다는 제한사항을 사용자는 고려해야 한다. 변경 세트가 전달되어 더 이상 저장소 작업공간 내에 존재하지 않는 경우에는 이러한 제한사항이 재설정된다.
변경 세트를 Rational Team Concert 레코드 또는 외부 OSLC 변경 요청과 연관하는 것은 선택사항이지만, 감사가능성을 증대할 수 있는 매우 권장할 만한 단계이다. 또한, 연관된 Rational Team Concert 작업 항목이나 OSLC 변경 요청 레코드를 통해 식별되는 특정 변경을 기반으로 소프트웨어를 구성하는 데도 도움이 된다. 이 단계는 Rational Team Concert 프로세스 사용자 정의 기능을 통해 시행할 수 있다.
마지막 단계에서는 활성 플로우 대상으로 식별된 스트림을 통해 변경 세트를 컴포넌트에 전달한다. 다음과 같은 조치가 그림 7에 표시되어 있다.
- 체크인 조작은 로컬 작업공간에서 수정된 파일과 디렉토리를 패키징하여, 프로젝트가 로드된 저장소 작업공간으로 이동시킨 후, 변경 세트 내에 배치한다. 그 다음에는 ComponentA에 변경 세트 #2와 기준선 BL1의 조합이 적용되고 있다는 것을 반영하기 위해 저장소 작업공간의 구성 규칙을 업데이트한다.
- (선택사항): 연관 조작을 이용하면 사용자가 변경 세트와 Rational Team Concert 작업 항목 또는 OSLC 변경 요청 간에 연관을 작성할 수 있다.
- 전달 조작은 변경 세트를 해당 컴포넌트로 이동시킨다. 이 조작 과정에서 기준선이 전달된 스트림이 구성 규칙을 업데이트하여 기준선을 반영하며, 이 예제에서는 이제 ComponentA에 변경 세트 #2와 기준선 BL1이 적용된다.
그림 7. 공유 코드에 대한 작업, 전달 조작
새로 전달된 변경 세트는 컴포넌트 내에 위치하고 기존 기준선 밖에 존재하며 스트림과 저장소 작업공간 구성을 통해 관련된다. 파일과 디렉토리 변경이 많이 수행되고 스트림 구성이 점차 변화됨에 따라, 새로운 구성 레코드를 유지하고, 스트림 간에 구성을 공유하고 초기 스트림을 구성하기 위해 이러한 구성의 스냅샷을 작성하여 저장할 필요성이 생긴다.
협업을 위해 다수의 사용자가 그들의 저장소 작업공간에서 동일한 스트림을 사용할 수 있다. 스트림에 연결된 각 저장소 작업공간에서는 전달된 변경 세트가 저장소 작업공간으로 받아들일 후보로 강조된다.
그림 8에는 또 다른 저장소 작업공간에서 전달된 변경을 수락해야 하는 다음과 같은 조치의 시퀀스가 표시되어 있다.
- 변경 세트가 전달되면 변경 세트가 전달된 스트림을 대상으로 하는 활성 플로우가 있는 저장소 작업공간은 저장소 작업공간의 구성이 스트림과 다르다는 것을 발견하고 변경 세트를 저장소 작업공간으로 받아들여야 한다고 간주한다.
- (선택사항) 저장소 작업공간이 로컬 작업공간으로 로드되면 수락된 변경 세트의 컨텐츠가 자동으로 로컬 작업공간으로 로드된다.
이 예제에서는 변경 세트 #2를 수락한 결과, ComponentA의 저장소 작업공간 구성 규칙이 업데이트되어 변경 세트 #2와 BL1이 표시되고 이 변경 세트의 컨텐츠인 HelloWorld.h 파일이 로컬 작업공간에 자동으로 로드된다. 스트림이나 저장소 작업공간의 구성 규칙에는 기준선만 표시되어 있다는 점에 유의한다.
그림 8. 공유 코드에 대한 작업, 수락 조작
그림 9에는 추진 중이었던 공유 자산 개발이 진행되어온 과정이 표시되어 있다. 두 번째 컴포넌트가 작성되었으며 몇 가지 새 자산이 이 컴포넌트에 공유되었다. 이것을 반영하기 위해 스트림과 저장소 작업공간 구성이 업데이트되었다.
- ComponentA에서는 기준선 BL1과 변경 세트 #2가 선택되었다.
- ComponentB에서는 기준선 BL0.1기 선택되었다.
그림 9. 스냅샷이 작성되기 전 구성
스트림을 작업 중인 팀은 그 구성이 첫 번째 릴리스를 나타낸다고 믿고 감사 및 재작성을 위해 그것을 기록하려고 한다. 이 목적을 달성하려면 스냅샷을 새로 작성해야 한다.
스냅샷은 저장소 작업공간 구성에서 작성하거나 스트림에서 직접 작성할 수 있다. 여기에서는 이러한 두 가지 작성 방법을 살펴보게 될 것이다. 각 방법의 최종 결과는 동일하다.
실행 가능한 전략은 스냅샷용 스토리지 컨테이너 전용의 스트림을 정의하는 것이다. 예를 들어, 스냅샷과 관련된 모든 릴리스가 승격되는 릴리스 스트림을 생각해 보자. 이 스트림은 릴리스 재구성(스냅샷 구성을 통해 저장소 작업공간 작성)용 스냅샷을 찾거나 유지보수 작업용 스트림을 작성하는 목적 이외에는 결코 적극적으로 사용되지 않는다.
저장소 작업공간에서 스냅샷 작성
그림 10에는 저장소 작업공간에서 스냅샷을 작성할 때 발생하는 다음과 같은 조치가 표시되어 있다.
그림 10. 저장소 작업공간에서 스냅샷 작성 및 저장
- 저장소 작업공간에서 스냅샷이 작성되도록 요청된다. 두 가지 활동, 즉 새 기준선 작성 및 스냅샷 작성 활동이 발생할 수 있다.
- 기준선과 변경 세트가 포함되어 있는 각 구성 규칙의 경우, 기준선이 새로 작성되어 적절한 컴포넌트에 전달할 목적으로 저장소 작업공간에 배치된다. 새로 작성된 기준선을 반영하기 위해 저장소 작업공간의 구성 규칙이 변경된다. 이 예제에서는 현재 ComponentA가 기준선 Release_1.0(새로 요청된 스냅샷의 이름)을 반영하고 있다.
- 스냅샷이 새로 작성되어 저장소 작업공간에 저장된다. 스냅샷에는 저장소 작업공간 구성 규칙의 복제본이 포함되어 있다. 따라서 이 스냅샷을 사용하여 이 구성을 재작성하거나 새 스트림의 시작 구성을 나타낼 수 있다.
- 새로 작성된 기준선은 해당 컴포넌트로 전달해야 한다. 이 예제에서는 기준선 Release_1.0이 ComponentA로 전달되고 있다.
- (선택사항) 스냅샷은 다수의 컴포넌트에 적용되는 구성을 기록하는 메커니즘이기 때문에 대단히 중요하며 손쉽게 찾을 수 있는 영역에 위치해야 한다. 이 때문에 저장소 작업공간 안에 스냅샷을 유지하는 것은 장기적 관점에서 좋지 않다. 승격 조작을 이용하면 스냅샷을 저장소 작업공간에서 스트림으로 다시 배치할 수 있다. 이 예제에서는 스냅샷 Release_1.0이 저장소 작업공간에서 스트림으로 승격되었다.
스냅샷을 스트림에 직접 작성
저장소 작업공간 안에 스냅샷을 작성하는 것 외에도 스트림 안에 직접 스냅샷을 작성할 수 있으며 다음 그림에는 이러한 과정이 표시되어 있다.
그림 11. 스냅샷을 작성하여 스트림에 직접 저장
- 스트림에서 스냅샷이 작성되도록 요청이 수행된다. 결과적으로 두 가지 조치, 즉 필수 기준선 작성 및 스냅샷 작성이 자동으로 발생한다.
- 기준선과 변경 세트가 포함되어 있는 각 구성 규칙의 경우, 기준선이 새로 작성되어 적절한 컴포넌트에 직접 배치된다. 새로 작성된 기준선을 반영하기 위해 스트림의 구성 규칙이 변경된다. 이 예제에서는 현재 ComponentA가 기준선 Release_1.0(새로 요청된 스냅샷의 이름)을 반영하고 있다.
- 스냅샷이 새로 작성되어 스트림 안에 저장된다. 스냅샷에는 저장소 작업공간 구성 규칙의 복제본이 포함되어 있다. 따라서 이 스냅샷을 사용하여 이 구성을 재작성하거나 새 스트림의 시작 구성을 나타낼 수 있다.
- (선택사항):기준선이 새로 작성되는 경우, 스트림 구성 규칙의 변경되면 해당 스트림으로 향하는 활성 플로우 대상이 있는 모든 저장소 작업공간은
새 기준선을 이 스트림과 동기화를 유지하기 위해 수락해야 하는 것으로 간주한다.
예제에서는 개발 팀에서 첫 번째 릴리스를 작성하여 그 구성을 스냅샷 "Release_1.0"에 기록했다. 그들은 기존 스트림을 계속 사용하여 다음 릴리스를 작업하기로 했기 때문에 현재 릴리스에 대한 유지보수 작업을 분리하기 위해 새로운 스트림이 필요했다.
스냅샷 Release_1.0을 사용하여 새로운 스트림인 MaintStream을 작성했으며, 이 스냅샷의 초기 구성 규칙은 스냅샷 Release_1.0에 정의되어 있는 구성 규칙을 미러한다. 현재 Release 1.0의 유지보수와 관련된 모든 활동은 이 스트림을 기반으로 하는 저장소 작업공간 안에서 수행되며 여기에서는 이 새 스트림이 활성 플로우 대상으로 존재한다.
유지보수 활동을 통해 수행되는 필수적인 버그 수정을 진행 중인 개발 활동과 공유해야 할 경우도 있다. 이러한 활동을 조정하기 위해 누군가를 '통합자(integrator)'로 지명하는 것을 고려한다. 이 자원이 해당 코드 기반을 이해하고 필요한 경우 교육 받은 병합을 수행할 수 있는지 확인한다. 이러한 시나리오를 수행하는 절차는 세 가지 단계로 구성된다.
1단계: 플로우와 코드 통합을 제어하는 데 사용할 저장소 작업공간 작성
그림 12에는 통합 저장소 작업공간을 작성하는 세 가지 단계가 표시되어 있다.
- DevStream를 향하는 활성 플로우 대상이 있는 새로운 저장소 작업공간을 작성한다.
- 가능하면 정리된 작업공간으로 저장소 작업공간을 로드한다.
- 미해결된 변경을 수락하여 저장소 작업공간에서 현재의 최신 DevStream 구성이 반영되도록 한다.
그림 12. 새 저장소 작업공간의 구성
2단계: MainStream에서 필수 변경사항을 가져와서 최신 DevStream 코드와 통합
그림 13에는 MainStream에서 변경사항을 가져와서 통합 저장소 작업공간에 배치할 때 발생해야 하는 다섯 가지 조치가 표시되어 있다.
- 저장소 작업공간에서 플로우 대상을 새로 작성하여 버그 수정이 수행될 MainStream으로 보낸다.
- 이 새 플로우 대상을 활성화한다.
- 저장소 작업공간에서 MainStream 안에는 존재하지만, 저장소 작업공간에는 존재하지 않는 모든 버그 수정이 식별되며, 이러한 것은 DevStream 구성 안에 포함되어 있지 않은 변경사항이기도 하다.
- DevStream에 통합될 모든 버그 수정을 수락하여 모든 변경 세트 종속 항목을 해결하는 저장소 작업공간으로 보낸다.
- 저장소 작업공간의 컨텐츠를 성공적으로 빌드할 수 있고 그 결과로 작성된 소프트웨어가 필수 테스트를 모두 통과하는지 확인한다.
그림 13. 원하는 변경사항이 있는 스트림에서 변경사항을 수락
3단계: 통합된 변경사항을 DevStream으로 전달
현재 통합 저장소 작업공간 안에 존재하는 변경사항을 DevStream으로 전달하는 마지막 단계는 그림 14에 표시되어 있다.
- 저장소 작업공간에서 활성 플로우 대상을 다시 활성화하여 DevStream으로 전달한다.
- 그러면 저장소 작업공간에서 저장소 작업공간 안에는 존재하지만, 개발 스트림 안에는 존재하지 않는 발신 변경사항이 식별된다.
- 모든 변경사항을 DevStream으로 전달한다.
그림 14. 통합된 변경사항을 전달
교육
- Rational Team Concert 기사와 IBM developerWorks에 있는 기타 많은 참고자료 링크를 확인하자. 또한, 글로벌하게 분산된 팀에서 Rational Team Concert 사용하기 웹 캐스트 또는 대시보드 및 보고서 데모를 보거나 IBM Rational Team Concert 및 Jazz에 관한 팟캐스트를 들을 수 있다.
- developerWorks의 Rational 소프트웨어 영역에서 Rational Software Delivery Platform 제품과 관련된 기술 자료와 우수 사례를 볼 수 있다.
- developerWorks 기술 행사 및 웹 캐스트를 통해 다양한 IBM 제품 및 IT 산업 주제에 대한 최신 정보를 얻을 수 있다.
- 무료 developerWorks Live! briefing을 통해 최신 IBM 제품 및 도구에 대한 정보뿐만 아니라 IT 업계의 최신 경향까지도 빠르게 확인할 수 있다.
- developerWorks on-demand demos에서는 입문자를 위한 제품 설치 및 설정부터 숙련된 개발자를 위한 고급 기능까지 총 망라된 다양한 데모를 제공한다.
- 기술을 개선하자. Rational training and certification 카탈로그를 확인한다. 여기에는 광범위한 주제와 관련된 다양한 유형의 과정이 많이 있다. 이 중 일부를 언제 어디서나 확인할 수 있으며, 다수의 "시작하기"는 무료이다.
제품 및 기술
- Rational Team Concert 시험판 다운로드(무료):
- 자신에게 가장 적합한 방법으로 IBM
소프트웨어를 평가해 보자. 시험판 소프트웨어를 다운로드하거나 온라인으로 소프트웨어를 사용해 보거나 클라우드 환경에서 소프트웨어를 사용하거나
SOA Sandbox에서 SOA(Service-Oriented Architecture)를 효과적으로
구현하는 방법을 배울 수 있다.
토론
- Rational Team Concert 토론에 참여하거나 Jazz.net 포럼에서 질문해보자.
- Rational 소프트웨어를 평가하거나 검토하자. 이 소프트웨어는 빠르고 쉽다. 정말이다.
- developerWorks 기사를 기고하여 Rational 소프트웨어를 사용하는 다른 사람을 돕고 지식을 공유하자. developerWorks Rational 웹 사이트에서 전 세계적으로 기사를 공개하고
RSS 신디케이션과 필자란 및 전기를 이용할 수 있을 뿐만 아니라 전문적인 편집과 제작 혜택을 누릴 수 있다. what makes a good developerWorks article과 진행 방법을 확인하자.
- Facebook 및 Twitter(@ibmrational)에서 Rational 소프트웨어를 팔로우하고, 댓글과 요청을 추가하자.
- Rational 포럼, cafés 및 위키에 참여하여 질문과 답을 해보고 자신의 전문성을 강화하자.
- developerWorks 커뮤니티에 가입하고 개발자 중심 블로그에 응답하여 관심사를 공유하는 다른 사람들과 연결해보자.
