팀 협업 중에 코드 품질 때문에 이슈가 발생하는 경우가 있나요? 소프트웨어 개발 문화가 성숙할수록 코드리뷰 활동도 성숙해집니다. 다른 사람이 작성한 코드를 보고 개선을 위한 의견을 주고 받는 활동을 합니다. 코드 리뷰는 코드로 협업하는 개발팀이 리뷰를 통해 잠재적인 이슈를 해결하고 개선해 나가는 과정입니다. 소프트웨어 개발 라이프사이클에서 소프트웨어 품질 보증 활동의 시작은 코드 리뷰 활동입니다.
그렇다면, GitLab으로 코드 리뷰를 더 잘하는 방법은 어떨까요?
항상 처음 보다 더 나은 상태로 코드를 만들어 놓고 떠나라
- Robert C. Martin (Uncle Bob) , 보스카웃룰 패러디
GitLab 워크플로우
<GitLab의 일반적인 워크플로우>
GitLab의 개발 라이프사이클은 이슈 아이템으로 요건이나 수정해야 할 버그를 등록하는 것으로 시작됩니다. 개발자는 자신에게 할당된 이슈 아이템을 확인하고 신규 Feature 브랜치를 생성합니다. 신규 브랜치에서 이슈 아이템을 처리하기 위한 커밋 활동을 반복적으로 하며, 어느 정도 완성이 되면 GitLab 서버로 브랜치를 Push 합니다.
Push 되면 GitLab CI가 해당 브랜치에 대한 빌드 파이프라인이 구동됩니다. 파이프라인에서 테스트를 포함한 빌드와 검증이 완료되면, Merge Reauest(MR)을 생성하여 변경사항을 타겟 브랜치(보통은 master나 develop)로 머지를 요청합니다. 바로 지금부터가 GitLab 에서 코드 리뷰가 시작되는 지점입니다. 병합요청(Merge request)은 GitLab에서의 코드를 통한 협업 시작지점입니다. 이름처럼 브랜치에서 다른 브랜치로 병합하는 것이 Merge Request입니다. Merge Request로 의미 있는 코드의 변화를 리뷰하는 팀원들에게 알리고 협업할 수 있습니다. Merge Request 페이지에는 코드에 대한 변경사항과 그 변경으로 발생한 CI/CD 파이프라인 정보 그리고 리뷰에 참여한 사람들의 커멘트 스레드를 이용하여 리뷰가 진행됩니다.
<Merge Request 예시 화면>
위에 화면에 보이는 것처럼 Merge Request는 코멘트를 이용한 논의, commit 목록, 파이프라인 및 관련 이슈 확인, 코드 변경에 대한 인라인 리뷰를 할 수 있는 탭이 포함되어 있습니다.
GitLab CE, EE (Premium 이상)에 따라서 리뷰와 관련 기능이 조금씩 다르며 그에 대한 내용은 다음과 같습니다.