본문 바로가기

프로그래밍

TRAC Review

 TRAC Review

Trac은 웹기반으로 소프트웨어 프로젝트를 관리하는 최소한의 접근방법입니다. Trac의 목표는 소프트웨어의 문제점, 개선책 그리고 전체 진행과정을 효과적으로 추적하고 다루는 간단한 방법을 제공하는 것입니다.

Trac의 모든 부분은 기존에 팀에서 사용되던 절차와 문화에서 최대한 벗어나지 않으면서 개발자가 좋은 소프트웨어를 작성하도록 돕는다는 하나의 목표를 가지고 디자인 되었습니다.

Trac을 설치하고 관리하는 법보다 Trac을 보다 유용하게 사용하는 법에 대해서 기술하였습니다.

트랙은 크게 세 가지의 유용한 기능을 제공하고 있습니다.
  1. 트랙은 기본적으로 위키입니다. 위키가 제공하는 기능( 예: 페이지 작성, 하이퍼링크, 히스토리, 검색 )을 모두 제공합니다.
  2. 트랙은 서브버전( Subversion )과 강하게 연동되어 있습니다. 프로젝트의 변경 내역 열람, 소스 코드 탐색 등이 가능합니다.
  3. 트랙은 프로젝트 관리를 할 수 있는 유용한 개념들을 제공합니다. 마일스톤의 설정, 티켓 발행 등이 가능합니다.
  4. 본문은 위의 세 가지 기능을 토대로 각 내용을 세세히 설명할 것입니다.
트랙은 크게 7 가지의 메뉴를 제공하고 있습니다.

위의 메뉴를 기능 별로 나눠보면 다음과 같습니다.

  1. 위키로서의 트랙 : 위키( Wiki ), 검색( Search )
  2. 서브버전과의 연동 : 시간 순 이력( Timeline ), 소스 둘러보기( Browse Source )
  3. 프로젝트 관리 : 로드맵( Roadmap ), 티켓 보기( View Tickets ), 티켓 등록( New Ticket )
더 상세한 내용은 아래 해당하는 세부 항목에 있습니다.

위키로서의 트랙

트랙은 위키의 한 종류입니다.

위키는 게시판과 같이 글을 게시하고 표시하는 하나의 양식입니다. 위키는 크게 세 가지의 개념을 지니고 있습니다.

  1. 웹페이지  게시판에서 하나의 을 작성하듯 위키에서는 하나의 페이지를 작성합니다.
  2. 제목  게시판에서 제목을 작성하듯 위키에서도 페이지의 제목을 작성해야합니다. 다만 글과 다르게 페이지의 같은 제목은 단 하나만 존재할 수 있습니다. 제목은 위키에서 접근할 수 있는 주소가 됩니다.
  3. 하이퍼텍스트  위키는 각 페이지를 쉽게 넘나들 수 있도록 주소를 엮어줍니다. 즉 글 본문에 해당하는 제목을 쓰게 되면 그 제목에 해당하는 페이지를 링크로 걸어주는 시스템입니다. 위키의 가장 큰 특징이라 할 수 있습니다.

게시판에서 하나의 을 작성하듯 위키에서는 하나의 웹페이지를 작성하게 됩니다. 게시판의 제목 처럼 위키에서도 페이지의 제목을 설정할 수 있으며 그 제목이 바로 그 페이지를 접근할 수 있는 주소가 됩니다. 즉, 예를 들어 위키의 주소가 /wiki/라고 하고 만든 페이지의 제목이 MyFirstWiki였다면 접근할 수 있는 주소는 /wiki/MyFirstWiki가 되는 겁니다. 그리고 이 페이지가 만들어진 뒤 본문 아무데나 MyFirstWiki 라는 단어를 사용했다면 자동적으로 그 단어를 방금 만들어진 페이지와 연결시켜 줍니다.

위키의 위와 같은 양식으로 인한 장점은 다음과 같습니다.

  • 하이퍼텍스트로 인해 세부 내용을 일일이 링크 걸어주지 않아도 쉽게 참고할 수 있습니다.
  • 같은 주제에 해당하는 글은 허용되는 누구나 수정할 수 있기 때문에 정보의 집중도가 커집니다.
  • 글의 변화내역은 항상 저장되어 있으므로 누군가 실수로 잘못된 내용을 기입하였다면 전의 글로 롤백할 수 있습니다.
  • 변화된 페이지는 최신 변화 목록에서 항상 확인할 수 있습니다.

다만 단점은 다음과 같습니다.

  • 유저가 위키의 규칙을 잘 알아야합니다. 이는 위키의 접근장벽을 높입니다. 그렇지 않은 유저는 위키의 일관성을 해할 수 있습니다.
  • 위키의 페이지를 새로 만들었으면 그 페이지를 꼭 어딘가에 연결시켜놓아야 합니다. 그렇지 않으면 페이지는 존재하나 아무도 그 페이지의 존재를 모를 수 있습니다.
위키의 편리함은 기술적인 내용이나 토론에서 매우 쓸만합니다. 더 자세한 내용은 아래의 페이지들을 참고해주세요.

서브버전과의 연동

위키는 프로젝트 관리가 그 목적인만큼 서브버전이라는 강력한 소스 관리 프로그램과 연동이 되어있습니다. 소스의 열람은 트랙 만으로도 충분히 가능하며 심지어는 서브버전 비쥬얼 툴인 거북이SVN( http://tortoiseSVN.tigris.org )보다도 더 강력한 비쥬얼을 제공하기도 합니다.

Timeline

서브버전의 시간대 별 관리사항을 알려줍니다.

사용자 삽입 이미지

위의 그림과 같이 날짜대로 변경사항을 알려줍니다. 이 페이지에서는 리비젼과 그 리비젼의 코멘트 내용을 간략하게 보여줍니다. 적색으로 표시된 내용들은 링크이며 클릭하면 변경된 세부 내역을 상세히 보여줍니다.

사용자 삽입 이미지

상세 내역이 자세하게 나옵니다. 자체적인 DIff 프로그램을 이용하여 그 내용이 매우 시각적으로 잘 표현되어 나옵니다. 각 파일 이름을 클릭하면 그 파일의 변경 내용을 한 눈에 볼 수 있습니다. 오른쪽의 작은 박스를 이용하면 다음과 같이도 볼 수 있습니다.


사용자 삽입 이미지

Browse Source

소스를 둘러볼 수 있습니다.


사용자 삽입 이미지

마치 파일 탐색기를 이용하듯 각 폴더를 이동할 수 있습니다. 또한 각 폴더의 리비젼이 몇인지, 최종 변경 날짜가 언제인지 등등의 정보가 나와있어 매우 편리합니다. 각 파일의 내용을 클릭하면 소스파일의 내용도 볼 수 있습니다.


사용자 삽입 이미지


아래의 View Changes... 를 이용하면 여러 리비전의 변화 내용을 한 눈에 살펴볼 수 있습니다.
 
사용자 삽입 이미지

15 리비젼부터 21 리비젼까지의 변화를 살펴보도록 하겠습니다.
 
사용자 삽입 이미지


매우 많은 변경사항이 보입니다.

이와 같이 강력하고 시각적인 탐색기능을 제공하고 있으며 이것이 별다른 설치 없이 누구에게나 보여줄 수 있습니다. 따라서 개발자가 아닌 다른 사람에게도 웹 페이지를 보여주는 것만으로 소스나 자원을 쉽게 가져가도록 할 수 있습니다. 물론 개발자가 보기에도 충분히 훌륭합니다.

이와같이 서브버전에서 읽기에 관한 기능들은 거의 다 이용할 수 있게 되어 있습니다. 오히려 웹 페이지라는 툴을 이용함으로써 시각성과 접근성 둘 모두를 얻었습니다. 안타깝게도 소스세이프나 다른 소스관리 프로그램은 아직 연동이 되지 않는 것으로 알고 있습니다.

프로젝트 관리

이제는 트랙에서 프로젝트 관리를 어떻게 하는지 알려드리겠습니다.

트랙에서 새로이 생긴 개념은 바로 티켓( Ticket )과 마일스톤( Milestone ) 입니다.

  • 티켓  하나의 개발 이슈입니다. 이것은 버그 수정이 될 수도 있고 새로운 기능 추가가 될 수도 있습니다. 프로젝트에 있어서 변경사항이 필요한 최소 단위라고 보시면 되겠습니다.
  • 마일스톤  마감일이라고 보면 비슷합니다. 프로젝트에 있어서 프로토 타입 공개클로즈 베타 서비스 등 일종의 정해진 마감일입니다. 각 티켓은 무조건 하나의 마일스톤을 지니게 됩니다.

누가 생각한 단어인지 몰라도 티켓, 참 잘 정한 것 같습니다.

티켓

자, 티켓을 한번 봐 보도록 합시다.

사용자 삽입 이미지

예쁘장한 디자인입니다. 자 각 항목별로 알아보도록 합니다.

  • 티켓 제목  Arrange Damage 라는 글자가 맨 위에 보이시는지요? 바로 이 티켓의 제목입니다. 티켓의 제목은 이 티켓의 내용을 함축하고 있어야겠죠. 이 티켓은 Arrange Damage 라고 합니다. 무언지는 모르겠지만 데미지를 조정하도록 요구하는 티켓으로 보입니다.
  • 발행 날짜  Opened 8 moths ago. 8 달 전에 발행한 티켓이네요. Last modified 6 moths ago. 이 티켓의 내용을 프로젝트에 마지막으로 반영한 것은 6 개월 전입니다.
  • Reported by  Digitz 라고 나와있죠? 이건 티켓을 발행한 사람입니다. 티켓 발행자는 프로젝트 일원이면 누구나 발행할 수 있습니다. 버그를 발견했거나 기능을 추가할 필요성이 있을 때 그 당사자가 발행하면 되겠죠.
  • Assigned to  digitz 군요. 개발자 자신이 티켓을 접수할 수도 있고, 혹은 프로젝트 매니저가 해당 개발자에게 직접 넘길 수도 있습니다. 티켓을 받은 사람은 티켓을 처리하거나 다시 티켓을 딴 사람에게 넘기던가 하면 됩니다.
  • Priority  티켓의 중요도를 나타냅니다. trivial < minor < major < critical < blocker의 순으로 나뉩니다.
  • Milestone  이 티켓이 속한 마일스톤을 나타냅니다. 마일스톤에 대한 내용은 다음 항목에서 설명하도록 하겠습니다.
  • Component  이 티켓이 관여하는 모듈이 무엇인지 나타냅니다. 예를 들어 클라이언트 어플리케이션이 있고 스크립팅 툴이 있다면 그것들이 컴포넌트가 될 수 있겠죠.
  • Version  이 티켓이 유효한 버전을 나타냅니다. 이것은 리비젼과는 다르게 취급됩니다.
  • Keywords  이곳에 해당하는 키워드들을 등록합니다. 이 키워드들은 나중에 검색할 때 효과적으로 동작합니다.
  • Cc  티켓 발행자를 제외한 다른 사람에게도 이 티켓에 변경사항이 있을 때 메일을 보내도록 합니다. 참조라고도 하죠.
  • Description  티켓의 세부 설명을 적습니다. 위키 문법을 이용할 수 있으므로 하이퍼텍스트로 다른 페이지를 연결하는 것도 가능합니다.

이런 내용들을 티켓 한장에 담고 있습니다. 이 티켓은 개발자에게 하나의 개발 항목이 되는 것이죠.

이런 티켓은
  • 티켓을 받거나( accept )
  • 해결하거나 ( resolve )
  • 다른 사람에게 교부( reassign )

할 수 있습니다. 만일 해결이 되었다면 담당자는 이 티켓을 폐기( close )할 수 있습니다. 폐기하게 되면 마일스톤에 진척도 그래프가 올라가게 됩니다.

마일스톤

마일스톤은 각각의 마감 시한을 나타냅니다.

패치 올리는 날, 클로즈 베타 시행하는 날, 프로토 타입을 올리는 날. 그 어떤 것이 될 수도 있습니다. 마일스톤은 그 마감 시한과 티켓들을 지니고 있으며 그것을 예쁜 그래프로 표시해줍니다.


사용자 삽입 이미지

각각의 마일스톤이 나와있고 마감시한이 6, 7달이 지났다는 걸 나타내고 있습니다. 마지막 마일스톤인 Implement Multiplay를 살펴보면 폐기된 티켓이 두 장, 아직 남아있는 티켓이 한 장. 그래서 67%의 완성율을 지니고 있다고 알려주고 있습니다. 그 외의 마일스톤의 경우 100%인데도 그래프가 보이는 이유는 마일스톤 설정자가 그 마일스톤을 폐기하기 전까지는 그 마일스톤은 유효한 것으로 칩니다. 왜냐면 언제든 티켓이 재발행되거나 할 상황이 나올 수 있기 때문이죠. 그리고 100%라고 나와있는 그래프를 좀 더 오래보면 좋지 않습니까. 실제로 티켓을 폐기하고 늘어가는 그래프를 보면 보람이라는 녀석이 조금씩 차오르는 걸 느낄 수 있습니다.

놀랍게도 빨간 글자 뿐만 아니라 그래프도 각각의 통계 페이지를 제공합니다. 여기서 일일이 스크린 샷을 첨부하기 보다는 직접 눌러보시기를 궈장합니다. 그냥 눌러 보아도 이해가 잘 될 정도로 일목요연하게 정리가 잘 되어 있습니다.

메뉴 설명

굳이 메뉴를 설명할 필요 있겠냐마는 간단히 설명하자면 다음과 같습니다.

  • Roadmap  마일스톤 그래프를 보여줍니다. 바로 위의 그림을 참고하세요.
  • View Tickets  현재 프로젝트의 모든 티켓을 분류하여 보여줍니다.
  1. Active Tickets : 현재 남아있는 모든 티켓을 보여줍니다.
  2. Active Tickets by Version : 현재 남아있는 모든 티켓을 버전별로 보여줍니다.
  3. All Tickets by Milestone : 모든 티켓을 마일스톤별로 보여줍니다.
  4. Assigned, Active Tickets by Owner : 현재 티켓을 가지고 있는 사람별로 보여줍니다.
  5. Assigned, Active Tickets by Owner (Full Description) : 위의 항목을 좀 더 상세하게 보여줍니다.
  6. All Tickets By Milestone (Including closed) : 3 번 항목을 폐기된 티켓도 함꼐 보여줍니다.
  7. My Tickets : 나에게 할당된 티켓을 보여줍니다.
  8. Active Tickets, Mine first : 모든 티켓을 보여주되, 나의 것을 제일 위에 보여줍니다.
  • New Ticket  새 티켓을 발행합니다.
  • Search  프로젝트 내부에서 검색합니다. 위키만이 가진 장점입니다. 속도도 매우 빠릅니다.

위 와 같이 트랙을 크게 기능별로 세 개를 알아보았습니다. 트랙은 프로젝트 관리에 있어 충분하다고는 할 수 없지만 필수적인 최소한의 요건을 지니고 있습니다. 트랙만으로도 충분히 잘 돌아가는 프로젝트들도 여럿이 있으며 웹 기반이라 어떠한 플랫폼에서도 돌아갑니다. 또한 오픈 소스라서 별도의 라이센스가 필요없습니다.

가볍지만 강력한 프로젝트 관리자.

당신도 한 번 사용해보심이 어떻습니까 ?

관련 링크


'프로그래밍' 카테고리의 다른 글

NDC 2016 참관기  (0) 2016.04.28