본문 바로가기

프로그래밍 - 활용/버전관리

[Github] Issue, Project 정복하기

혼자가 아닌 여럿이서 하는 협업 환경에서의 개발은 다양한 도구가 사용된다. Notion, Slack, Jira 등등!

하지만 Github의 기능을 이용한다면 간단한 협업은 위의 도구가 필요 없다. 

Issue, Project만 이용한다면 말이다.

 

Issue와 Project를 생성하고 활용하는 방법에 대해 알아보겠다.

 

1. Issue

Issue에는 Labels와 Milestones라는 추가적인 기능이 존재한다. Issue를 더 효율적으로 사용하는 것에 도움을 주는 역할을 한다고 볼 수 있다.

 

(1) 일반 Issue

Issue는 다양한 상황에 맞춰 글을 작성할 수 있다.

위의 예시는 유니티 게임 개발을 하던 중 발생한 오류에 대해 작성한 글이다. 다른 부가적인 설정은 하지 않았다.

 

(2) Labels를 사용한 Issue

간단하게 Issue를 사용하는 것이 아니라, 다양한 상황에서의 모든 Issue를 기록하는 협업 환경이라면 본인과 팀원이 작성한 Issue가 어떤 것과 관련이 되어 있는지 식별할 필요가 있다. 이때, Labels이 활용된다.

todo list라는 Labels을 추가한 예시이다. Issue를 작성할 때, Labels을 눌러 기존에 있는 것을 활용하거나 커스텀하여 추가할 수 있다.

HomeMap에서 Store로의 이동은 Labels을 사용하지 않았으며, pull하는 경우에 발생하는 충돌은 help wanted Labels을, Import시에 발생한 타일맵 오류는 bug Labels을 추가해 주었다.

bug Labels을 추가한 예시의 경우, 빈번하게 일어나는 오류였기에 팀원 모두와 공유하여 시간 낭비를 줄이자는 목적으로 작성한 내용이다. help wanted Labels를 추가한 예시의 경우, 해결하지 못한 오류여서 팀원에게 도움을 받고자 하는 목적으로 작성한 내용이다. 이렇게 Labels을 사용하면 Issue를 조금 더 효율적으로 사용할 수 있다.

 

(3) Milestones를 사용한 Issue

Milestones는 Issue의 진척도를 확인할 수 있는 수단이다. Due date를 입력해 해당 날짜까지 자신의 Issue가 얼마나 완료되고 있는지를 볼 수 있다. 생성을 완료한 후, Issue를 만들 때 Labels과 동일한 방식으로 추가할 수 있다.

현재 [귀농귀농] 메인화면 구현 목록이라는 Issue가 아직 완료되지 않았기에 0% complete라고 되어 있는 것을 확인할 수 있다. 이를 활용해 부가적인 일정관리 도구를 도입하지 않아도, 깃허브 내에서 개발과 관리 모두 가능하게 과정이 간단화될 수 있다.

 

2. Project

Project는 Issue의 가시성 단점을 보완해주는 기능이다. 리스트화되어 있는 이슈를 시각적로 다시 표현해 줄 수 있는 역할을 한다.

 

(1) 생성

New Project를 눌러 본인이 희망하는 템플릿을 선택하면 Project가 완성된다. 완료되는 Project는 Closed의 상태로 바꿀 수 있다. 본인이 희망하는 프로젝트 일정에 맞추어 세세한 관리의 목적으로 쉽게 사용할 수 있다.

 

(2) 전체 Project 화면

본인은 Board 템플릿을 선택했다. 기존의 Todo, In Proress, Done이 있고 추가적으로 Meeting을 추가했다.

 

(3) 자세한 Project 화면

Issue를 연동하거나, 텍스트로 일정을 관리할 수 있다.

Meeting에 있는 일정은 Issue와 연동한 예시이다. Todo에 있는 일정은 본인이 직접 Add item을 통해 추가한 예시이다. 이렇게 다양한 방법으로 프로젝트를 효율성 있게 운영할 수 있다!