Github로 프로젝트 관리해보자!

joona95·2023년 7월 10일
post-thumbnail

🎯 계기

기존에는 기능에 관련된 이름의 브랜치를 파서 PR을 하는 방식으로만 진행을 했다.
그러나 추후에 커밋 내역을 찾고자 기능명으로만 적은 브랜치는 이름이 비슷하거나 명확하지 않아서 추적하기 어려움을 느꼈다.
조금 더 체계적으로 관리해야 될 필요성을 느껴서 알아보다가 Github에서 제공하는 이슈, 마일스톤, 프로젝트 같은 기능을 이용해보기로 했다.

📌 Issue

이슈(Issue)란?

  • 작업의 버그 수정, 새로운 추가 기능, 개선사항 등을 기록할 수 있다.

이슈 템플릿 작성

  • 이슈 작성을 더 쉽게 하기 위해 템플릿 설정이 가능하다.

1. Github Repository 내부에서 Settings 로 들어간다.

2. General 탭의 Features > Issues 에서 Set up templates 버튼을 클릭한다.

3. Add template 버튼을 눌러서 추가할 템플릿을 정한다.

4. 해당 템플릿의 Preview and edit 을 클릭하여 템플릿 내용을 편집한다.

5. 템플릿 추가를 완료했으면 Propose changes 버튼을 눌러서 템플릿 md파일이 추가되도록 한다.

이슈 생성

1. Github Repository 의 Issues 탭을 들어가서 New issue 버튼을 누른다.

2. 생성했던 템플릿 목록 중 작성하고자 하는 템플릿의 Get started 버튼을 누른다.

3. 템플릿 내용을 바탕으로 이슈 리포트를 작성하고 Submit new issue 버튼을 누른다.

  • Assigneers : 이슈의 담당자

  • Labels : 이슈의 성격

  • Project : 이슈가 해당되는 프로젝트

  • Milestone: 이슈가 해당되는 마일스톤

4. Github Respository 의 Issues 탭에서 작성한 이슈를 확인할 수 있다.

5. 해당 이슈를 종료시키고 싶을 땐 이슈 페이지 내에서 Close issue 버튼을 누른다.

나의 경우 1. 새로운 작업 내용 리포트, 2. 개선 사항 내용 리포트, 3. 버그 리포트 로 총 3가지 이슈 템플릿을 등록하였다.
리팩토링 작업을 현재 주로 많이 하고 있기 때문에 새 기능, 버그 리포트 외에도 개선 사항 리포트를 추가하였다.
이슈를 등록하고 브랜치명과 PR에 이슈번호를 기입하여 좀 더 추적을 쉽게 할 수 있게 하려고 한다.


📌 마일스톤

마일스톤이란?

  • 프로젝트가 도달해야 하는 목표지점을 지정해 두어 진행 상황을 관리할 수 있다.

마일스톤 생성

1. Github Repository 의 Issues 탭에서 Milestones 클릭한다.

2. New milestone 버튼을 클릭한다.

3. 새로운 마일스톤을 작성한 후 Create milestone을 클릭한다.

4. 추가된 마일스톤을 확인하고 Issue나 PR 내 Milestone 을 선택한다.

나의 경우 배포나 기능에 따라 버전명으로 마일스톤을 작성하기로 했다.
이렇게 관리하면 각 버전마다 어떤 작업을 했는지 파악하기 더 좋을 것 같다.


📌 프로젝트

프로젝트란?

  • 프로젝트 작업 현황과 진행도를 볼 수 있다.

  • To do, In Progress, Done 으로 구분하여 프로젝트의 진행 상황을 한 눈에 볼 수 있다.

프로젝트 생성

1. Github Repository 의 Projects 탭으로 이동한다.

2. New Project를 눌러서 새로운 프로젝틀르 생성한다.

3. 프로젝트 형태를 선택한 후 Create 버튼을 누른다.

4. 생성이 완료되면 빈 보드가 생성된다.

5. 이슈나 PR 내 Project에 해당 프로젝트를 할당하면 작업 진행도를 살펴볼 수 있다.


📌 PR

PR 이란?

  • Pull Request란 사용자가 작업으로 인한 변경사항들을 알리고 코드 베이스에 포함시켜달라고 보내는 요청이다.

  • PR을 보내 놓으면 코드 리뷰 후 승인을 받고 머지하는 방식으로 진행된다.

PR 템플릿 작성

1. PR 템플릿의 경우 md 파일을 직접 main 브랜치에 추가해준다.

2. pull_request_template.md 란 제목으로 템플릿 파일을 작성한 후 commit 해준다.

3. Github Repository 의 Pull requests 탭으로 이동하여 New pull request 버튼을 누른다.

4. PR 템플릿이 적용된 것을 볼 수 있다.

PR 작성 시에도 템플릿을 적용하여 자세하고 통일적인 형식으로 공유하는 게 좋을 것 같다는 생각이 들었다.
나의 경우 1. 이슈 번호, 2. 변경 사항에 대한 요약, 3. 자세한 설명, 4.기타 참고 사항 을 PR 템플릿 사항으로 추가하였다.
템플릿이 있으면 의식적으로라도 PR에 대한 좀 더 자세한 내용을 공유할 수 있을 것 같았다.


📌 Tag 와 Release

Tag와 Release란?

  • 각 커밋에 알기 쉽게 이름을 붙이는 것으로 보통 버전 표시에 이용한다.

  • Tag는 Release 버전을 배포할 때 사용한다.

Tag와 Release 생성

1. Github Repository 에서 오른쪽 탭 내 Releases 를 클릭한다.

2. Draft a new release 를 눌러서 새로운 Release 를 생성한다.

3. Choose a tag를 클릭한 후 버전명 등 추가할 태그명을 입력한다.

4. Release 배포 내용을 입력 한 후 Publish release 를 누른다.

5. Tag와 Release가 생성된 것을 볼 수 있다.

백엔드 서버도 코드에 대한 버전 관리가 되면 좋겠다고 느꼈다.
그리고 이렇게 기록해두면 버전별로 어떤 변화가 있었는지에 대해서 좀 더 한 눈에 파악할 수 있어서 좋을 것 같았다.
일반적인 버전에 따라 첫번째 숫자는 API 호환이 안될 정도의 변화가 있는 경우, 두번째 숫자는 새로운 기능 추가 같은 변화가 있는 경우, 세번째 숫자는 사소한 버그 수정 등의 변화가 있는 경우 로 나누어 관리하기로 했다.

0개의 댓글