4/17/2016

ITS (Issue Tracking system/Bug Tracking System)

1. ITS/BTS(Issue Tracking System) 

ITS/BTS( Issue Tracking system/Bug Tracking System)은 프로그램 개발을 진행을 하면, 
각 프로젝트를 관리를 하기위해서 만들어진 시스템이다.

예를 들면, 프로젝트를 진행을 하게되면, SCM(Source Code Management,Git,SVN)를 이용하여, 
소스관리를 처음 생각해야할 것이다. 
이는 소스관리만 되지 각 이슈사항과 Team 과의 이슈를 공유하기에는 기능이 너무 부족하다.

그래서, SCM(Git or SVN) 기반으로 Team or Group 과 이전 개발관련 자료들을 쉽게 공유하기 위해서,
ITS/BTS 시스템이 필요할때가 많이 느낄 것이다.

물론 각 Project가 작어서 혼자서 개발해야 할 경우가 큰 필요성을 못 느끼지만, 혼자개발 하더라도 
본인의 모든 개발내용사항을 기억하지 못하기 때문에 가급적 이용하는 것을 권한다.
Team으로 개발하면 개발 관련 내용을 공유하고 각 자원관리하고 이를 필요할 시점이 반드시 필요하다.


1.1 ITS/BTS 기본기능들 


SCM기반 (e.g SVN or GIT)으로 각각의 프로젝트 소스 History를 관리하며, 
Project에서 새로운 기능 or 문제사항(Issue 및 Bug)가 발생할 경우
이를 ITS/BTS기반으로 관련사항을 공유하고 자원을 예상기간에 맞게 할당하고, 
각 개별 Project에서 진행사항을 표시하여 쉽게 알수 있어 관리가 편리하다.

일반적으로 Issue/Bug는 발생이 되면 이슈의 관련내용(Type, Attributes)과 진행상태(Workflow)를 분리하고 
이를 공유한다.

각 이슈를 진행을 하면 진행상태에 따라 기간을 정하고 이를 각각 관리를 한다.
이를 통하여 전체 관련이슈를 진척사항 및 통계도 알수 있으며, 소스관리도 좀 더 쉽게 관리가 진행이 되며, 
관련 문제사항의 기록으로 남아있기에 추후 인수인계도 편하며, 관련문서도 이곳에 첨부하면 된다. 

더불어 PM(Project Manager)는 Project의 진척사항 및 팀내부의 개별관리가 쉬어진다.

ITS 관련내용 과 각 Issue 관련 전략
  https://en.wikipedia.org/wiki/Issue_tracking_system
  https://blog.gaerae.com/2014/05/issue-tracking-system-bug-tracking-system.html
  https://www.capterra.com/issue-tracking-software/
  https://www.slideshare.net/ssuserdaba75/ss-32628868


1.2 ITS/BTS Open Source Tools


무료로 제공을 해주는 오픈소스이며, SCM과 같이 관리가 가능하다.

  • Redmine
오픈소스에서 유명한 Redmine이며, SCM(SVN/CVS/GIT/Mercurial)을 지원하며, 
확장가능한  다양한 plugin을 제공하고 있다.
각 Plugin 을 통해서 GIT기반의 Cloud 시스템과도 연동가능하며, 많이 사용되는 관리 Tool 이다.
Wiki 기능 및 Gantt 차트 기능 등 다양한 기능을 제공하고 있다.


Redmine 다양한 기능소개
  http://www.redmine.org/projects/redmine/wiki

Redmine 기본 사용법
  http://www.redmine.or.kr/projects/community/wiki/Redmine_%EC%84%A4%EC%B9%98_%EB%B0%8F_%EC%82%AC%EC%9A%A9%EB%B2%95

Redmine User Guide
  http://www.redmine.org/projects/redmine/wiki/Guide

Redmine Developer Guide
  http://www.redmine.org/projects/redmine/wiki/Developer_Guide


  1. 장점: 사용하기 편하며 각 PlugIn들을 이용하여 각 확장하기가 쉽다. 또한 다양한 SCM지원  
  2. 단점: 이를 별도로 Server에서 관리를 해야하니, 그게 단점?

  • Bugzilla
다른 사이트에서 사용되는 것만 보았으며, 직접 사용해본 경험이 없지만, 설치만 해본 경험은 있다. 
솔직히 나의 경우는 거의 Redmine을 사용할 것 같으며, 각 Plugin들이 확장이라서 편하다.

Bugzilla 특징
최근사이트를 들어가보니, 예전 보다는 많이 나아진것 같은데, 추후 시간이 되면 다시 설치해보고 말하겠다.
  https://www.bugzilla.org/features/
  https://en.wikipedia.org/wiki/Bugzilla

Bugzilla 사용법
  https://www.guru99.com/bugzilla-tutorial-for-beginners.html


  • Mantis
다른 사이트에서 사용되는 것만 보았으며, 직접 사용해본 경험이 없지만, 역시 설치만 해본 경험은 있다. 


Mantis 관련자료
솔직히 Mantis에 대해서는 별로 좋은 기억이 없어서, 뭐라고 말을 못하겠으며, 최근사이트 가보면, 이전보다는 나은 것 같다.
  https://www.mantisbt.org/


Mantis 사용법
  https://www.guru99.com/mantis-bug-tracker-tutorial.html


  • Trac
오래전에 개발 Server 직접 운영할때, SVN과 함께 사용해본 경험이 있으며, 그 때 당시에는 너무 획기적으로 좋았다. 
최근 TRAC사이트를 보니, 현재는 아래의 단점들이 없어진 것 같으나, 요즘은 거의 사용하는지 아는 것으로 보인다. 

내 기억으로는 사용하기 편했으나, 시스템이 자주 죽었으며, 디자인과 편의성이 나를 만족시켜준 것으로 기억한다.
  1. 장점: 사용하기 편하며 관리도 편했던 걸로 기억한다. 소스보기도 지원하여 괜찮았다. 
  2. 단점: 시스템이 자주 멈추고 죽는현상으로 좀 많이 고생을 했던 걸로 기억한다.

TRAC
  https://trac.edgewall.org/

최근에 본 TRAC 사이트 (802.11)
  http://warpproject.org/trac/



1.3  Cloud 기반의 GIT 제공 사이트 

Cloud기반의 GIT Service를 사용하면 일반적으로 ITS기능을 각 Cloud에서 제공을 해주고 있으며, 
ITS기능을 제공해주며, 이는 상위 Redmine과도 연동가능하다.


  • 대표적인 GIT Service 사이트
  1. Github
  2. Atlassian(Bitbucket)
  3. Gitlab


Github 사용법
  https://github.com/tadkim/infra/wiki/GitHub-::-%EA%B9%83%ED%97%88%EB%B8%8C-%EC%82%AC%EC%9A%A9%EB%B2%95-1

Github Issue List와 Eclipse 연결
    http://wiki.opf-labs.org/display/SP/Connecting+GitHub+Issues+lists+to+Eclipse

Gitlab 기능
    https://about.gitlab.com/features/

Gitlab Issue 관리
    https://www.lesstif.com/pages/viewpage.action?pageId=20775379



  • Atlassian의 JIRA 사용법 
Atlassian의 Bitbucket과 함께 제공해주는 ITS로 유료로 제공
  https://www.guru99.com/jira-tutorial-a-complete-guide-for-beginners.html

Atlassian의 Agile ALM
  http://www.curvc.com/curvc/solution/alm/agilealmwithatlassian



2. Redmine 설치방법 

다시 설치를 해보고, 이를 한번 사용해보고 추후 진행하겠음