Peter .WEB2

June 28, 2008

프로젝트 협업을 위한 Trac, CodeBeamer, Jira, Mantis의 간단 비교

복잡한 프로젝트환경을 성공적으로 수행하기 위한 필수 조건 중의 하나가 협업 시스템이라고 생각한다.

요구분석/정의 > 상위/상세설계 > 구현/시험 > 검증 > 납품 및 운영/업그레이드의 cycle을 지속적으로 유지하기 위해서는 제품/프로젝트 개발 및 운영/업그레이드를 구분한 Activity관리 및 산출물기반으로의 협업이 이뤄져야하는데, PM/개발자 및 프로젝트에 많은 영향을 미치는 stake-holder를 적절한 수준의 보안 정책으로 이에 포함시켜 activity 및 산출물을 공유하고 협업하면 그만큼 프로젝트 성공율이 높아질 뿐더러, 자연스럽게 Project-Lessons-Learned의 DB가 축적되기때문에, 이러한 협업 시스템은 필수적이라고 보여진다.

그동안 사용한 tool들을 간단히 비교/공유 하고자 한다.

* Mantis (Open Source)

버그에 한정된 전형적인 Bug Tracking System으로 활용하면 Issue관리까지도 가능하나 제품 초기의 컨셉이 BTS에 한정이 되어있어서, 이슈/문서/지식/형상을 포함하는 개념까지로 확장하기가 어렵다. PHP+MySQL 조합으로 설치가 그리 어렵지 않으나 WIKI 및 Subversion과 연동시킬 경우 설정이 다소 어려움.

* Trac (Open Source)

이슈(로드맵/마일스톤)+위키+형상관리(Subversion)뷰어 기능이 존재하여, 상호간에 Link 개념으로 유기적 연동이 된다 (이슈를 발생하여 이 이슈 key를 subversion커밋할 시 포함시키면 자동으로 연동되며, WIKI에서도 이슈 key를 연동할 수 있음.) 이슈, 위키의 기능들이 최소한의 기능들로 구성됨. TNF, 제로보드등에서 대표적으로 사용하고 있음. 설치가 어렵웠는데 최근 0.11로 판올림하면서 설치가 쉬워졌고, TOW등을 이용하면 편하게 사용할 수 있음. ( TOW (TracOnWindows) http://trac.tistory.com/ )

* Jira (Commercial이나 Open Source 프로젝트/비영리재단은 무료)

Jira는 이슈(버전/콤포넌트)기반 추적 시스템이나 work-flow개념을 탑재하여, 다양한 형태(개발 + 운영관리)의 이슈 관리를 할 수 있고, 사용자 입맞에 맞추어 거의 모든 필드를 대상으로 통계 추출을 할 수 있음. 같은 회사에서 나오는 WIKI (Confluence) , CROWD(SSO), Fisheye(형상관리뷰어), Crucible(코드리뷰도구)의 연동이 이슈를 바탕으로 유기적으로 연결되어 있음.

* CodeBeamer (Commercial이나 5명이하 2개미만 프로젝트/Open Source 프로젝트는 무료)

이슈+WIKI+Subversion/뷰어+빌드관리+Forum/게시판까지 포함된 프로젝트 협업 관리 시스템의 종합 상자격으로 설치도 압축 풀고 실행만 하면 바로 협업시스템을 쓸 수 있을 정도로 잘 되어 있음. 2008년 Jolt Productivity 및 Software Dev. Jolt Awards 수상

약간의 주관적인 판단이긴 하지만

- 설치용이성 : CodeBeamer > Trac (TOW or Easy Install사용시) > Jira > Mantis(w WIKI/SVN)

- 관리용이성 (사용자/백업/복구) : CodeBeamer > Jira > Trac > Mantis

- IT프로젝트 활용도 : CodeBeamer > Jira > Trac > Mantis

- Customize/(쉬운)확장성: Jira > CodeBeamer > Trac > Mantis

IT/SW개발회사이고, 기본 협업시스템이 없다면 CodeBeamer 이나 Trac을 도입을 추천하고, Non-IT/일반회사일 경우 Jira (+Confluence/WIKI) 조합을 추천한다.

January 1, 2008

OSX Leopard를 Subversion 서버로 사용하기

Filed under: IT-PM Skill, System Architecture — Peter Kim @

Leopard에는 subversion이 기본적으로 설치되어있다.

Tiger때에는 무척이나 복잡 (Getting Control with Subversion and Xcode) 했었는데, Leopard에서는 그리 어렵지 않게 Subversion 서버를 사용할 수 있게 되었다.

집의 Leopard를 홈서버 격으로 Subversion 서버로 설정하였고, Know-How를 공유하고자 한다.

1) root 계정 활성화

2) Subversion Repository 생성

3) 자동실행 Script 작성

4) Start-up Item 등록

5) Client 사용

1. root 계정 활성화

- Application > Utilities에서 “Directory Utility”를 실행하여, “Edit > Enable Root Password” 를 클릭하여 root 패스워드를 등록한다.

- Terminal을 열어서 “su” 명령어를 통해 root 계정으로 login한다.

$su

 

앞서 등록한 root 패스워드를 입력하여 root 계정으로 로그인 한다.

2. Subversion Repository 생성

1) Repository 생성

우선 Root Repository를 생성해야 한다. (여기서는 /data1/svn을 Repository root로 설정한다. 사용자 환경에 맞추어 변경하세요.)

#mkdir /data1/svn

#cd /data1/svn

#svnadmin create –fs-type fsfs project

 

이렇게하면 /data1/svn에 project directory 및 기본적으로 하위 디렉토리들이 만들어 진다.

인증/보안을 위한 몇가지 옵션을 설정해 주어야 한다.

 

2) 기본적인 환경 설정

#vi /data1/svn/project/conf/svnserve.conf

 

[general]

anon-access = none

auth-access = write

password-db = passwd

 

기본적으로 anonymous access 불가, 인증 성공한 사람만 write권한, 인증방식은 passwd 파일 방식

 

#vi /data1/svn/project/conf/passwd

 

[users]

userid1=password1

userid2=password2

 

접속을 허용할 userid 및 password를 기재해주면 된다.

3. Subversion서버 자동실행 Script 작성

- Subversion Daemon을 실행시키기 위한 초기 작업으로 구동 script 작성

#mkdir /data1/script

#vi /data1/script/subvershion.sh

————————————————————————————————–

 

/usr/bin/svnserve -d -r /data1/svn

————————————————————————————————–

#chmod 755 /data1/script/subvershion.sh

4. Start-up Item 등록

- Leopard가 재부팅될 시 자동으로 Subversion Daemon 구동 script를 실행시키기 위해 Start-up Item 등록

 

#vi /Library/LaunchDaemons/com.subversion.launchd.plist

 

 


<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
        "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
        <key>Label</key>
        <string>com.subversion.launchd</string>
        <key>ProgramArguments</key>
        <array>
                <string>/data1/script/subvershion.sh</string>
        </array>
        <key>RunAtLoad</key>
        <true/>
</dict>
</plist>

 

#chown root:wheel /Library/LaunchDaemons/com.subversion.launchd.plist

이후 Rebooting 하면 Subversion이 떠 있는걸 확인할 수 있다. ( ps -ef | grep svnserve )

5. Client 사용

1) OSX terminal

Terminal명령어로 Subversion을 사용하기 위해서는 환경 변수 설정이 필요한데 다음과 같다.

$cd ~

$vi .bash_profile

————————————————————————————————–

 

SVN_EDITOR=/usr/bin/vim

export SVN_EDITOR

————————————————————————————————–

 

2) OSX GUI

- zigVersion : http://zigzig.com/

- svnX : http://www.apple.com/downloads/macosx/development_tools/svnx.html

- Versions : 아직 출시되지 않았지만 Disco를 제작한 madebysofa에서 Versions라는 SVN GUI client 제품을 개발하고 있고, 조만간 출시될 예정이라고 함.

3) Windows version

- Tortoise : http://blog.empas.com/mcchae/19118563 에 설명된 Tortoise 참조.

Subversion 참고 Reverence

- http://svnbook.red-bean.com/

- KLDP Subversion

Blog at WordPress.com.