본문 바로가기

IT/Open Sources

Redmine 소개 및 설치

Redmine 소개 및 설치

1-0 소개 및 순서

Redmine(http://redmine.org/)은 프로젝트의 할 일을 관리하는 도구이다. 할일이란 개발해야 할 새 기능, 수정해야 하는 결함, 문제가 된 이슈 등을 모두 포함한다. 최근에는 이 모든 것을 이슈(Issue)라고 통칭하고, Redmine과 같이 이슈를 관리하는 도구를 이슈 추적 시스템, 즉 Issue Tracking System(이하 ITS)이라 부른다. Red-mine 외에 Track, Mantis 등이 대표적인 오픈소스 도구이며, Atlassian의 Jira는 대표적인 상용도구이다.

이 장에서는 다음과 같은 내용을 다룬다.

- Redmine 소개

- Redmine 설치 및 설정

- 프로젝트 생성 및 관리

- 이슈(일감) 생성 및 상태 변경

- 버전 관리 시스템과의 연동

 

 

1-1 Redmine 소개

Redmine은 이슈라 불리는 할 일 또는 일감을 관리하는 도구이다. 과거에는 결함을 관리하는 Bug Tracking System(이하 BTS)를 사용했다. BTS는 결함을 누가, 언제, 어떤 방법, 어떤 현상으로 발견했으며, 현재 수정되었는지, 수정되었다면 어느 버전에 반영 되었는지 관리하기 위해 사용했다. 이 BTS가 종합적으로 관리하는 이슈 추적 시스템, ITS로 발전하였다.

이슈의 관리를 이해하기 위해서는 이슈의 라이프 사이클을 이해해야 한다. 다음과 같은 4개 단계를 기본으로 한다.

생성 -> 진행 -> 해결 -> 완료

새 기능과 할 일을 예로 각 단계에 대한 담당자 및 설명은 다음과 같다.

구분 결함 새 기능
담당자 설명 담당자 설명
생성 결함을 발견한 사람 결함을 발견하여 등록한 상태 사용자, PM 등 개발할 기능이나 요구사항을 등록한 상태
진행 PM/PL 등 개발 관리자 담당 개발자가 결함을 조치 중인 상태 PM/PL 등 개발관리자
 담당 개발자가 개발 중인 상태
해결 담당 개발자 담당 개발자가 결함 조치를 완료한 상태 담당 개발자
 담당 개발자가 개발을 완료한 상태
완료 결함을 발견한 사람 결함을 발견한 사람이 조치되었음을 확인한 상태 사용자, PM 등 할 일을 생성한 사람이 개발 완료되었음을 최종 확인한 상태


Redmine은 새 기능(Feature), 결함(Bug), 지원(Support)의 세가지 유형의 이슈 타입(Redmine에서는 일감 유형이라 한다)을 기본으로 제공하는데, 이 역시 필요에 따라 추가하거나 삭제할 수 있다.결함을 예로 들면, QA가 결함을 발겨하고 ITS에 등록하면 '생성'상태이고, PM이 담당 개발자를 지정하면 '진행상태가 된다. 이후 담당 개발자가 결함 조치를 완료하면 '해결' 상태가 되고, QA가 결함이 조치되었음을 다시 테스트하여 확인하면 '완료'상태가 된다.

 

 

1-2 Redmine 설치

Redmine을 설치하는 대표적인 방법은 두가지이며, 아래와 같다.

  1. 서버, DB, Ruby 및 관련 프로그램을 일일이 설치한다.
  2. Bitnami 패키지를 사용한다.

기본 설치 방법은 Ruby, Rails, Database에 익숙하지 않으면 설치가 어려우므로, Bitnami 패키지를 중점적으로 설명한다.

 

1-2-1 기본설치

Redmine 기본 설치 방법은 다음의 공식 문서에서 설명한다.

http://www.redmine.org/projects/redmine/wiki/redmineinstall

Redmine은 Ruby 언어로 개발되어 있어서 설치를 위해서는 운영체제에서 Ruby를 사용할 수 있어야 한다. DB는 MySQL, PostgreSQL, MS-SQL을 지원한다. Ruby와 DB가 설치되어 있다는 가정하에, 10단계에 걸친 설치와 몇 가지 설정을 거쳐 Red-mine 설치가 완료된다. Ruby와 DB에 익숙하지 않다면 다음의 Bitnami 패키지 설치를 선택하자.

12.2.2 Bitnami Redmine 패키지 설치

Bitnami Redmine 패키지는 앞서 살펴본 기본 설치의 모든 항목을 한 번에 통합하여 설치하는 환경을 제공한다. 사용자는 몇번의 클릭 만으로 Redmine설치 및 기본 설정이 가능하다.

https://bitnami.com/stack/redmine/installer

다운로드 페이지는 윈도우, 맥, 리눅스 패키지를 제공한다. 여기서는 Windows에 설치해서 운영할 것이기 때문에 Windows 패키지를 다운로드했다.

Redmine0.png






다운로드가 완료되면 설치 파일을 실행한다. 언어선택, 구성요소, 설치경로를 선택 한 후,

Redmine1.png

 

Redmine2.png

Redmine3.png





Admin 계정 설정에서 정보를 입력한다.



Redmine5.png




만약 메일을 보내기 위한 SMTP 서버가 필요하다면 설치 마무리시 구글 Gmail을 사용할 수 있다.

Redmine6.png





설치과정을 완료한 후,

Redmine9.png

Redmine10.png




다음과 같이 설치되고, Access Redmine을 클릭하게 되면

Redmine11.png




Redmine의 메인화면이 나타난다.

Redmine12.png




오른쪽 상단의 로그인 버튼을 눌러, 등록했던 admin 계정의 정보를 입력하면, 관리자 기능을 설정할 수 있다.

Redmine12 1.png




실제 설치된 경로로 들어가게 되면, git, ruby, mysql 등이 설치 된 것을 확인할 수 있다.

Redmine13.png

 

 

1-3 관리자 기능(설정)

설치가 완료되면 http://IP/redmine을 입력해 Redmine에 접속이 가능하다.

관리자 계정으로 로그인 후 좌측 상단의 관리를 클릭해서 관리자 기능에 접속한다. 관리메뉴는 다음과 같다.

Redmine14 1.png

 

 

1-3-1 프로젝트

Redmine을 사용하려면 우선 프로젝트를 생성해야 할 일을 생성하고 진행을 관리할 수 있다. 프로젝트 화면에서 우측 상단의 '새 프로젝트'를 클릭하여 새로운 프로젝트를 생성하자.

Redmine15.png




다음 그림과 같이 프로젝트 추가 화면이 표시된다. 다음의 항목을 필수로 입력해야 프로젝트가 생성된다.


이름: 프로젝트의 제목

식별자: URL로 사용할 ID이므로, 소문자, 숫자, 대시(-), 밑줄(_)만 가능하다.


모듈은 프로젝트에서 사용할 기능을 선택하는 것이며, 일감 유형은 프로젝트에서 사용하는 일감으로 결함, 새 기능, 지원이 기본 일감 유형이나 추가 및 삭제가 가능하다.

Redmine16.png




프로젝트 생성을 완료하면 생성 성공이라는 메시지와 함께 프로젝트를 상세하게 설정할 수 있는 화면이 표시된다. 이 상세 설정에서 구성원, 버전 등의 관리가 가능하다.

Redmine17.png

 

1-3-2 사용자

Redmine을 사용할 사용자 및 그룹을 추가한다. 사용자와 그룹은 다음과 같은 차이가 있다.

1) 사용자: ID 할당이 필요한 Redmine 사용자이다.

2) 그룹: 사용자의 모음으로, 권한이나 프로젝트 멤버 등록시 일일이 사용자를 추가하기 너무 많을 때 그룹을 사용한다. 회사의 '팀'과 같은 의미이다.

Redmine18.png

사용자를 클릭하면 사용자 관리 화면이 표시되는데 우측 상단에 '새 사용자' 버튼을 선택한다.


아래와 같이 사용자 추가 창이 표시되면 사용자를 등록한다. 사용자 추가시 로그인(아이디), 이름, 성, 메일, 비밀번호는 필수 입력값이며, 메일 알림이나 비밀번호 변경에 대한 설정을 할 수 있다.


'만들기'와 '만들고 계속하기' 버튼의 차이는 '만들기'는 화면 목록으로 돌아가고, '만들고 계속하기'는 새 사용자 추가 화면이 다시 표시되는 것이다.

 

1-3-3 그룹

Redmine21.png

그룹은 사용자의 모음이다. 사용자에게 일일이 권한을 주지 않고, 그룹을 이용해서 한꺼번에 권한을 설정할 수 있다. 그룹은 특정 팀이나 역할 단위로 생성하는 것이 적절하다. 그룹을 선택하면 아래와 같이 그룹 관리 화면이 표시된다.

Redmine22.png

새 그룹을 선택하면 그룹을 추가할 수 있는 페이지가 표시된다.

Redmine23.png

그룹 만들기는 이름만 입력하면 되는데, 해당 그룹에 속하는 사용자는 그룹을 추가한 후, 그룹 목록에서 해당 그룹을 선택한다. 아래의 그림과 같이 사용자 탭에서 '새 사용자'를 선택하여 그룹에 속하는 멤버를 추가할 수 있다.


 

체크박스로 선택해 등록을 하게되면 아래와 같이 그룹에 사용자가 추가된다.



 

1-3-4 일감의 유형

Redmine26.png




기본으로 구성되어 있는 결함, 새 기능, 지원 외에 추가로 일감 유형을 만들거나, 기존의 결함 유형을 삭제할 수 있다. 우측 상단의 '새 일감 유형'을 클릭해서 새로운 일감 유형을 추가해보자.

Redmine27.png



아래의 그림과 같이 이름과 기본 상태가 필수로 입력해야 하는 값이며 화면에 표시될 항목들을 선택할 수 있다. '사용자 정의 항목'을 추가하면 화면에 보이는 항목에 해당 항목을 추가할 수 있다. 또한 이 일감 유형을 사용할 프로젝트를 선택할 수도 있다.

Redmine28.png

 

 

1-3-5 일감의 상태

Redmine에서는 일감이 등록되면 신규, 완료되면 완료의 일련의 상태가 정의되어 있다. 일감 상태 메뉴에서는 기본의 상태를 수정/삭제하거나 신규 상태를 추가할 수 있다. 예를 들어, 테스트 케이스라는 일감 유형이 추가되었고 이 일감 유형은 '테스트 합격', '테스트 불합격'이라는 상태가 필요하다면, 이 두 상태를 추가하여 사용할 수 있다. 우측 상단의 '새 일감 상태'를 클릭하면 다음과 같은 상태 추가 화면이 표시된다.

Redmine29.png


완료 상태는 이 상태로 변경되면 해당 일감을 완전히 종료시킬 것인지 여부를 선택하는 것이다. 완료 상태는 해당 일감이 완전히 완료되어 더 이상 상태 변경이 필요없고 생애주기가 끝난 상태라 볼 수 있다.

Redmine30.png


일감 상태를 추가할 수 있다.

Redmine31.png

 

1-3-6 업무 흐름

업무 흐름은 일감 상태들의 단계를 정의한다. 업무 흐름을 선택하면 다음과 같은 화면이 표시된다.

편집을 클릭하면 각 상태가 단계 별로 표시되며, V 표시는 좌측의 열의 단계가 행의 단계로 변경할 수 있는지 여부를 나타낸다.

Redmine32.png

신규 등록된 할 일은 절대 완료나 거절로 갈 수 없다면, 신규 열에 해당하는 완료, 거절의 V 표시를 제거하면 된다.

 

1-3-7 사용자 정의 항목

요약이나 설명 외에 사용자가 정의하는 항목을 추가할 수 있다. 예를 들어, 결함 일감 유형에는 테스트 단계나 테스트 원인 등의 항목을 추가할 수 있다.


우측 상단의 '새 사용자 정의 항목'을 클릭하면 새로운 항목을 추가할 수 있다.

Redmine33.png

가장 먼저 결정하는 항목은 필드가 추가할 대상이다. 일감에 추가하고 싶다면 일감을 선택한다.

Redmine34.png


다음을 클릭하면 상세 정의 항목이 표시되는데 '형식'은 이 항목이 표시되는 방식을 의미한다. 예를 들어, 날짜는 날짜 형식으로 입력을 받고 목록은 드롭다운 리스트로 항목을 선택할 수 있다.

Redmine35.png

필수는 반드시 입력해야 하는 값인지 여부를 결정하고 모든 프로젝트에 적용할 것인지를 선택한다. 또한 사용자 정의 항목을 일감 유형과 프로젝트에서 사용하도록 선택할 수 있다.

 

1-3-8 설정

설정에는 Redmine의 기본 항목을 설정할 수 있다. 사이트 제목, URL의 기본 내용은 물론이고, 최대 첨부파일 크기나 메일 서버, SVN 등의 저장소와의 연동 관리, 일감간의 연결 방식을 지정할 수 있다.

설정에서 특히 주의해야 할 항목은 2개다. 첨부 파일 크기는 Redmine 사용이 활성화되면 가장 먼저 마주치는 문제이다. 기본값은 약 5MB이지만, 결함에 대해 큰 이미지를 전송하거나 새 기능과 관련한 데이터를 전송하는데 작을 수 있으므로 10MB, 즉 10,000KB 이상으로 지정하는 것을 권고한다.

호스트 이름과 경로는 기본 설정값은 다음 그림과 같이 localhost이지만, 실제 부여된 IP를 사용하는 것을 추천한다.

Redmine36.png

 

1-4 새 일감 추가와 관리

1-4-1 새 일감 만들기

앞서 생성한 프로젝트를 클릭하면 다음과 같이 프로젝트의 기본 화면이 표시된다. 상단에 프로젝트와 관련된 메뉴가 표시되는데 프로젝트 관리자의 경우 '설정' 메뉴가 추가로 표시된다.




메뉴의 + 버튼을 클릭하고 '새 일감 만들기'를 선택하면 일감을 추가할 수 있다. 유형에서 '새 기능'을 선택해서 일감을 추가해보자. 

(사용자에게 프로젝트가 할당이 되어있지 않으면 하단의 '담당자에게 프로젝트 할당하기'를 참고한다.)

  • 담당자에게 프로젝트 할당하기
    [관리 - 사용자] 에 들어가 원하는 사용자의 이름을 클릭한 후, 프로젝트 탭을 누른다.

  • 이 탭에서는 현재 사용자에게 할당된 프로젝트가 무엇인지 확인할 수 있다. 프로젝트 추가를 누른다. 



  • 현재 등록된 프로젝트의 리스트가 출력이 된다. 원하는 프로젝트를 체크하고, 추가를 누른다.


    이제, 프로젝트 탭에서 등록된 프로젝트를 확인할 수 있다.





새 일감만들기를 클릭하게되면, 다음과 같이 유형, 제목, 설명, 상태 우선순위와 담당자 등을 선택할 수 있다.




담당자를 선정하면 해당 담당자에게 일감이 등록되었다는 메일이 송부되어 실시간으로 업무의 변경 유무를 담당자가 확인할 수 있도록 구성되어 있다.








 

1-4-2 일감 목록 보기

일감의 목록을 보고 싶다면 상단의 '일감' 메뉴를 선택한다. 다음과 같이 일감 목록이 표시되며 검색 조건을 이용하면 원하는 조건의 일감 목록을 확인할 수 있다.

1-4-3 Gantt 차트 및 달력

일감에 시작 시간과 완료 기한 날짜를 지정했다면 Gantt차트와 달력 탭에 다음과 같이 일감 정보가 표시된다.





  Gantt 차트는 프로젝트 관리 목적으로 활용한다. 진행률을 입력하면 진행률도 함께 표시되어 계획한 일정 대비 얼마나 진행되었는지 파악할 수 있다.

달력은 이번 달 기준으로 일감의 시작-종료, 버전 배포일 등을 표시한다.



1-4-4 버전 사용

[프로젝트 설정 - 버전]에서 버전을 등록할 수 있다. 버전을 추가하면 일감에서 버전을 지정할 수 있는데, 릴리즈 노트의 개념으로 사용한다.





예를들어, 1.0.0, 1.1.0 이렇게 2개의 버전을 만들고 각 버전에 2개, 3개의 일감이 지정되어 있다면 1.0.0 버전에 포함되는 기능이나 수정된 결함을 확인할 수 있고, 1.0.0 버전에 해당하는 일감 중 완료한 일감과 진행 중인 일감을 확인할 수 있다.


예제를 살펴보자. 앞서 생성한 '알람 기능 추가' 기능이 1.0.0 버전에 포함된다고 가정하자. 이를 관리하기 위해 먼저 1.0.0 버전을 다음과 같이 생성한다.


다음 그림과 같이 일감 편집 화면의 목표 버전을 확인하면 방금 등록한 1.0.0이 추가되었다. 1.0.0을 선택하자.





  [프로젝트 - 로드맵]을 확인하면 버전 1.0.0이 표시되고, 하위에 #1: 알림 기능 추가가 포함되어 있음을 확인할 수 있다. 앞서 설명한 것처럼 릴리즈 노트로 활용할 수 있다.




1-5 저장소와의 연동

Redmine 프로젝트와 Subversion, Git 등의 저장소를 연동하면 일감에 해당하는 소스 코드의 변경 사항을 추적할 수 있다. 예를 들어, 앞 절에서 생성한 '알림 기능 추가' 일감의 개발을 진행하며 개발자의 소스 코드 추가/수정에 대한 커밋 내용을 Redmine에서 확인할 수 있다. 이 방법은 일감이 소스 코드 수준에서 어떻게 진행되고 있는지 진행 사항 파악의 목적도 있으나, 소스 코드와 개발 기능(일감)을 서로 추적할 수 있다는 장점이 있다. 저장소와 연동하기 위해서는 먼저 [관리 - 설정 - 저장소]메뉴에서 사용할 버전 관리 도구를 선택한다.  Git을 선택한 경우, 다음과 같이 표시된다.





  • 설정되지 않는 에러

    1.2 이상의 버전 업데이트 이후에 생긴 에러로, binary 파일 위치를 configuration.yaml 파일에서 재설정 해주면 된다.
    (C:\Bitnami\redmine-3.4.2-2\apps\redmine\htdocs\config)
    # Configuration of SCM executable command.
     #
     # Absolute path (e.g. /usr/local/bin/hg) or command name (e.g. hg.exe, bzr.exe)
     # On Windows + CRuby, *.cmd, *.bat (e.g. hg.cmd, bzr.bat) does not work.
     #
     # On Windows + JRuby 1.6.2, path which contains spaces does not work.
     # For example, "C:\Program Files\TortoiseHg\hg.exe".
     # If you want to this feature, you need to install to the path which does not contains spaces.
     # For example, "C:\TortoiseHg\hg.exe".
     #
     # Examples:
     # scm_subversion_command: svn # (default: svn)
     # scm_mercurial_command: C:\Program Files\TortoiseHg\hg.exe # (default: hg)
     # scm_git_command: /usr/local/bin/git # (default: git)
     # scm_cvs_command: cvs # (default: cvs)
     # scm_bazaar_command: bzr.exe # (default: bzr)
     # scm_darcs_command: darcs-1.0.9-i386-linux # (default: darcs)
     #
     scm_subversion_command:
     scm_mercurial_command:
     scm_git_command: /usr/local/bin/git
     scm_cvs_command:
     scm_bazaar_command:
     scm_darcs_command

 

 

Redmine에서 사용할 버전 관리 도구를 설정했다면 프로젝트에서 연동할 버전 관리 시스템의 저장소를 지정해야 한다. 아래와 같이 Redmine의 각 프로젝트에 있는 [설정 - 저장소] 메뉴에서 진행한다.

[프로젝트 설정 - 저장소] 메뉴에서 '저장소 추가'버튼을 클릭해 저장소를 연결하자.  Git은 Redmine 서버에 Clone한 로컬 저장소의 위치를 입력한다. 예를 들면, 서버의 C:\repo에 Clone했다면 이 경로를 입력한다.

커밋할 때 일감 번호를 입력하자. 만약 일감 번호가 448이라면 '#448'이 일련 번호가 된다. 앞절의 예제는 일감 번호가 1이미로 일련 번호는 '#1'이 된다.

커밋 메시지 예제는 다음과 같다.

#1 알람 기능의 시간 조절 모듈 개선

3개의 항목에 대한 비교 로직을 4개 항목에 대한 비교 로직으로 수정함

커밋할 때 '#1'과 같이 일감 일련 번호를 입력하면 Redmine은 해당 프로젝트와 연결된 저장소의 커밋 메시지를 확인한다. 커밋 메시지에서 Redmine의 일련 번호가 확인되면 해당 일련 번호의 일감에 커밋 내역을 표시한다.

앞에서와 같이 커밋 메시지를 작성하면 프로젝트의 저장소 메뉴에는 다음과 같이 표시된다.

[그림]

최근 개정판의 설명에 있는 Redmine 일감 일련번호, 위의 그림에서 '#1'을 클릭하면 해당하는 일감으로 이동한다.

저장소 커밋 메시지를 통해 Redmine의 상태를 변경할 수도 있다. [관리 - 설정 - 저장소]의 하단에 다음 그림과 같은 설정 항목이 있다. 이 설정을 변경하면 커밋 메시지를 통해 일감의 상태를 변경할 수 있다.

[그림_]

일감 해결에 사용할 키워드에 'fixed'를 지정하고, 적용된 상태에 '해결'을 지정하자. 커밋 메시지에 'Fixed #1042'와 같이 작성 시 1042번 일감을 해결 상태로 변경한다.

 

1-6 요약