-
좋은 Pull Request를 만드는 방법과 PR Template 구성Project 2021. 11. 5. 19:55
시간이 없다면 👆 이 글을 참고해서 바로 만드시면 됩니다 ❗❗
이번 프로젝트에서는 코드 리뷰를 적극적으로 도입하면서 좋은 Pull Request와 좋은 리뷰에 대해 고민하고 있다. 이번 글에서는 PR의 중요성과 어떤 내용이 들어가야 좋을지 정리해보고, 코드 리뷰에 대해서도 앞으로 천천히 정리해보려고 한다
좋은 Pull Request가 중요한 이유
Reviewer resource is very limited, treat it wisely!
(리뷰어는 매우 제한되어 있으니 그들을 현명하게 다룹시다!)
- LINE Engineering BlogPR의 단위와 내용이 중요한 이유는 Pull Request를 통해 코드 리뷰를 받기 위해서다. 코드 리뷰를 통해 팀원 간의 코드 스타일을 맞출 수 있고, 직접 코딩할 때 발견하지 못 했던 위험도 발견할 수 있다. 그래서 코드 리뷰를 하는 리뷰어도 우리와 같은 개발자라는 사실을 잊어서는 안된다.
PR의 내용만 보고서도 변경 사항에 대해 충분히 이해할 수 있고, 원하는 부분이나 토의해야 할 대해 명시하는 PR이 좋은 PR이라고 생각한다❗❗
Pull Request의 크기는 얼마가 적합할까?
그래서 많은 IT 회사들에서는 PR의 크기를 작게 유지하기 위해 노력한다 !! 사진에서도 나와있는 것 처럼, 하나의 PR에 소모되는 시간이 줄어들고, 빠른 피드백과 빠른 수정이 가능하다.
개발을 하고 있다가 팀원의 코드 리뷰가 도착했을 때 PR이 너무 크다면, 피드백 해야 할 내용이 너무 많다면? 리뷰어의 에너지라는 리소스가 소모된다. 또한 피드백을 통해 고칠 내용이 많아지고, 또 그 내용을 다시 리뷰해야 한다면 코드의 작업 속도도 느려진다.
그래서 Cisco는 300줄 ~ 400줄을 권장하고, 뱅크샐러드에서는 최대 1000줄의 줄 수 변경이라는 제한을 두고 있다. 큰 PR이 왜 좋지 않은지는 아래의 링크를 참고할 수 있다
https://smallbusinessprogramming.com/optimal-pull-request-size/
PR에는 어떤 내용이 들어가면 좋을까?
리뷰어가 코드의 문맥을 빠르게 파악할 수 있도록 PR의 내용에서 충분한 정보를 전달해야 한다.
그 내용으로는
- 무슨 이유로 코드를 변경했는지
- 어떤 위험이나 장애가 발견되었는지
- 어떤 부분에 리뷰어가 집중하면 좋을지
- 관련 스크린샷
- 테스트 계획 또는 완료 사항
이 포함되면 좋다 !!
현업에서는 이런 내용을 담아서 PR을 작성한다고 한다
Pull Request Template이란? 만드는 방법
나는 PR에 포함될 내용들을 정의하고, 생성할 때 마다 자동으로 틀을 만들어주기 위해 PR 템플릿을 작성했다.
Pull Request Template은 Github/Gitlab과 같은 관리 툴을 사용한다면 풀 리퀘스트를 생성할 때 자동으로 내용을 채워준다. 나는 코드를 추가/변경하게 된 이유, 주요 구현 사항, 리뷰어에게 전달할 말 세 가지로 PR 템플릿을 구성했다.
템플릿을 작성하는 법은 의외로 간단한데
1️⃣ Github 버튼의 Add file - Create new file을 클릭해서
2️⃣ pull_request_template.md 라는 파일을 생성해준다. 위치는 사용자가 원하는 데 지정하는 것이 좋다. 숨겨진 디렉토리에 저장하기 위해 .github 하위에 저장하는 방법이 일반적이다.
그러면 아래 사진처럼 PR을 생성할 때 PR 템플릿의 내용이 기본으로 채워진다
아직 코드리뷰를 시작한지 얼마 안된 코린이라서 부족한 부분이 있겠지만 앞으로도 열심히 좋은 코드를 만들고 리뷰해가면서 발전시킬 예정이다 👏👏
'Project' 카테고리의 다른 글
단위테스트가 도대체 뭐야 ❓ (419) 2021.10.27 6월의 토이프로젝트: 파이썬과 카카오톡 i 오픈빌더를 이용한 아맞다우산 알리미(챗봇) (413) 2019.07.09 어떤 프로젝트를 진행하면 좋을까? 토이 프로젝트 주제 찾기 (394) 2019.04.26 토이 프로젝트를 진행하기 전에 (442) 2019.04.25