ft_transcendence 03 - 협업

2023-08-15

#42SEOUL#6TH_CIRCLE#git#github#issue#pull-request

우리 팀은 깃허브로 소스코드를 공유하면서 프로젝트를 진행했다.

지난 글에서 말했던 개발 환경 세팅에 이어 우리 팀의 깃과 깃허브 활용방안에 대해 이야기해보려 한다.

우리 팀은 팀원 전부 웹 개발을 이전에 해본 전체 코드 학습을 기본 목표로 프로젝트를 시작했다. 따라서 초반에는 프론트, 백 나누지 않고 모든 과정을 함께 공부하면서 개발하기로 했으나.. 생각보다 더 많은 시간이 소요되어 결국 프론트3, 백2로 나누게 되었다.

그래도 모든 코드를 프, 백 관계없이 리뷰하기로 했고, 코드 병합은 PR로만 해주며 리뷰는 모두 함께 해주는 것을 목표로 프로젝트를 진행했다.

이슈 관리

기능을 개발할 때 이슈를 생성하고 이슈에 대한 브랜치를 생성해 그 브랜치 안에서 개발을 하는것을 목표로 했다. 이슈는 프로젝트에서 수정해야 할 버그, 개발해야 할 새로운 기능, 개선해야 할 부분 등을 추적할 수 있는 작업 항목이다.

이슈를 사용하는것에 있어 여러 이점이 있을텐데, 우리 팀은 여러 이점 중 명확한 목표 설정과 문서화를 중점으로 이슈 기능을 활용했다.

이런식으로 이슈를 생성해주었고, 이에 따라 목표 설정과 문서화를 더 용이하게 해줄 수 있었다.

또, 어떤 개발에 대한 이슈를 생성할 때, 초기 이슈의 구현 범위를 크게 설정해준 뒤, 이슈 본문에 해야할 일들을 작성해주고, 그 일들을 다시 하위 이슈로 만들어주어 개발해주었다.

이런식으로 하위 이슈를 설정해줄 수 있는데, 효율적인 개발을 위해서 하위 이슈는 PR하지 않고 바로 상위 이슈에 병합해준 뒤, develop 브랜치에 병합되어야 할 최상위 이슈만 PR에 올려 함께 리뷰해주었다.

이슈 템플릿

이슈를 생성해보자.

new issue 버튼을 누르면 이런식으로 이슈 생성 창이 뜰텐데, 입력창이 너무 비어있어 어떻게 이슈를 작성해야할지 고민이 되기도 할 것이다.

그럴때 고민을 줄여주기도 하면서 이슈 양식을 통일해줄 수 있도록 템플릿을 하나 만들어두는 것이 좋다.

이슈 템플릿은 깃허브에서 settings->general에서 생성할 수 있고, 직접 디렉토리에 파일을 생성해줄 수도 있다.

set up templates를 통해 이슈 템플릿을 생성해줄 수 있다.

직접 디렉토리에 파일을 생성하는 방법은 이슈 템플릿을 적용하고싶은 프로젝트의 루트 디렉토리에 .github/ISSUE_TEMPLATE 폴더를 만들어주고, 그 안에 마크다운 문서를 직접 생성해주면 된다.

작성후 푸시해주면 세팅 완료.

설정해둔 양식을 불러올 수 있다.

PR

우리팀은 PR을 통해서만 develop에 소스코드를 병합할 수 있도록 해서 리뷰를 생활화하기로 했다.

그러기 위해서는 PR에 몇가지 규칙을 추가해주어야 한다.

Settings->Branches로 들어가면 Branch protection rules라고 나온다. 여기서 Add rule을 눌러준다.

우리 팀은 이정도만 설정해주었다.

그리고나서 develop으로 병합해주기 위한 PR을 생성해보면 다음과 같이 리뷰와 승인이 필요하다는 메세지와 함께 병합을 할 수 없는 상태가 되어있다.

Labels

이슈 혹은 PR을 생성할 때 그 게시글이 어떤 성격인지 한 눈에 알아보기 힘들기 때문에 라벨을 붙여 한눈에 파악할 수 있도록 해주었다.

라벨은 깃허브에서 기본적으로 제공하는것도 있지만, 직접 추가해서 사용해도 된다.

직접 추가한 라벨을 이슈나 PR에 적용해주면 다음과 같이 함께 볼 수 있다.