개발중인 프로그램의 버그 및 수정사항 관리를 위해서 이슈 트래커를 사용하는 것은 매우 유용합니다. 이슈를 등록하고 이슈를 해결할 담당자를 지정, 각 이슈의 우선순위에 맞게 수정하고 그 해결유무도 쉽게 확인할 수도 있습니다. 웹서비스의 기능이 점점 추가되고 개발된 기능에서 버그와 개발해야 혼재되어 있을때 리스트를 정리하여 순차적으로 우선순위에 맞게 눈앞에 맡겨진 일에 집중할 수도 있고, 긴급하게 수정해야 버그가 발생해 그것을 해결하고 다시 원래 작업으로 돌아갈때, 해당 작업의 내용 및 해결단계를 확인할 수도 있을 것입니다.
또 intellij 등 개발도구를 통해 손쉽게 git의 branch를 생성하고 해당 작업 영역을 오갈수 있습니다. 각 branch를 task로 생성하여 intellij에서는 task를 오갈때 그 작업 환경을 저장하고 돌아갈때 해당 작업영역을 수복합니다.
새로운 이슈는 등록될때 0000001번부터 생성되는 ID 값을 갖게 됩니다. intellij에서 task server로 mantis를 등록해놓으면 task open을 통해 기본적으로 ID의 이름을 갖는 branch를 생성하고 해당 작업영역으로 전환하게 됩니다. 다음의 단계로 이 잇점을 설명해 보겠습니다.
1번 이슈가 0000001 ID를 가지고 있을때, 이 이슈를 task로 열게 되면 1번 branch로 생성되며 독립적인 작업영역이 생성됩니다.
2번 이슈가 0000002 ID를 가지고 있을때, 이 이슈를 task로 열게 되면 2번 branch로 생성되며 독립적인 작업영역이 생성됩니다.
1번 이슈를 처리중에 긴급한 2번 이슈를 처리하고 다시 1번으로 돌아가거나 2번을 처리중에 급하게 1번을 다시 처리해야 하는 등 복잡한 작업 환경에 놓이게 되었을때, 단순하게 해당 이름의 task를 클릭하는 것만으로 이전에 해당 task 내에서 열려있던 윈도우들과 branch의 소스로 전환됩니다.
각 task를 commit, push 후에 merge를 하여 다른 소스와 병합하기 이전에 각각의 소스 상황에 맞는 이슈 해결상황을 다른 이슈의 수정중에 그 이슈 해결을 위한 소스 수정에 영향 받지 않고 수정을 이어 나갈수 있다는 것이죠.
ubuntu에서 설치하고 몇가지 필요한 설정을 더하고 intellij에서 실제로 어떻게 사용되는지를 설명해보겠습니다.
1. apache와 php를 설치합니다
mantis는 php로 만들어져 있어 apache와 php, mysql을 필요로 합니다
다음의 명령을 통해 필요한 패키지를 설치합니다.
sudo apt-get install apache2 lib-apache2-php7.0 -y
sudo apt-get install php7.0 php7.0-mysql php7.0-cli -Y
sudo vi /etc/php/7.0/apache2/php.ini 를 열고 다음의 내용을 수정합니다
date.timezone=Asia/Seoul
upload_max_filesize = 50M
memory_limit = 128M
2. 데이터 베이스를 설치합니다.
라이센스 문제로 사용이 기피되고 있는 mysql 대신 mariadb를 설치해서 사용하겠습니다.
mysql을 fork해서 개발되고 있는 mariadb는 명칭이외의 실행파일명부터 사용법까지 동일하니 설치시에만 mariadb 패키지를 설치하면 됩니다.
sudo apt-get install mariadb mariadb-server
sudo systemctl start mysql
sudo systemctl enable mysql
보안 설정을 업그레이드 하기 위해 mysql과 동일하게 다음의 명령을 사용합니다.
sudo mysql_secure_installation
mantis에서 사용할 데이터베이스와 유저를 생성합니다.
최근 버전의 mariadb에서는 sudo 권한 없이 mysql에 root로 접속이 되지 않습니다.
sudo mysql -u root -p
mysql 설치시에 입력한 root 비밀번호를 입력합니다.
mantis에서 사용할 데이터베이스를 생성합니다.
CREATE DATABASE mantis;
mantis에서 데이터베이스에 접속할 유저를 생성합니다.
password 부분은 수정하고 기억해두시길 바랍니다.
mantis설정에서 해당 정보들이 필요합니다.
CREATE USER 'mantisuser'@'localhost' IDENTIFIED BY 'password';
생성한 데이터베이스에 유저 권한을 만들어줍니다
GRANT ALL PRIVILEGES ON mantis.* TO 'mantisuser'@'localhost' IDENTIFIED BY 'password' WITH GRANT OPTION;
권한을 갱신하고 종료합니다.
FLUSH PRIVILEGES;
exit;
최신 버전의 mantis를 다운로드 합니다. (현재 최신 버전은 2.15입니다)
https://sourceforge.net/projects/mantisbt/files/mantis-stable/2.15.0/mantisbt-2.15.0.tar.gz/download
적당한 위치에 압축을 해제합니다.
tar xvfz mantisbt-2.15.0.tar.gz
실제로 웹으로 서비스할 디렉토리로 옮깁니다
sudo mv mantisbt-2.4.0 /var/www/html/mantis
웹서버로 파일 소유자를 변경합니다
sudo chown -R www-data:www-data /var/www/html/mantis
sudo vi /etc/apache2/sites-available/mantis.conf
로 파일을 생성하고 다음의 설정파일을 입력합니다
<VirtualHost *:80>
ServerAdmin webmaster@example.com
DocumentRoot "/var/www/html/mantis"
ServerName example.com
ServerAlias www.example.com
ErrorLog "/var/log/apache2/mantis-error_log"
CustomLog "/var/log/apache2/mantis-access_log" combined<Directory "/var/www/html/mantis/">
DirectoryIndex index.php index.html
Options FollowSymLinks
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
도메인 관련 정보는 적절하게 수정하시길 바랍니다.
사이트를 사용 가능하게 설정하고 apache를 재시작합니다.
sudo a2ensite mantis.conf
sudo systemctl restart apache2
웹서버로 접속해서 접속이 되는지 확인합니다
혹시라도 접속이 잘 되지 않으면 다음의 명령으로 80포트를 방화벽에서 제외하도록 합니다.
sudo ufw enable
sudo ufw allow 80
웹페이지로 접속하면 mantis설정 화면이 나옵니다.
위에서 생성한 database 정보 입력하면 mantis가 필요한 테이블을 생성하고 기초정보를 입력하면서 설치됩니다.
3. intellij 설정하고 사용하기
메인메뉴의 Tool -> Tasks & Contexts -> Configure Servers를 선택합니다.
우측의 + 버튼을 눌러 서버 유형을 mantis로 선택하고 서버명, 유저명, 비밀번호를 입력합니다.
Login 버튼을 누르고 갱신되면 Project를 선택할 수 있습니다.
메인메뉴의 Tool -> Tasks & Contexts -> Open Task 를 누르면 mantis에서 입력한 이슈 리스트가 표시되며, 선택하여 작업을 진행할 수 있습니다. intellij 우측상단에 combobox에서도 task를 선택하고 전환할 수 있습니다.
이슈 트래커를 사용해서 얻어지는 잇점이 너무 크기 때문에, 관리중인 프로젝트가 너무 많거나, 프로젝트가 점점 복잡해지고 유지보수가 지속적으로 필요하고, 프로젝트 관리가 정상적으로 되지 않는다고 생각될때 최우선으로 고려해볼 만한 사항입니다. 지시, 보고 단계의 시간적 단축과 함께 이슈 히스토리가 같이 관리된다는 것을 프로젝트 관리자 입장에서도 꼭 필요하겠습니다.
'프로그래밍' 카테고리의 다른 글
MacOS(OSX) 개발을 swift로 해보자. Hello World! 1 (0) | 2018.07.08 |
---|---|
프로그래밍과 음악의 결합 (3) | 2018.06.29 |
ubuntu에서 springboot 내장 tomcat과 apache 연동 (0) | 2018.06.28 |
jpa entity와 관련된 문제들 (0) | 2018.06.28 |
vultr, cloudflare 웹서비스 오픈하기 (1) | 2018.06.28 |