5장. Trac On Windows - Trac을 실제로 사용해 보자 지금까지 Trac과 서브버전 설정에 대해서 알아보았습니다. 그럼 실제로 Trac을 어떻게 사용하는지 알아보아야 겠죠? 1. 서브버전 저장소에 소스 올리고 수정하기 일단 서브버전 Test 저장소에 파일들을 올리고 갱신해 보도록 하겠습니다. 이 작업은 Trac을 사용하는데는 상관이 없지만 Trac이 서브버전 저장소와 연계가 되는지라 아무것도 없으면 뭐 할게 없어서... 제가 어떤 작업을 수행했는지만 나열하겠습니다. - 저장소에 trunk/src, branches, tags 등의 디렉토리를 만든다. - 아래의 helloworld.c 파일을 만들어 tags 디렉토리에 올린다. - tags디렉토리는 작업 디렉토리가 아니므로 다시 trunk/src 디렉토리에 올리고 tags디렉토리에서는 삭제한다. 우선 여기까지 작업을 합니다. 다음은 현재의 helloworld.c 파일의 내용입니다. #include int main(int argc, char *argv[]) { printf("Hello World... Hi %s!\n", argv[1]); return 0; } 자 여기까지 했다면 Trac의 Test프로젝트(http://localhost:88/projects/Test)에 접속해 보도록 하겠습니다. 메인 화면의 메뉴에서 "시간이력"을 클릭해 봅니다. 그러면 다음과 같이 나옵니다.
((-------IMAGE-------))

보시면 서브버전에 Commit할때마다 적었던 메모가 보여집니다. 각 변경사항을 클릭하면 다음과 같이 상세 내용이 나타납니다.

((-------IMAGE-------))

((-------IMAGE-------))

메뉴에서 "소스 브라우져" 클릭하셔서 보시면 서브버전의 저장소를 그대로 보여줍니다. trunk/src로 들어가셔서 helloworld.c 파일을 클릭하면 소스의 내용도 볼 수가 있네요. 참 한가지 말씀드릴 것은 소스에 한글을 사용하셨고 UTF-8로 작성하시지 않았다면 한글이 깨져 보일 수 있습니다. 이럴때는 trac저장소/conf/trac.ini 파일에서 default_charset을 찾아서 euc-kr이나 cp949로 바꿔 주세요. 2. 티켓과 로드맵 사용하기 Trac은 서브버전과 연동되고 버그리포트나 작업관리를 하는 것이 목적입니다. 여기에 사용하는 것이 티켓과 로드맵 기능입니다. 문제점이 생겼거나 개선사항이 생겼다면 해당 프로젝트에 티켓을 생성합니다. 그런 다음 프로젝트 참가자 중 한사람이 그 티켓을 받아 자신의 작업리스트에 추가하여 처리하거나 다른 사람에게 건내주거나 하면서 일을 처리하게 됩니다. "백문이불여일견"!!! 예를 들어 설명하고 사용방법을 보이도록 하겠습니다. 위의 helloworld.c가 오픈 프로젝트 였고 누군가가 사용해 보고 문제점이 생겨 이 Trac에 접근하는 시나리오로 이야기를 풀어 보겠습니다. 어떤 사람이 helloworld.c를 이용하다가 프로그램 실행시 아큐먼트를 입력하지 않으면 오류가 발생하는 것을 보고 이 Trac에 접속하였습니다. 그리고는 메뉴 중 "새로운 티켓"을 선택하고 다음과 같이 입력합니다.

((-------IMAGE-------))

위와 같이 작성하고 "새로운 티켓 추가" 버튼을 눌러 글을 올렸습니다. 이로써 하나의 티켓이 만들어 졌습니다. "nicholas"라는 사람이 이 시스템에 들어와 "시간이력"이나 "티켓들보기"메뉴를 클릭하여 새로운 티켓이 만들어 졌음알아고 열람해 봅니다.

((-------IMAGE-------))

한가지... 작성자가 nicholas라고 되어 있는데.. 이부분은 제가 예제를 만들면서 nicholas로 로그인하고 혼자 글올리고 수정하고 답변올리고 해서 그런 것입니다. 상황에 맞게 해석해 주세요. (죄송합니다.) 사실 지금까지 설명한 배경으로는 작성가 익명이 되어야 할 것입니다. 그건 그렇고 여기서 자세히 보아야 할 부분은 담당자 입니다. 이 티켓을 처리할 담당자가 somebody로 되어 있습니다. 이는 티켓을 누가 처리해야 할지 모른다는 뜻도 되고 티켓의 처리가 누군가에게 맞겨지지 않았다는 뜻도 됩니다. 아무튼 이 nicholas라는 프로젝트 참여자가 이 티켓을 보고 자신이 처리하는게 맞을 것 같아서 "응답하기"버튼을 클릭해서 답변을 작성합니다.

((-------IMAGE-------))

답글을 쓰고 아래쪽 중간에 마일스톤과 version을 바꾸었습니다. 마일스톤은 제품명이나 프로젝트명 쯤으로 생각하시면 될 것 같습니다. 사실 마일스톤 명을 먼저 수정해야 하는 것이 정상이지만 여기서는 Trac저장소를 생성하면 기본으로 생기는 마일스톤과 버전을 가지고 그대로 사용하고 있습니다. 어찌됐든 제일 아래 쪽에 "티켓에 대한 동작" 부분에서 자신이 직접 처리하겠다는 의사로 "티켓 수락하기"를 선택하였습니다. 이 티켓의 변경사항을 보면 다음과 같음을 알 수 있습니다.

((-------IMAGE-------))

보면 owner가 somebody에서 nicholas로 변경된 것을 보실 수 있습니다. 그래서 nicholas라는 사람은 helloworld.c파일을 수정하고 있었는데... 또 다른 사람이 이번에는 개선사항으로 "사용법을 보여 출력하게 해 달라는" 티켓을 또 추가합니다. 그래서 또 다시 nicholas 티켓을 확인 하고 이것 역시 답변을 쓰고 마일스톤1로 가져옵니다.

((-------IMAGE-------))

이제 "로드맵" 메뉴의 "마일스톤1"에 다음과 같이 두개의 티켓이 접수된 것(활성화된 티켓들)이 보여지게 됩니다.

((-------IMAGE-------))

nicholas는 이 두개의 티켓을 처리하는데 힘을 써서 다음과 같이 helloworld.c의 소스를 변경하였습니다. #include int main(int argc, char *argv[]) { if(argc\n", argv[0]); return 0; } printf("Hello World... Hi %s!\n", argv[1]); return 0; } 이 소스를 서브버전의 저장소에 체크인시키고 Trac에서 "시간이력"을 보면 다음과 같이 나타납니다.

((-------IMAGE-------))

자 이제 열린 티켓을 닫아야 겠군요.

((-------IMAGE-------))

받았던 두개의 티켓으로 가서 각각 하나씩 제일 하단에 "다음 방법으로 해결됨"을 선택하고 확인항 티켓을 닫습니다. 해당 티켓의 변경사항을 보면 티켓이 발생한 시기부터 경과한 내용 및 시간을 모두 알 수 있습니다.

((-------IMAGE-------))

다시 메뉴의 "시간이력"으로 들어가 보면 마일스톤1의 활성화 되었던 티켓들이 모두 닺쳐 진척도가 100%가 된 것을 알 수 있습니다.

((-------IMAGE-------))

메뉴 중 "소스브라우져"에 가서 소스를 보고 비교하기를 누르면 다음과 같이 변경된 내용이 무엇인지도 비교하여 보여줍니다.

((-------IMAGE-------))

그림이 많아서 조금 보기 힘드신가요? 대충 글만 읽어보고 그냥 실습을 한번 해보세요. 어렵지 않습니다. 금방 따라하실 수 있습니다. 3. 웹어드민으로 Trac관리하기 우리가 이미 설치한 웹어드민 플러그인이 있었습니다. 이번에는 이것의 사용법에 대해서 알아 보도록 하겠습니다. Trac 저장소에 우리는 admin이라는 계정에 관리자 권한을 주었었습니다. 그래서 Trac에 admin으로 로그인을 하면 Admin이라는 메뉴를 메뉴바의 맨 오른쪽에서 찾을 수 있습니다.

((-------IMAGE-------))

이 Admin이라는 메뉴를 클릭하면 현재 프로젝트의 Trac을 관리할 수 있는 화면이 나타납니다. Trac의 관리란 주로 저장소의 권한 설정이나 플러그 인을 설치 및 제거 그리고 티켓의 컴퍼넌트, 마일스톤 등을 관리하는 것을 이야기 합니다. 특이한 사항은 없으므로 그냥 몇가지 캡쳐된 화면만을 보이도록 하겠습니다.

((-------IMAGE-------))

Admin의 메뉴인데 메뉴의 각 항목을 관리할 수 있는 기능이 있다고 생각하시면 되겠네요. 크게 Trac의 일반 관린 모드인 "General"과 Ticket을 관리할 수 있는 "Ticket System"으로 구성되어 있습니다.

((-------IMAGE-------))

기본 설정(Basic Settings)에서 나오는 화면입니다. 프로젝트 이름이나 URL, 프로젝트에 대한 설명을 수정할 수 있습니다. 여기서 URL은 Trac의 웹페이지 좌측 상단의 trac로고를 클릭했을 때 가야할 URL을 설정하는 부분입니다.

((-------IMAGE-------))

로깅(Logging)메뉴에서 나오는 화면입니다. 로그를 어디에 남길지 어느 정도의 수준으로 남길지등을 설정할 수 있습니다. 또한 Log파일의 이름 및 경로를 지정할 수도 있습니다.

((-------IMAGE-------))

권한(Permissions)메뉴에서 나오는 화면 중 하나입니다. 현재 저장소에 설정된 권한을 표시하며 선택해서 해당 권한을 삭제할 수 있습니다.

((-------IMAGE-------))

권한(Permissions)메뉴에서 나오는 화면 중 하나입니다. 현재 저장소에 특정한 사용자 혹은 그룹으로 권한을 설정할 수 있습니다.

((-------IMAGE-------))

권한(Permissions)메뉴에서 나오는 화면 중 하나입니다. 특정한 사용자를 존재하는 특정 그룹에 포함 시킬 수 있습니다.

((-------IMAGE-------))

플러그인(Plugins)메뉴에서 나오는 화면 중 하나입니다. 현재 설치된 Trac플러그인의 리스트를 볼 수 있습니다. "Uninstall"버튼을 클릭해서 설치된 플러그인을 삭제할 수 있습니다.

((-------IMAGE-------))

플러그인(Plugins)메뉴에서 나오는 화면 중 하나입니다. 다운받은 플러그인 파일을 이 화면에서 선택하여 설치할 수 있습니다. 참고로 http://www.trac-hacks.org/ 에서 다양한 Trac 플러그 인들을 찾을 수 있습니다. 다음으로 Ticket을 관리하기 위한 메뉴들입니다.
((-------IMAGE-------))

컴포넌트(Components)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 컴포넌트의 종류를 보여줍니다. 또한 해당 컴포넌트의 소유자를 표시합니다. 리스트에서 특정 컴포넌트를 선택해서 삭제할 수도 있습니다.

((-------IMAGE-------))

컴포넌트(Components)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 컴포넌트에 소유자를 정하여 추가할 수 있습니다.

((-------IMAGE-------))

마일스톤(Milestones)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 마일스톤의 현재 리스트를 보여줍니다. 특정 마일스톤을 선택하여 삭제할 수 있습니다.

((-------IMAGE-------))

마일스톤(Milestones)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 새로운 마일스톤을 추가할 수 있습니다. 또한 추가하는 마일스톤의 완료일을 YYYY-MM-DD의 형식으로 날짜로 지정할 수 있습니다.

((-------IMAGE-------))

우선순위(Priorities)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시되는 우선순위의 목록을 보여줍니다. 우선순의 값을 변경할 수도 있으며 특정 우선순위를 선택하여 제거할 수도 있습니다.

((-------IMAGE-------))

우선순위(Priorities)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 새로운 우선순위를 추가합니다.

((-------IMAGE-------))

Severities 메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시되는 Severity의 목록을 보여주게 되는데 초기에는 아무 Severity가 설정되지 않아 보여지지 않고 위와 같은 화면이 나타납니다. Severity가 추가되면 다음과 같은 화면이 표시됩니다.

((-------IMAGE-------))

우선순위와 화면 및 기능이 같습니다.

((-------IMAGE-------))

티켓 종류(Ticket Types)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시되는 티켓 종류의 목록을 보여줍니다. 표시될 순서 값을 변경할 수도 있으며 특정 티켓 종류를 선택하여 제거할 수도 있습니다.

((-------IMAGE-------))

티켓 종류(Ticket Types)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 새로운 티켓 종류를 추가할 수 있습니다.

((-------IMAGE-------))

버전(Versions)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시되는 버전의 목록을 보여줍니다. 특정 버전을 선택하여 제거할 수도 있습니다.

((-------IMAGE-------))

버전(Versions)메뉴에서 나오는 화면 중 하나입니다. 티켓 생성시 표시될 버전을 추가할 수 있습니다. 지금까지 Trac Web Admin의 사용법을 알아보았습니다. 뭐 그리 어려운 내용이 아니므로 그냥 한번 읽어보시고 실습을 한번 해보시기 바랍니다. 이렇게 해서 Trac, 서브버전, 아파치 등의 설치 및 설정 방법 그리고 사용법 등을 알아보았습니다. 서브버전 클라이언트를 사용하기 위한 구체적인 명령들에 대해서는 살펴보지 않았지만 윈도우즈에서 작업할 것이라면 "TortoiseSVN"이라는 GUI툴을 사용할 수도 있으므로 어렵지 않게 사용할 수 있을 것입니다. 참고로 TortoiseSVN은 http://tortoisesvn.net/ 에서 다운받아 사용할 수 있습니다. 한글 언어팩도 있으므로 그것도 다운받아 설치하셔서 사용하십시오. 지금까지의 글이 여러분의 프로젝트 관리에 많은 도움이 되었길 바랍니다.
by Anna 안나 2008. 7. 11. 21:19