Post

코드 리뷰 문화와 팀 생산성

들어가며

개발자라면 누구나 한 번쯤 경험해 본 코드 리뷰는 단순히 버그를 찾거나 코딩 스타일을 통일하는 것 이상의 의미를 가지고 있습니다.

코드 리뷰는 팀의 생산성과 코드 품질을 동시에 향상시키는 중요한 과정입니다. 하지만 코드 리뷰가 제대로 이루어지지 않으면 오히려 생산성을 저해하고 팀 내 갈등을 초래할 수 있는데요.

단순한 버전 업데이트 작업에도 리뷰가 없어 릴리즈가 지연될 수 있고, 코딩 스타일이 달라 본인의 스타일로 강요하게 될 수도 있습니다. 이런 문제들은 팀 내 협업의 효율성을 저하시킬 수 있으며, 장기적으로는 팀의 성과에 부정적인 영향을 미칠 수 있습니다.

이 글에서는 코드 리뷰 문화를 정착시키고, 이를 통해 팀의 생산성을 극대화하는 방법에 대해 다루어보겠습니다.

코드 리뷰의 목적

코드 리뷰는 단순히 코드에서 오류를 찾는 것을 넘어, 팀 전체의 코드 품질을 높이고, 협업을 촉진하는 도구입니다.

코드 리뷰가 어떤 목적을 가지고 있는지 명확히 이해하는 것이 중요합니다.

코드 품질 보장

Desktop View

사내 리뷰 중 코드 품질 보장에 대한 코멘트

코드 리뷰를 통해 코드의 버그, 비효율적인 구조, 또는 유지보수성을 저하시키는 부분을 미리 발견하고 수정할 수 있습니다.

또한, 기술 부채가 쌓이는 것을 방지하는 데 중요한 역할하며 적절한 피드백을 통해 코드가 더 이상 복잡해지지 않도록 조기에 관리할 수 있습니다.

리뷰를 받는 개발자는 로컬 내의 본인이 확인할 수 있는 이슈 외의 또 다른 관점을 고려할 수 있게 됩니다.

이러한 과정을 통해 전체 코드베이스의 품질이 향상되며, 결과적으로 더 나은 소프트웨어를 만들 수 있습니다.

일관된 코드 스타일 유지

Desktop View

사내 리뷰 중 일관된 코드 스타일 유지에 대한 코멘트

코드 리뷰를 통해 팀 내 코드 스타일 가이드라인을 준수하도록 하여 프로젝트 전반에서 일관성을 유지할 수 있습니다.

변수명, 파일명, 폴더 구조 등은 단순한 룰 같지만 혼용이 많아지는 경우, 기존 코드를 참고하는 동료들이 개발하게 된다면 더 많은 코드가 컨벤션을 유지하지 못하고 일관성이 떨어지게 될 것입니다.

코드 리뷰에서 흔히 발생하는 문제들

코드 리뷰는 효과적인 도구지만, 잘못된 접근은 오히려 팀의 생산성을 저하시킬 수 있습니다.

리뷰 병목 현상

Desktop View

You requested review from Ferv0r2 4 days ago…

특정 개발자가 리뷰를 전담하게 되면 리뷰가 지연되거나 병목이 발생할 수 있습니다.

이를 해결하기 위해 팀에서는 리뷰 요청 시 구체적인 리뷰 포인트를 제시하는 것이 좋습니다.

과도한 nitpick

Desktop View

스타일 강요 예제

너무 사소한 부분을 지적하는 것은 리뷰를 불필요하게 길어지게 만듭니다.

중요한 부분에 집중하고, 작은 부분은 팀 컨벤션에 맡기거나, Approve와 함께 코멘트로 남겨 필수적인 수정이 아님을 표시하는 것이 좋습니다.

의미 없는 승인

Desktop View

하지만 빨랐죠?

현재 업무에 대해 도메인을 리뷰어가 인지하지 못한 상태일 때, 단편적인 코드 조각만 확인하고 Approve를 누르기도 합니다.

급히 릴리즈가 필요한 경우나 병합 이후 QA를 통해 코드를 개선하려 한다면 코드 병합을 위한 무의미한 절차가 될 수 있습니다.

코드 리뷰 가이드라인

코드 리뷰가 효과적이려면 몇 가지 가이드라인을 지키는 것이 중요합니다.

명확하고 구체적인 피드백 제공

코드 리뷰에서 피드백은 구체적이어야 합니다.

“이 부분을 개선해 주세요”보다는 “이 부분을 이렇게 바꾸면 더 효율적일 것 같아요“와 같이 구체적인 수정 제안을 합니다.

1
2
3
4
5
6
7
function calculateSum(arr) {
    let sum = 0;
    for (let i = 0; i < arr.length; i++) {
        sum += arr[i];
    }
    return sum;
}

위 코드는 합계를 구할 수 있는 함수입니다. 동작에는 문제가 없으나 조금 더 간결하게 만들 수 있습니다.

Desktop View

구체적인 피드백 제시

이는 코드의 품질을 높이며 향후 작성되는 코드를 한 번 더 고민하게 되는 계기가 됩니다.

또한, 리뷰어 역시 제공한 피드백 대해 조금 더 나은 방법을 되짚어 보게 됩니다.

긍정적인 액션

Desktop View

긍정적인 코멘트

리뷰에서 좋았던 부분을 꼭 언급하세요. 칭찬은 고래도 춤추게 한다고 하죠.

코드 리뷰는 일반적으로 온라인에서 진행되는 만큼 리뷰가 딱딱하게 느껴질 수 있습니다.

칭찬이나 이모지와 함께 작성하거나 리뷰 반영 이후 멘트를 남긴다면 동료에게 긍정적인 경험을 남길 것입니다.

도메인과 간단한 설명 공유

Desktop View

작업 내용 공유

때로는 동료분들과 별도의 개발 업무를 진행하는 경우가 있습니다. 따라서 제가 할당받은 업무에 대해 배경지식이 없거나 부족할 수 있습니다.

리뷰어가 어떤 포인트를 리뷰해야 하는 지 모를 수 있는 만큼 이를 충분히 공유할 수 있어야 합니다.

이를 방지하기 위해 이미지처럼 내용을 요약하거나 PR 템플릿을 사용해 리뷰어에게 필요한 정보를 제공합니다.

변경 사항의 요약, 리뷰어가 집중해야 할 포인트, 관련된 문서 링크 등을 포함할 수 있습니다.

이러한 설명은 리뷰어가 코드의 목적과 맥락을 이해하는 데 도움이 되며, 더 나은 피드백을 제공할 수 있게 합니다.

당시에는 Slack으로 공유하였으나 현재는 리드분들의 노력으로 PR 템플릿을 도입하여 보다 효율적인 소통이 가능해졌습니다.

마치며

코드 리뷰는 단순히 오류를 찾는 과정이 아니라, 팀의 생산성을 높이고, 더 나은 소프트웨어를 만드는 데 중요한 역할을 합니다.

긍정적인 코드 리뷰 문화를 만들고 싶다면 일회성이 아닌 지속적인 노력이 필요합니다.

정기적인 코드 리뷰 세션을 통해 코드 리뷰를 진행한다거나 코드 리뷰에서 나온 주요 피드백을 팀 전체에 공유하여 모두가 배울 수 있도록 하는 등 여러가지 방법이 있을 수 있습니다.

본인의 팀에게 적합한 코드 리뷰 문화를 정착시키고, 이를 통해 팀의 협업을 강화한다면, 더 나은 결과물을 만들어 낼 수 있을 것입니다.

이러한 문화가 조금이라도 더 즐겁게 개발하는 원동력이 될 것이라 믿습니다 :)

This post is licensed under CC BY 4.0 by the author.