본 연재를 통해 IBM® Rational® Jazz Team Server에 접근할 웹 클라이언트를 만들 것이다. IBM® Rational® Team Concert로 워크벤치의 간단한 뷰를 통해 이 기능들을 사용할 수 있다. 또한 웹 기반 사용자 인터페이스에서 이 작업들을 수행할 수 있을 것이다.
본 글에서는 Jazz 플랫폼의 다양한 개념에 대해 자세히 설명한다. 특히 Project Area와 Team Area를 설정하는 방법과 뷰를 설명하고 용어를 정의한다. 연재의 후반부에서는 웹 서비스, 웹 사용자 인터페이스(모질라 파이어폭스만), 보고를 정의하여 스토리지 모델을 정의하는 방법에 초점을 맞출 것이다. 이 프로세스를 통해 확장성 있는 애플리케이션을 개발할 수 있을 것이다.
본 연재는 다음과 같은 팀들에게 도움이 될 것이다.
- 개발팀이 전세계에 흩어져 있고, Jazz 플랫폼과 Rational Team Concert를 사용해 애플리케이션을 만들고자 하는 팀
- 새 플랫폼으로 확장성 있는 애플리케이션을 만드는 방법을 이해하는 팀
- 다른 포맷에서 서비스를 만드는 방법을 이해하는 팀
- 웹 UI 프레임워크를 이해하고 이를 플러그인으로 사용자 인터페이스를 만들 때 어떻게 활용하는지 아는 팀
본 글은 모든 필요한 플러그인으로 개발 환경을 설정하는 방법을 설명한다. 환경을 설정하면 프로젝트 관리를 위해 Project Area를 만들고 이 Project Area를 사용할 수 있는 팀을 정의할 것이다. 또한 Rational Team Concert의 다양한 뷰와 퍼스펙티브에 대해 배울 것이다. 본 글이 다루는 주제는 다음과 같다.
- 소프트웨어 다운로드와 환경 설정하기
- Rational Team Concert(Jazz Team Server, Jazz 클라이언트 등)용 플러그인 다운로드
- 모질라 파이어폭스용 플러그인과 부가 기능 다운로드
- Project Area 설정
- 다양한 뷰 이해하기
- Team Artifact 뷰
- Work Item 뷰
- Pending Changes 뷰
- Project Area에 사용자 추가
- 사용자 환경 설정 수정
- Team Area를 만들고 사용자 추가하기
- 스트림에 컴포넌트 만들기
- 통합 스트림 정의하기
- Project Area 관리하기
- 작업 아이템을 만들고 사용자에 이를 부여하기
- 저장소 작업공간 만들기
- 빈 프로젝트를 만들고 전달하기
- 작업 아이템 연결하기
이 글에서 다음 방법을 배운다.
- 마이크로소프트 윈도(Microsoft® Windows®)를 실행하는 머신에 Jazz 서버와 클라이언트 다운로드, 설치
- JUnit, codegen, Aptana에 필요한 추가 플러그인과 모질라 파이어폭스 플러그인 다운로드, 설치
- Jazz 용어와 Rational Team Concert 뷰 이해하기
- Project Area와 이의 기본 구조 만들기
본 글은 독자들이 뷰, 편집기, 창 등 이클립스 IDE의 개념에 익숙하다는 전제 하에 썼다. 또한 소스 파일 관리, 프로젝트 관리, 결함 관리 등 엔터프라이즈 레벨의 개발에 관해 다양한 개념을 이해해야 한다.
- Rational Team Concert를 다운로드할 수 있는 Jazz.net이나 기타 사이트에 접속한다.
- 최소 Ram 1GB 이상의 마이크소프트 윈도 운영체제
- 애플리케이션의 웹 기반 인터페이스를 쓰기 위한 모질라 파이어폭스 버전 2.0.0
본 글을 작성하는 데 Rational Team Concert Beta 3 RC5 소스와 바이너리 파일을 사용했다. 이는 Jazz.net에서 받을 수 있다(참고자료 참조).
이 글을 발표할 즈음 뒤에 나오는 링크에서 Rational Team Concert Version 1.0를 다운로드할 수 있었다. 필요한 컴포넌트의 버전에 기반을 둔 이 버전의 추가 컴포넌트는 다양하다.
개발 환경을 설정하려면 표 1에 있는 패키지를 받아야 한다.
표 1. 필요한 컴포넌트
| 패키지 | 설명 | URL |
|---|---|---|
| Jazz 바이너리와 소스 파일 | 클라이언트/서버 바이너리와 소스 파일(로그인 필요) | 파일 받기 |
C:\Jazz 같은 머신 상의 위치에 이 파일들의 압축을 풀어 놓는다. 나중에 이 위치를 <install loc>로 참조할 것이다. 파일 압축을 푸는 데 문제가 있다면 위키의 Component development 페이지에서 이 플러그인들의 압축과 Rational Team Concert 설정에 관해 자세한 설명이 담긴 안내서를 찾을 수 있다.
필요한 플러그인만 기본으로 패키지에 들어 있다. Jazz 플랫폼에서 만들 예정이기 때문에 표 2의 플러그인을 추가해야 할 것이다.
표 2. 추가 컴포넌트
| 컴포넌트 | 설명 | URL |
|---|---|---|
| JUnit 플러그인 | JUnit 플러그인 바이너리 파일 | JUnit 플러그인 파일 |
| EMF 전체 플러그인 | 모델링을 위한 완전한 EMF 플러그인(v 2.3.2) | EMF 플러그인 파일 |
| codegen 플러그인 | EMF 코드 생성기 래퍼 | codegen 플러그인 받기 |
| Aptana 플러그인 | 자바스크립트 편집기 | 기존 이클립스 설정에 Aptana를 플러그인한다. |
이 플러그인들을 Jazz와 Rational Team Concert용 클라이언트 및 서버 바이너리 파일이 있는 <install loc>에 압축을 풀어 넣는다.
본 연재의 다음 회에서 애플리케이션의 웹 클라이언트를 만들 것이다. 표 3에 나열된 플러그인은 자바스크립트와 HTML 페이지를 디버깅하는 데 매우 유용하다.
표 3. 모질라 파이어폭스 부가 기능
| 부가 기능 | 설명 | URL |
|---|---|---|
| Venkman | 순수 자바스크립트 디버거 | 자바스크립트 디버거 받기 |
| Firebug | 런타임 편집 기능을 갖춘 자바스크립트, CSS, HTML 디버거 | 파이어버그 받기 |
팁:
- 모질라 파이어폭스가 갑자기 닫히거나 스크립트 오류가 있는 경우 이 부가 기능들은 제대로 작동하지 못한다. 더 극악한 환경에서는 파이어폭스의 인스턴스로 이 플러그인들을 활성화할 수 없을지도 모른다.
- 이런 문제를 해결하려면 File > Exit를 선택해 모질라 파이어폭스의 모든 인스턴스를 닫는다. 수정 사항이 웹 페이지에 반영되지 않으면 파이어폭스 캐시를 지워보자.
모든 플러그인을 다운로드해 압축을 풀었다면 이제 서버를 시작할 차례다. 그러고 나면 서버에 연결해 Project Area를 만들고 수정할 것이다.
- 설치 위치(예, C:\Jazz)를 열고 <install loc>/jazz/server를 연다.
- server.startup.bat 파일을 더블클릭하여 서버를 시작한다. 메시지를 볼 수 있는 서버 콘솔 창이 뜰 것이다.
팁:
서버를 끝내고 싶을 때는 언제나 같은 위치에 있는 server.shutdown.bat 파일을 사용한다. 서버를 제대로 끝내지 않으면 일관성 없는 상태가 될지도 모른다.
Project Area는 프로젝트에 관련된 모든 작업을 관리하는 곳이다. 여기에는 Team Area, 다양한 스트림(코드, 통합 등), 컴포넌트, 작업 아이템 등이 포함된다. 서버는 다중 Project Area를 호스트할 수 있고 각각의 데이터는 따로 관리된다.
먼저 서버에 연결을 만들고 Project Area를 만들 것이다.
- <install loc>/jazz/client/eclipse로 이동하고 TeamConcert.exe 파일을 선택해 애플리케이션을 연다.
- C:\TestWorkspace 같은 작업공간 위치를 선택하고 OK를 클릭한다.
Rational Team Concert를 실행하면 그림 1과 같은 화면을 볼 수 있을 것이다.
그림 1. Rational Team Concert 뷰
- 왼쪽 뷰는 쉽게 Project Area를 훑어볼 수 있는 Team Artifact 뷰다.
- Team Artifact 뷰에서 Create Repository Connection 링크를 클릭한다.
그림 2. Repository Connection 생성
https://localhost:9443/jazz로 들어가 사용자 이름과 비밀번호를ADMIN이라 넣는다.- 연결 타임아웃을
4800으로 변경한다.
주의:
클라이언트와 같은 머신에서 작동하는 서버를 가지고 있기 때문에 localhost를 사용했다. 서버가 원격 머신에서 작동한다면 그 머신의 IP 주소와 네트워크를 사용했을 것이다. 새 서버가 작동하기 때문에 사용자 이름과 비밀번호로 ADMIN을 사용했다. Project Area를 설정한 후 사용자를 추가할 수 있다. 그러므로 사용자는 관행적인 사용자 이름과 비밀번호를 사용해 Project Area에 접근할 수 있다.
팁:
- 서버가 작동을 해야 Rational Team Concert 클라이언트를 사용해 서버에 연결할 수 있다. "로그인 실패" 메시지가 나오면 서버가 아직 시작되지 않았기 때문일 수 있다. 서버 창의 "INFO: Server startup in xxxx ms" 메시지를 확인하자. 이 메시지가 보이지 않는다면 좀 기다린 후에 다시 로그인을 시도하자.
- 베타 3에서 Jazz는 권한에 기반을 두고 제한을 추가했다. ADMIN 사용자에게 특정한 추가 권한을 명확히 적용하여 Project Area를 만들 것이다.
- 저장소 연결을 오른쪽 클릭하고 Administer > Open users를 선택한다.
- 대화창에
ADMIN을 넣은 후 Select를 선택해 사용자를 선택하고 Finish를 클릭한다. - ADMIN 사용자 페이지의 Client Access License 섹션에서 박스 세 개를 전부 체크해 ADMIN이 모든 영역에 접근할 수 있도록 한다.
- 사용자 환경 설정을 저장하고 편집기를 닫는다.
그림 3. 가능한 ADMIN 라이선스
Team Artifact 뷰는 연결과 기타 정보를 보여준다(그림 4). 이제 Project Area를 만들 것이다.
- 저장소 연결을 오른쪽 클릭하고 New > Project Area를 선택한다(그림 3).
그림 4. 새 Project Area
- 이름에
PetStore를 넣고 Next를 클릭한다. - Deploy Template을 선택한다(이렇게 하면 Rational Team Concert에서 제공되는 기본 프로세스 정의가 배치된다).
- 프로세스를 위해 The Eclipse Way를 선택하고(그림 5) 나머지 필드를 위해 기본으로 남겨둔 후 Finish를 클릭한다.
그림 5. Eclipse Way
이로써 PetStore라는 이름의 Project Area를 만들고 선택한 프로세스로 초기화할 것이다.
Project Area를 만들면 그림 6과 비슷한 Rational Team Concert의 다양한 뷰가 생긴다. 이 화면이 보이지 않는다면 Windows > Show View를 선택하면 된다.
그림 6. 뷰
다양한 서브노드가 있는 PetStore Project Area가 이제 보인다.
- 빌드: 프로젝트의 빌드 스크립트를 정의하면 빌드를 시작할 수 있고 이 섹션에서 진행중인 빌드 상태와 빌드 보고서를 볼 것이다. 또한 자동으로 작동할 수 있도록 빌드를 구성할 수 있다.
- 계획: 프로세스로 Eclipse Way를 사용했으므로 개발에 애자일 프로세스를 따를 것이다. 이 섹션에서 반복 계획과 마일스톤을 정의할 수 있다.
- 보고서: Project Area용으로 미리 만들어진 다양한 보고서가 있다. 또한 분석을 위해 관행적 보고서를 만들 수 있다.
- 스트림: 개발 프로세스에 다중 스트림을 사용하도록 정의하는 데는 다양한 이유가 있다. 예를 들어 Milestone 6용 개발 스트림이 있을 수 있고 Milestone 5용 안정성 스트림이 있으며 Milestone 4용 유지보수 행 같은 다른 스트림이 있을 수 있다.
- 작업 아이템: 보고서와 비슷하게 질의를 정의하거나 공유된 질의를 사용해 작업 아이템을 불러올 수 있다. 작업 아이템은 결합, 작업, 강화 요청 등 다양한 유형이 있을 수 있다. Jazz 작업 아이템 컴포넌트가 만들어졌으므로 자신만의 작업 아이템 유형 또한 정의할 수 있다.
- 선호: 작업 아이템을 선택해 이를 Favorites 목록에 추가할 수 있다. 이렇게 하면 변경사항이 설정되거나 변경한 파일과 막 가져올 파일이 자동으로 Favorites의 작업 아이템과 관련이 생길 것이다.
- 피드: 일반적인 피드 메커니즘이 Jazz에 만들어졌다. 피드를 통해 업데이트가 반영될 것이다.
- 작업공간: My Repository Workspace에 자동으로 만들어진 PetStore Team Stream Workspace가 있다. 이는 모든 파일이 저장될 작업 영역이다(IBM® Rational® ClearCase® 사용자의 경우 이는 뷰와 비슷하다). 명확히 전달되지 않는 한 파일은 스트림에 전달되지 않는다.
- 팀 영역: 이 섹션은 자신이 속한 다양한 Team Areas를 보여준다. 같은 프로젝트에 여러 개의 Team Areas가 있을 수 있고 단일 공헌자가 여러 개의 Team Areas의 부분일 수도 있다.
- 작업 아이템 히스토리: 이는 가장 최근에 방문하거나 수정한 작업 아이템을 보여준다.
작업 아이템은 이 프로젝트 영역의 도메인에서 완성된다. 예를 들어 이는 작업일 수도, 결함일 수도, 강화일 수도 있다. 작업 아이템 뷰(그림 7)는 작업 아이템 목록을 보여준다. 보고자 하는 작업 아이템 행을 선택함으로써 런타임에 이 뷰를 커스터마이즈할 수 있다. 또한 경계를 끌어 행의 넓이를 수정할 수 있다. 뷰를 더블클릭하면 편집기의 작업 아이템이 열린다. 다중 페이지로 구성된 작업 아이템 편집기는 매우 유용하다. 간단히 이를 어떻게 사용하는지 볼 것이다.
그림 7. 작업 아이템 뷰
PetStore 프로젝트에 Joe와 Larry라는 두 명의 사용자를 만들 것이다(더 많은 사용자를 만들 때도 같은 프로세스를 사용할 수 있다).
- Team Artifact 뷰(그림 8)를 오른쪽 클릭하여 project area를 연다.
- Members 섹션을 열어 Create을 선택한다.
- Create new user를 선택하고 Next를 클릭한다.
그림 8. 사용자 만들기
- Joe에 관한 상세내역을 적는다.
- 이름: Joe
- 사용자 ID: joe
- 이메일 주소: joe@petstore.com
- Next를 클릭한다.
- 다음 화면에서 이 사용자에게 Repository Group 권한을 제공한다. Joe에게는 JazzUser 권한 레벨을 사용하고 Next를 클릭한다.
- Client Access License를 제공하려면 Contributor와 Developer의 체크 박스를 클릭해 Contributor와 Developer 접근을 선택한다.
- Finish를 클릭해 대화상자를 닫는다.
주의:
이 글에서 시험판 소프트웨어를 사용했으므로 Contributor와 Developer 역할에 10명의 사용자만을 허용할 수 있다. Rational Team Concert와 Jazz의 완전한 버전에서는 더 많은 사용자를 허용할 수 있다.
- 비슷한 방법을 사용해 다음의 상세내역으로 다른 사용자인
Larry를 만든다. - 이름: Larry
- 사용자 ID: larry
- 이메일 주소: larry@petstore.com
- Next를 클릭한다.
- Repository Group에 JazzUser를 부여한다.
- 사용자의 Client Access License로 Contributor와 Developer를 부여한다.
- 두 사용자 모두가 프로젝트에 공헌할 수 있기를 원하므로 이들에게 Contributor 역할을 부여한다.
- Project Area의 Member 섹션에서 새로 만들어진 사용자 Joe를 선택하고 Process Roles을 클릭한다.
- 가능한 역할에서 Contributor를 선택하고 Add를 클릭한다(그림 9를 보자).
그림 9. 사용자에게 역할 부여하기
- Larry에게도 같은 프로세스를 반복한다.
- CTRL+S를 사용해 프로세스를 저장한다.
- 새로 추가된 사용자들에게 이메일 통지를 보내고자 하는지 물을 것이다. OK를 클릭하면 사용자 ID에 입력했던 사용자의 이메일 주소로 이메일이 보내질 것이다.
Jazz에서는 User Preferences를 사용해 사용자가 자신의 프로파일을 수정할 수 있다. 사용자는 자신의 프로파일 상세내역을 수정하고 원하는 이메일 주소를 커스터마이즈하고 프로파일 사진을 업로드하고 Rational Team Concert를 사용해 시간과 관련된 정보를 설정할 수 있다. 이제 사용자 Joe를 수정해 사진을 업로드하고 이메일 경보를 커스터마이즈할 것이다.
- Windows > Show View > Others > Team > Team Organization을 선택해 Team Organization을 연다.
- Joe를 오른쪽 클릭하고 Open을 선택해 다중 페이지의 편집기를 연다.
- Overview 페이지에서 Photos 섹션을 열고 이 사용자에 추가하려는 이미지 파일을 업로드한다. 업로드한 이미지를 미리볼 수 있을 것이다.
- 편집기에서 Mail Configuration 페이지를 선택한다.
- Tags Added of Removed 옵션의 체크 박스에 체크를 하지 않는다. 이렇게 하면 주어진 작업 아이템의 태그가 수정될 때 이메일 통보 기능이 없어질 것이다.
- 또한 Format 섹션 하의 체크박스를 체크하여 이메일 메시지를 HTML 포맷으로 만들 수 있다.
- 사용자 선호를 저장하고 편집기를 닫는다.
그림 10. User Preferences 수정하기
팁:
특정 사용자에 의해 생성되는 이벤트에 대해 통보를 받고자 한다면(예를 들어 작업 아이템이나 수정 만들기) 사용자 이름을 오른쪽 클릭하고 Subscribe to Events Generated by User를 선택하면 된다. 사용자의 활동으로 이벤트가 만들어질 때마다 통보를 받을 것이다.
- 새 Team Area를 만들려면 편집기의 Project Area가 아직 열렸지 않았을 경우 이를 연다. Project Area 제목 옆의 arrow를 클릭하고 Team Area 옵션으로 이동한다(그림 11).
그림 11. Team Area 뷰
- 기존 저장소 연결을 선택하고 Next를 클릭한다.
- 이름에
Core라 넣는다(그림 12). - 요약에
This Team Area will consist of the core development team이라 넣는다. - Project Area 옆의 Browse 버튼을 클릭하고 PetStore를 선택한다.
- 개발 행으로 Main Development가 선택되지 않았다면 Browse를 클릭하고 Main Development Line을 선택한다.
- 다른 옵션을 위해 기본을 남겨두고 Finish를 클릭한다.
그림 12. 새 Team Area 만들기
Team Area를 만든 후 편집기 공간에서 열릴 것이며 사용자를 추가할 수 있다.
- 열리지 않았다면 Members 섹션을 클릭해 연다.
- Add users (to add existing users)를 클릭하고(그림 13) Joe와 Larry를 선택한 후 Next를 클릭한다.
그림 13. Team Area에 사용자 추가하기
- 역할에 Contributor를 선택하고 Finish를 클릭하여 대화상자를 닫는다. 이렇게 하면 Team Area에 사용자를 추가할 것이다.
팀:
이 페이지에서 또한 새 사용자를 만들 수 있고 이를 Project Area에 추가할 수 있다.
- 팀의 리더가 될 새 사용자
John을 만든다. - 이름: John
- 사용자 ID: john
- 이메일 주소: john@petstore.com
- Next를 클릭한다.
- repository group으로 JazzUser를 선택하고 Next를 클릭한다.
- Contributor와 Developer를 Client Access license로 선택한 후 Finish를 클릭한다(그림 14).
그림 14. Client Access License 뷰
- Member 섹션에서 John을 선택하고 Process Roles를 클릭한다.
- 역할에 teamlead를 선택하고 OK를 클릭해 대화상자를 닫는다.
- Core Team Area를 저장한다.
- Save에서 이메일을 보내고자 하는 사용자를 선택하고 OK를 클릭한다.
Team Area에 사용자 John을 기본으로 만들었기 때문에 John은 Project Area에 접근할 수 없다. 그러므로 John을 Project Area 구성원으로 추가해야 한다. Project Area에 사용자 추가하기 절에서 더 자세한 내용을 알아보기 바란다.
프로젝트에는 다양한 컴포넌트가 있을 수 있다. 이 연습을 통해 새 플러그인 프로젝트를 추가할 PetStore라는 컴포넌트를 만들 것이다. 저장소 작업공간에 컴포넌트를 만든 후 이를 스트림에 전달할 수 있다. 저장소 영역을 조작하지 않았다는 가정 하에 스트림 정의에서 이를 행할 것이다. 연재의 다음 부분에서 저장소 작업공간에서 스트림을 수정하고 이를 Project Area로 전달하는 방법을 설명할 것이다.
- Team Artifacts 뷰에서 PetStore Project Area > Streams > PetStore Team Stream 순서로 이동한다.
- PetStore 팀 스트림을 열었다면 Jazz가 기본 컴포넌트로 만들어졌음을 볼 수 있을 것이다. 스트림을 더블클릭하고 작업공간의 오른쪽 상단에 있는 PetStore Team Stream 탭을 더블클릭하여 스트림 정의 뷰를 연다.
- Components 섹션 하에서 기본 컴포넌트를 선택하고 이를 제거한다.
- New를 클릭하고(그림 15) 어떤 경고가 뜨든 OK를 클릭한다.
- 컴포넌트 이름을
PetStore라 하고 OK를 클릭한다. - 스트림 정의를 저장한다.
그림 15. 새 컴포넌트 추가하기
개발 주기 중 프로젝트는 다중 스트림을 가질 수 있다. 예를 들어 애자일 개발에서 현재 마일스톤은 M5지만 M4 설치 비트용 유지보수를 위해 나뉜 스트림을 가져야 한다. 다른 시나리오는 제품이 다양한 작은 프로젝트들을 가질 수 있고 그것들은 모두 다른 스트림을 가질 수 있다는 것이다. 프로젝트를 만드는 데 모든 내부 프로젝트 스트림은 통합 스트림(integration stream)이라는 것을 따라야 한다. 여기서부터 전반적인 프로젝트가 만들어진다. 애플리케이션을 만드는 것에서 통합 스트림을 정의할 것이다. 주 스트림(PetStore Team Stream)과 이의 다양한 컴포넌트는 통합 스트림으로 갈 것이다.
- Team Artifact 뷰에서 Stream 노드를 오른쪽 클릭하고 New Stream을 선택한다.
- 이름을
PetStore Integration Stream이라 한다(그림 16). - 이 스트림의 소유자로 Core [Main Development]를 선택한다.
- Flow Targets 섹션 하에서 Add를 클릭한다.
- PetStore Team Stream을 선택한다. 이렇게 하면 스트림이 통합 스트림으로 갈 수 있다.
- PetStore stream을 선택하고 오른쪽의 Edit 버튼을 클릭한다.
- PetStore 통합 스트림을 따르려면 스트림의 모든 컴포넌트가 필요하다. 그러므로 Flow all components 라디오 버튼을 선택하고 OK를 클릭한다.
- 프로세스하기 전에 스트림을 저장한다.
그림 16. 새 스트림 만들기
이제 팀 리더이자 빈 프로젝트를 만들고 이를 Project Area에서 공유할 John을 위해 작업 아이템을 만들 것이다. John은 자신을 위해 만들어진 작업 아이템에 관한 정보를 전혀 가지고 있지 않다. Team Area에 추가될 때와 작업 아이템이 부여될 때 이메일 통보를 받을 것이다.
- File 메뉴에서 New > Others를 선택한다.
- 마법사에서 작업 아이템 노드 하의 Workitem을 선택하고 Next를 클릭한다.
- PetStore Project Area를 선택하고 Next를 클릭한다(그림 17을 보자).
- 다음 화면에서 작업 아이템의 유형을 지정하라고 할 것이다. 기본적으로 Rational Team Concert는 화면에 나열한 것처럼 결함(Defect), 작업(Task), 그리고 그 외의 다른 작업 아이템 유형을 제공한다. Task를 선택하고 Finish를 클릭한다.
- 작업 아이템 편집기에 다음 정보를 넣는다.
- 요약: 프로젝트 구조를 만들고 이를 PetStore project area에서 공유한다.
- 설명: 세 가지 플러그인 프로젝트를 만든다.
- com.ibm.petstore.example.common
- com.ibm.petstore.example.service
- com.ibm.petstore.example.web
- 이 프로젝트들을 Core 컴포넌트에 추가한다.
- Filed Against를
PetStore로 변경한다. - 이 작업 아이템을 팀 리더인
John에게 부여해야 하므로 Owned By 필드를 John으로 바꾼다. - Priority를 High로 바꾸고 "Planned for"를
M1으로 바꾼다.
주의:
프로세스와 애자일 계획에 Eclipse way를 사용하므로 Rational Team Concert는 Milestone 1(M1)을 만들었고 작업 아이템을 이 마일스톤에 부여한다.
그림 17. 작업 아이템 만들기
John에게 부여된 작업 아이템은 특정 권한을 가진 사용자만이 만들 수 있는 스트림, 컴포넌트, 빌드 시스템 등에 통보가 필요할 것이다. Jazz 베타 3에서는 설치 당 한 사용자만 Administrator 권한을 갖는다. 이 경우 현재의 ADMIN 사용자다. 그러므로 ADMIN은 이제 관리자의 권한을 팀 리더인 John에게 다시 부여할 것이다.
- Team Artifacts 뷰에서 저장소 연결을 오른쪽 클릭하고 Administer와 Open Users를 선택한다.
- 사용자 이름에
ADMIN을 넣고 OK를 클릭한다. - ADMIN 사용자 페이지의 Client Access License 섹션에 Build System 체크박스를 선택하지 말고 사용자 정의를 저장한다.
- 같은 프로세스를 따라 사용자 John의 엔트리를 열고 Client Access License 섹션의 Build System의 체크박스를 선택한다.
- Repository Group 섹션에서 Jazz Admins를 선택해 John도 Administrator 권한을 가질 수 있게 한다.
- 사용자 정의를 저장한다.
ADMIN 사용자가 해야 하는 몇 가지 초기 작업을 완성했다. 이제 John으로 로그인하여 나머지 작업을 수행할 것이다. 이는 저장소 연결의 사용자 이름과 비밀번호를 변경하여 같은 Rational Team Concert 인스턴스에서 행하거나 Rational Team Concert의 다른 머신이나 인스턴스에서 행할 수 있다.
John으로 로그인하려면(john을 사용자 이름과 비밀번호로 사용) 저장소 연결을 만들고 ADMIN 사용자로 로그인한 이 글의 초기 섹션을 참조하자.
주의:
기본적으로 모든 사용자는 자신의 사용자 이름과 같은 비밀번호를 가지고 있다.
John으로 Project Area에 로그인하면 그림 18과 같은 Team Artifacts 뷰를 볼 수 있을 것이다.
그림 18. Team Artifacts 뷰
Team Artifacts 뷰에서 John은 ADMIN이 만든 모든 변경사항을 볼 수 있다. Project Area, 스트림 컴포넌트, 자신의 Team Area, 그리고 Team Area의 다른 사용자를 볼 수 있다. 이와 비슷하게 다른 사용자인 Joe와 Larry는 이 변경사항들을 볼 수 있다.
이제 My Work 뷰를 열어 John에게 부여된 작업 아이템을 보고 이 작업 아이템에 추정되는 시간을 수정할 것이다.
- Window > Show View > Others > Workitems > My Work 순으로 이동한다.
- 새로 부여된 작업(PetSotre)에서 어제 ADMIN이 만들고 John에게 부여한 작업 아이템을 볼 수 있다.
- Summary를 더블클릭하여 작업 아이템의 설명을 열자. 이는 작업 아이템의 신속한 뷰다.
- 작업 아이템의 오른쪽 구석에 있는 clock icon을 클릭하고 추정 시간을 4 hours로 변경한다(그림 19).
그림 19. 작업 아이템에 예측되는 시간 제공하기
- 인박스의 Accept all Work 링크를 클릭해 작업 아이템의 추정 시간을 저장할 수 있다.
- My Work 뷰 안에 있는 Save 아이콘을 사용해 추정과 작업 아이템을 저장한다.
- 이 뷰의 아래쪽의 텍스트 박스에서 작업 아이템을 검색, 필터, 색 코드할 수 있다. 이 뷰는 또한 하나의 섹션에서 다른 섹션으로 작업 아이템을 끌어낼 수 있도록 한다.
- 또한 Work Item 뷰를 열고 자신에게 부여된 작업 아이템을 볼 수 있다. 작업 아이템을 더블클릭하여 작업 아이템을 열고 편집기의 필드를 수정할 수 있다(그림 20).
그림 20. 작업 아이템 편집기
주의:
작업 아이템의 추정 시간은 4hrs로 나타나는데 이는 My Work 뷰에서 수정한 것이다.
John은 이 작업 아이템을 완성하려면 프로젝트를 만들 작업공간이 필요하다는 것을 느낀다. 그러고 나면 작업공간에서 스트림에 변경사항을 전달할 수 있다.
- Team Artifacts 뷰에서 My Repository workspaces를 오른쪽 클릭하고 New Repository workspace를 선택한다.
그림 21. 새 저장소 작업공간
- 스트림을 선택한다.
- Repository 드롭다운 메뉴에서 john@localhost를 선택한다. 주의: 서버가 원격 머신에서 작동하면 localhost를 머신의 네트워크 이름으로 바꿔야 할 것이다.
- Flow with the stream용 라디오 버튼을 선택한다. 이 옵션을 선택하면 스트림의 가장 최신 변경사항을 받을 수 있다. 다른 이들이 자신들의 코드를 확인할 때 작업공간의 인커밍으로 이를 볼 것이다.
- PetStore Project Area와 PetStore Team Stream을 선택한다(그림 22를 보자).
그림 22. 저장소를 위해 스트림 선택하기
- 작업공간의 이름을 변경할 수 있지만 일단 지금은 기본으로 남겨두고 Next를 클릭한다.
- 다음 화면은 PetStore 컴포넌트를 포함한 스트림에 있는 다양한 컴포넌트를 보여준다. 이를 선택하고 Finish를 클릭한다.
- 이렇게 하면 John의 저장소 작업공간을 만들 것이다.
- John은 저장소를 로드해야 할 것이다. 이 활동을 수행하려면 John의 로컬 작업공간에 있는 저장소의 모든 가능한 파일을 가져와야 한다. 아직 저장소에 파일이 없으므로 지금은 이 단계를 무시해도 된다. Cancel을 클릭하여 대화상자를 닫는다.
주의:
코드는 다음 세 가지 장소에 있다.
- 개발 머신의 로컬 작업공간
- 방금 만든 것 같은 Jazz 저장소
- 만드는 동안 선택되는 프로젝트의 주 코드 스트림
A에서 B로 코드가 옮겨져야 할 때 Check in 활동을 호출해야 한다. B에서 C로 변경을 옮기고자 할 때 Deliver 활동을 호출한다. 이후 이 모든 활동을 어떻게 수행하는지 볼 것이다. 기본적으로 로컬 작업공간(A)에 작성, 저장하는 모든 것은 Jazz 작업공간(B)에서 확인된다. 이 설정을 수정하려면 Rational Team Concert의 Preference 옵션을 사용하면 된다.
빈 플러그인 프로젝트를 만들고 이를 컴포넌트에 추가하기
이제 작업 아이템을 업데이트하여 In Progress 상태를 보여줄 것이다.
- Work Item 뷰를 사용해 작업 아이템을 열고 Start Working 상태로 변경한다. 이렇게 하면 시작에서 In Progress로 변경될 것이다.
이제 빈 플러그인 프로젝트(일반적으로 서비스와 웹)를 만들고 이를 PetStore 컴포넌트에 추가할 것이다.
- File >New >Project >Plug-in Development >Plug-in Project를 선택한다.
- Name에
com.ibm.petstore.example.common을 넣고 Next를 클릭한다. - Activator generation과 contribution to UI 체크박스의 선택을 해제하고 Finish를 클릭한다.
- 같은 프로시저에 따라
com.ibm.petstore.example.service와com.ibm.petstore.example.web이라는 두 개의 플러그인 프로젝트를 더 만든다. - Package Explorer 뷰에서 com.ibm.petstore.example.common 패키지를 오른쪽 클릭하고 Team > Share Project를 선택한다(그림 23).
그림 23. 프로젝트 공유하기
- Jazz Source Control을 선택하고 Next를 클릭한다.
- PetStore Team Stream Workspace 하의 PetStore component를 선택하고(그림 24) Next를 클릭한다.
그림 24. 컴포넌트를 선택해 프로젝트 공유하기
- 세 개의 새로 만든 프로젝트를 선택하고 Finish를 클릭한다.
이 뷰는 어떤 파일, 폴더, 컴포넌트가 스트림의 것들과 다른지 시각화하는 데 유용하다. 세 가지 새 프로젝트를 스트림에 추가했지만 아직 전달하진 않았다. 현재 이 작업은 John에게만 보이지만 스트림에 전달되면 다른 사용자들도 볼 수 있을 것이다.
- Window > Show View > Others > Pending Changes를 선택해 뷰를 연다.
- 이 뷰에서 만들어진 세 가지 프로젝트의 Outgoing 노드(그림 25)를 볼 수 있다.
그림 25. Pending Changes 뷰의 Outgoing 노드
- 기본적으로 Share Project 코멘트가 이 변경에 추가된다. 코멘트를 클릭하고 이를 편집하여 변경 세트의 코멘트를 변경해 더 자세하게 만들 수 있다.
- 스트림에 전달하기 전에 언제나 변경 세트는 작업 아이템과 연결짓는다. 이렇게 해야 변경 세트를 더 추적 가능하도록 만들 수 있다. 그러므로 변경 세트를 오른쪽 클릭하고 Associate with work item을 선택한다(그림 26).
그림 26. 작업 아이템과 변경 세트 연결짓기
- 필터 박스에 작업 아이템의 초기 낱말이나 작업 아이템 숫자를 넣으면 작업 아이템이 아래 섹션에 보일 것이다.
- 작업 아이템을 선택하고 OK를 클릭한다. 이렇게 하면 변경 세트와 작업 아이템을 연결지을 것이다.
- 다시 변경 세트를 오른쪽 클릭하고 Deliver를 선택해 변경을 스트림에 넣는다.
첫 변경사항을 스트림에 전달했다. 이제부터 사용자가 로그인하거나 작업공간을 만들고자 할 때마다 기본적으로 이 변경사항들을 볼 수 있을 것이다. John이 작업 아이템을 완성했으므로 이제 작업을 해결할 수 있다.
- Work Item 뷰에서 작업 아이템을 연다.
- 상태를 Resolve로 변경하고 작업 아이템을 저장한다.
이제 John은 자신과 Joe, Larry를 위해 몇 가지 작업 아이템을 만들기로 결정한다.
- 모델 정의 만들기(John)
- 모델에서 데이터에 접근하기 위한 서비스 만들기(Joe)
- 데이터를 보여주기 위한 웹 UI 만들기(Larry)
John은 또한 자신을 위해 작업 아이템을 만들어 작업 공간에서 프로젝트를 작동시키고 테스트하는 프로세스를 정의한다(Run/Debug 구성). 이렇게 하면 개발자들은 서버에 프로젝트를 배치하지 않고도 자신의 플러그인을 테스트할 수 있다. 정의는 작업공간의 최신 코드를 고르고 서버를 시작할 때마다 사용할 것이다.
작업 아이템을 만들고 사용자에게 부여하는 방법을 이해하려면 작업 아이템을 만들고 이를 사용자에게 부여하기 절을 확인하기 바란다.
그림 27. Work Item 뷰 업데이트
Joe와 Larry의 작업 아이템이 서로 관련있다고 한다면 이 작업들 아이템에 링크를 만들 것이다.
- Joe의 작업 아이템을 열어 서비스를 만든다.
- 작업 아이템 편집기는 다중 페이지 편집기이므로 Links 페이지를 클릭해야 한다.
- Links 섹션에서 Add를 클릭해 메뉴를 연다.
- Add Related 옵션을 선택한다(그림 28).
그림 28. 작업 아이템 연결하기
- Work Item Selection 대화상자에서 Larry의 작업 아이템을 선택하고 OK를 클릭한다.
- 작업 아이템을 저장한다.
- 이제 두 작업 아이템이 연결됐다. Larry의 작업 아이템을 열면 Links 섹션 하에 관련 작업 아이템이라 표시돼 있는 서비스 만들기용 Joe의 작업 아이템이 보일 것이다.
Joe와 Larry는 자신들의 작업 아이템에 관련된 이메일 통보를 받았고 저장소 작업공간(저장소 작업공간 만들기 주제를 보자)인 "Joe's PetStore Team Stream Workspace"와 "Larry's PetStore Workspace"에 로그인했다. 필요한 때 모든 플러그인을 작업공간에 로드하자.
현재 여러 개의 작업공간을 갖고 있으므로 하나의 작업 공간에서 어떤 변경사항이 만들어지거나 전달되면 다른 사용자의 작업공간에 인커밍 변경으로 보일 것이다. 이들 인커밍 변경은 Pending Changes 뷰에서 보일 것이다.
주의:
인커밍 변경이 충돌할 경우(예를 들어 한 사람이 먼저 변경을 만들었는데 다른 사용자에 의해 수정됐을 때) Pending Changes 뷰에 Unresolved라는 이름의 다른 노드가 보일 것이다. 대체로 빌트인 파일 비교 기능과 자동 병합(Auto Merge)이 이 변경을 해결할 것이다. 자동 병합이 이를 행하지 못한다면 수동으로 이 문제들을 해결해야 한다. Compare 편집기를 사용해 충돌을 해결할 수 있다.
프로젝트를 개발하기 위한 초기 환경을 가지게 됐다. Project Area를 만들고 팀을 정의했다. 또한 스트림을 만들고 소스코드가 있는 컴포넌트를 만들었으며 저장소 작업공간, 작업 아이템, 뷰, 이들을 사용하는 방법 등을 배웠다.
John은 모델을 정의하고 서비스를 제공하고 웹 사용자 인터페이스를 만들기 위해 몇 가지 작업 아이템을 만들었다.
연재의 다음 회에서는 다음 주제들을 다룰 것이다.
- Part 2. 프로젝트의 데이터 모델 정의하기
- Part 3. 데이터 접근을 위해 서비스 정의하기
- Part 4. 웹 사용자 인터페이스를 개발해 데이터 보기
- Part 5. 분석을 위한 빌드 구성과 보고서 만들기
교육
- Jazz 플랫폼의 개요를 보자.
- 공식 Jazz 웹 사이트(등록 필요, 무료)를 방문해 비디오, 뉴스, 다운로드, 플러그인 등의 서비스를 이용하자.
- 관련 글과 질문의 답 등을 찾을 수 있는 Jazz 위키를 확인하자.
- 버그를 발견했는가? 새 작업 아이템을 만들어 Jazz 개발자들이 고칠 수 있도록 하자. 처음으로 버그를 발견했는지 확인해 반복을 피하자.
- 스크럼 프로세스(Scrum Process)를 사용해 Rational Team Concert 프로젝트를 관리하는 방법에 대해 흥미가 있는가? IBM 필자자인 Millard Ellingsworth의 글, IBM Rational Team Concert와 Jazz 플랫폼으로 스크럼 프로젝트 관리 방법을 사용하는 방법을 읽자.
- developerWorks의 아키텍처 분야에서 관련 분야의 기술을 향상시킬 수 있는 참고자료를 얻자.
- 기술 서점을 찾아 관련 기술 주제에 관한 책을 찾아보자.
제품 및 기술 얻기
- IBM Rational Team Concert Standard Edition의 무료 시험판을 받자.
- IBM 제품 평가판을 다운로드해 DB2®, Lotus®, Rational®, Tivoli®, WebSphere®의 애플리케이션 개발 도구와 미들웨어 제품에 익숙해지자.
토론
- Jazz 포럼에 가입해 플랫폼과 관련된 특정 질문을 할 수 있다.
- developerWorks 블로그를 확인하고 developerWorks 커뮤니티에 적극 참여하자.

Vaibhav Srivastava는 인도 Bangalore의 IBM India Software Laboratory에서 Rational Quality Management Team 멤버로 일한다. 초기 마일스톤 때부터 Jazz와 Rational Team Concert를 사용해왔다. 현재 역할 전에 IBM Rational Manual Tester와 키워드 솔루션용 Rational Functional Tester 통합 같은 이클립스 기반의 애플리케이션 작업을 했다. Vaibhav는 또한 IBM DB2 팀에서 제품 환경의 다양한 보고 도구 사용에 관해 분석을 했다.