Github Issue란? 협업 시 활용법 & Issue 작성법
협업을 위해 자주 사용하는 Github, 그 중에서도 유용하게 소통을 위해 사용할 수 있는 Github Issue 기능에 대해 알아보자.
Github issue는 여러 가지로 활용될 수 있는데 말 그대로 해당 repo에 대한 issue를 보고할 수도 있고, 나의 경우에는 개발 협업 프로젝트를 진행할 때 bug를 report하거나 현재 나의 진행경과를 팀원들에게 알려주거나, 해야 할 개발 사항을 보고하는 데 유용하게 사용했다.
Github Issue에 들어가면 위와 같이 Code, Issues, Pull Requests, Actions, Projects, Wiki, Security, Insights, Settings와 같은 Tab을 볼 수 있다. 내가 현재 들어간 repository에는 open issues가 존재해서 Issues 옆에 2라는 숫자가 보이는데, 처음 만든 repository의 경우 아무것도 보이지 않을 것이다.
우선 새로운 Issue부터 만들어주자.
위와 같은 부분에서 오른쪽의 New issue 버튼을 클릭해주면 새로운 issue를 생성해줄 수 있다.
우선 Title 부분에서는 말 그대로 Issue의 Title이다. 아래 Leave a comment 부분에는 더 자세하게 issue의 내용을 작성할 수 있다.
Issue를 잘 작성하는 사람들은 오른쪽 메뉴 부분을 유용하게 사용한다.
Assignees 부분에는 해당 내용을 개발해야 하는 사람들, 즉 해당 issue에 할당된 사람을 클릭해준다. 특정 기능을 개발할 때에는 여러 명이 동시에 assign 되는 경우가 있는데 그럴 경우 한 눈에 누가 assign 되었는지 보기 편하다. 꼭 여러명이 assign 되지 않아도 나는 팀원들에게 '내가 이 기능 개발할게' 라는 것을 알릴 목적으로 나 스스로를 assginee로 지정하기도 했었다.
설정과 비슷한 아이콘을 클릭하면 위와 같이 'Assign up to 10 people to this issue'라고 나오게 되고 아래 추천 ID가 나온다. 해당 ID를 클릭해도 되고 직접 검색해서 추가해도 된다.
다음으로 Labels 부분을 누르면 해당 Issue를 어떤 용도로 활용할 것인지를 클릭하는 것이다. bug의 경우 '내가 이거 써봤는데 ~한 bug 발견했어! 고쳐줘!' 라는 느낌으로 사용할 수 있다. 내가 협업 프로젝트를 하면서 잘 사용했던 enhancement label은 새로운 기능이나 요청사항을 제안하는 느낌으로 사용할 수 있다. 새로운 기능을 개발해야 하면 우리 이거 개발해야 되고 assignee는 ~야 라고 알려주는 식이다.
또한 자신이 어떠한 기능을 개발하고 있는데 어려움에 마주하면 'help wanted'라는 label로 다른 멤버에게 도움을 요청할 수도 있다.
그리고 Labels는 원하면 새로 만들 수도 있고 수정도 가능하다. 'Edit labels'를 눌러 수정이 가능하니 원하는 새로운 label이 있다면 새롭게 추가하자. 나는 'refactoring' label을 새롭게 만들어서 사용한 적이 있다.
아래 Projects와 Milestone의 경우에는 해당 Issue가 어디에 해당되는 것인지를 나타내주는 칸이라고 생각하면 된다. 나의 경우에는 프로젝트 deadline 전까지 여러 milestone을 생성하고 to-do list 느낌으로 사용하기도 했다.
물론 아무것도 클릭하지 않고 title만 작성해도 issue submit이 가능해진다.
작성을 하고 'Submit new issue'를 누르게 되면 issue 작성이 완료된 것이다. 만약 issue를 작성했는데 오른쪽 label을 작성하는 것을 까먹었다? 해도 걱정할 필요가 없다. 작성된 issue를 누르고 이후 label을 추가해도 된다.
특히 협업 프로젝트를 할 때 issue 작성의 중요성은 여러 번 강조해도 지나치다. 팀원들과 남아있는 task가 무엇인지 remind하기도 좋으며, bug가 있거나 도움을 요청할 수도 있기 때문이다.
issue를 submit 했다면 해당 issue는 open issue로 올라가게 된다. 예를 들어 내가 '배포 직전 해야 할 것' 이라는 title로 issue를 올렸다고 가정해보자.
해당 issue를 클릭해 들어가 보면 위와 같이 Leave a comment라고 되어 있는 부분이 있을 것이다. 다른 사람의 issue에 comment를 추가할 수도 있고, 만약 해당 issue가 해결되었다면 'Close issue'를 눌러 issue를 닫을 수도 있다.
그러면 closed 된 issue는 어디서 볼 수 있는가?
다시 issue tab으로 들어가보면
이렇게 open 된 issue들의 개수와 closed 된 issue들의 개수를 볼 수 있다. closed 부분을 클릭하면 닫혀진 issue들도 모두 확인할 수 있다.
아주 가끔 실수로 issue를 close하기도 하는데, 그런 경우에 다시 open issue로 만들고 싶다면 어떻게 할까? 간단하다. 해당 issue를 다시 클릭해서 들어가면,
아까 봤던 것과 비슷한 이미지를 확인할 수 있는데 여기의 'reopen issue'를 누르면 된다. 단순히 실수로 issue를 닫았을 때 뿐만 아니라, 내가 해결했다고 생각했는데 다시 문제가 재발했거나 비슷한 새로운 문제를 찾았을 때도 사용할 수 있다.
이런 식으로 Github issue는 단순해보이지만 다양한 기능을 가지고 있다. 이 Github issue를 잘 쓸수록 협업 프로젝트의 quality를 높일 수 있다고 생각한다. 모두 issue 사용법에 익숙해지고 불편하더라도 자주 활용할 수 있도록 노력하자!