워크플로우와 컨벤션을 정하는 것은 협업을 위해 아주 기본적인 단계이다.
보통 Issue나 Commit, Pull Request의 컨벤션을 정하는 것이 가장 기본적이다.
혼자 토이프로젝트로 개발을 할 때는 중요성을 크게 느끼기 힘들 수도 있는데,
Issue를 등록하고 Task에 Assign해서
본인 담당 태스크 개발을 마치고, PR을 통한 코드리뷰 후 Merge 작업은
협업 시 팀원들 모두가 본인 태스크가 아닌 코드에 대한 이해도도 높일 수 있고,
보다 나은 코드 설계를 위한 개개인의 성장 또한 도모할 수 있다.
(한번 이런 워크플로우를 통한 프로젝트를 진행해 본 적이 있는데, 그 때 굉장히 스스로가 많이 성장한 경험이 있다.)
이번 포스트에선 그 워크플로우를 위한 개발 문서화 템플릿을 생성하는 법을 다뤄보려한다.
Issue 템플릿 등록
깃허브에 있는 이슈 기능은
필요한 기능 개발이나, 버그 픽스 등의 팀원들이 알아야 하는, 말 그대로의 이슈를 등록해 놓는 기능이다.
팀원들은 이 이슈를 보고 자신이 어사인하여 프로젝트에 필요한 태스크를 맡아 개발을 하는 식으로 프로젝트는 흘러가게된다.
먼저, 깃허브 웹 페이지를 들어가서,
레포지토리의 Setting으로 들어가서 조금만 하단으로 스크롤을 하다보면
Features 항목이 있는데,
거기서 Issues 항목에서 'Set up templates' 버튼을 클릭한다.
만들려는 Issue 상황에 맞는 템플릿을 선택하면 된다.
이 프로젝트는 배포할 생각이 없는 혼자하는 프로젝트이기에 따로 버그 리포트 이슈 템플릿은 등록하지 않고,
기능에 대한 issue templete만 생성해보겠다.
생성하게 되면 이런 화면이 뜨는데,
자신의 입맛에 맞게 커스텀 하면 된다.
물론 팀원과 함께 협업하는 프로젝트라면 서로 상의 후 컨벤션을 정하면 되겠다.
그리고 모든 템플릿은 마크다운을 지원하기 때문에 마크다운으로 설정해 놓으면 상당히 이쁘게 문서를 작성할 수 있다.
모든 작업이 끝난 후 커밋을 하게 되면 이슈 템플릿 생성은 끝난다.
이제 이슈를 등록하려 하면, 저 템플릿이 기본으로 뜨게 되어 이슈 등록을 통일성 있게 할 수 있게된다.
PR 템플릿 등록
이번엔 Pull Request 템플릿을 등록 해 보겠다.
Pull Request는 이슈에 대한 태스크가 끝난 팀원이 Feature 브랜치에서 Develop 브랜치로 Merge를 하기 전,
함께 프로젝트를 하는 팀원들에게 Pull Request의 뜻 그대로 '나 작업이 끝났으니 Pull 받아줘' 하는 과정이다.
이 과정에서 팀원들이 코드 리뷰를 할 수도 있다.
이슈 템플릿 등록과 마찬가지로
깃허브 웹페이지의 레포지토리에서,
Addfile에서 Create new file을 클릭하여 파일을 생성해준다.
그리고 꼭 파일명을 'pull_request_template.md'로 설정 해준다.
그리고 아래 본문에 원하는 PR 템플릿을 작성해주면 된다.
물론 이 또한 마크다운을 지원하기 때문에 이쁘게 적어주면 되겠다.
해시태그(#이슈번호)를 통해 이슈를 연동할 수도 있고,
닫기명령(Close #이슈번호)를 통해 PR 승인 후 Merge와 함께 자동으로 이슈를 닫을 수도 있다.
이 모든 세팅은 리모트에서 진행했기 때문에 로컬에서 꼭 모두 Pull을 받도록 하자.
반대로 로컬에서 진행하고 Push를 해도 상관은 없다.
(하지만 깃허브에 이슈 템플릿 생성 설정이 잘 되어있어서 난 깃허브에서 하는 걸 선호한다.)
이렇게 깃허브를 통한 워크플로우 세팅을 마치면 기본적인 협업에 대한 기본적인 준비는 마쳤다.
나도 지금 회사가 깃으로 형상관리를 하지 않고 깃허브로 협업을 하지 않다보니,
마지막 깃허브를 통한 협업이 거의 1년 전이라 예전 기억을 더듬어가며 포스팅했다.
다음 포스트에서는 본격적으로 코드를 짜보도록 하자.
'ToyProject' 카테고리의 다른 글
[Project] Swift에서 URLSession을 통해 API를 받아오는 법 (0) | 2023.11.11 |
---|---|
[Project] Swift에서 JSON 파싱하는 법 (1) | 2023.10.28 |
[Project] Xcode로 GitHub 연동 및 Repository 세팅 (0) | 2023.10.26 |