코드리뷰 문화

Category
devpeople
Types
인사이트
Tags
IT
스타트업
프론트엔드
Description
코드리뷰 문화.
Created
2023/06/29
3 more properties
안녕하세요.
데브피플에서 프론트엔드 개발을 담당하고 있는 Woody입니다.
네이버, 카카오 등 IT 대기업뿐만 아니라 우아한형제들, 토스 등 빠르게 성장하는 스타트업들 역시 이미 코드 리뷰 문화가 필수적으로 자리잡고 있습니다. 또한 많은 개발자들은 코드 리뷰 문화를 실천하는 회사에서 일하고 싶다고 말할 정도로 코드 리뷰 문화가 있는 회사는 좋은 회사라는 이미지로 자리매김하고 있습니다. 오늘은 코드 리뷰가 무엇인지, 코드 리뷰가 왜 중요한지 설명드리겠습니다.

코드리뷰란?

코드 리뷰란 내가 작성한 코드를 다른 개발자들이 검토하는 활동으로 타인의 시각에서 예상치 못한 오류와 발생 가능성을 찾아내고 이러한 과정을 통해 더 나은 코드를 만들 수 있습니다. 코드 리뷰의 핵심은 프로젝트의 코드 스타일을 유지하거나, 예상되는 문제점을 빠르게 파악하는 것뿐만 아니라 코드에 대한 책임이 작성한 개인에게 있지 않고 우리 모두에게 있다는 문화를 만들 수 있습니다. 아래에서 이러한 코드 리뷰 과정은 어떤 방식으로 진행되는지 알아보겠습니다.

코드리뷰 과정

1.
코드 작성자는 코드 리뷰 도구를 이용해 코드 변경 내용과 작업 내용을 정리 후 동료 개발자들에게 코드 리뷰를 요청합니다.
2.
요청받은 리뷰어는 작업한 코드 내용을 검토한 후 피드백을 남깁니다.
3.
코드 작성자는 이를 반영 후 다시 리뷰를 받습니다.
4.
한 명 또는 여러 명의 리뷰어가 작성한 코드에 대해 승인하면 작업 내용은 현재 서비스 코드에 합쳐지고 배포 과정을 거쳐 서비스 사용자는 추가 또는 수정된 부분이 제품에 반영된 모습을 확인할 수 있습니다.

코드 리뷰 문화가 필요한 이유

코드 리뷰의 효과
위 이미지에서 보여주는 코드 리뷰를 통해 나타나는 다양한 효과에서 볼 수 있듯이 코드 리뷰 문화는 소프트웨어 개발의 중요한 부분입니다. 아래에서 코드 리뷰의 장단점에 대해 더 자세히 설명해보겠습니다.
장점

소프트웨어 품질 향상

코드 리뷰는 누락된 기능이나 구조적으로 유지보수나 확장성을 고려하지 않은 부분 등을 다른 개발자들의 관점에 대한 생각의 공유를 통해 개선함으로써, 소프트웨어 품질을 향상시킬 수 있습니다. 아래의 이미지는 저희 데브피플이 프로젝트를 진행할 때 서비스의 품질을 향상시킬 수 있도록 코드를 리뷰하는 예시입니다.
데브피플의 코드 리뷰 예시

개발 생산성 향상

코드 리뷰는 다른 개발자들이 작성한 코드를 살펴보는 과정에서 프로젝트의 전체적인 구조에 대한 이해도를 높일 수 있는 기회가 제공됩니다. 또한 코드에 대한 피드백을 통해 더 좋은 방법을 적용하는 과정을 통해 개발 생산성을 향상시킬 수 있습니다.

개발 규정 준수 향상

코드 리뷰를 통해 규정 준수를 확인하고, 여러 가지 표준을 검사하는 수단으로 사용될 수 있습니다. 팀 내에서 표준 코드 스타일을 따르기 위한 방법론을 확립하고, 코드 리뷰를 기반으로 수행함으로써, 많은 사람이 함께 개발하더라도 어느 정도 일관된 개발 스타일을 유지할 수 있습니다.

비용 절감

코드 리뷰는 버그를 조기에 발견하여 불필요한 비용을 절감할 수 있습니다. 같은 버그라고 해도 코드 리뷰 단계에서 발견하는 것보다 테스트 단계에서 발견하는 것이 더 비싸고, 배포 이후에 발견하는 더욱 비쌉니다. 따라서 코드 리뷰를 할 때는 버그가 발생할 소지가 없는지 점검하는 것이 중요합니다.
단점

늦어지는 리뷰로 인한 생산성 저하

코드 리뷰는 개발 프로세스의 한 단계입니다. 따라서 코드 리뷰를 수행하면 개발 프로세스가 지연될 수 있습니다. 특히, 리뷰어의 코드 리뷰에 시간이 많이 소요되거나 리뷰어가 코드를 변경하여 버그가 발생하는 경우, 개발 프로세스는 더욱 지연될 수 있습니다.

숙련된 개발자 필요

코드 리뷰는 개발자가 작성한 코드를 다른 개발자가 검토하는 활동입니다. 따라서 코드 리뷰를 수행하려면 코드에 대한 이해가 높고 경험이 풍부한 개발자가 필요합니다. 숙련된 개발자가 부족한 경우, 코드 리뷰의 효과가 떨어질 수 있으며, 기업은 숙련된 개발자를 고용에 적지 않은 비용이 발생할 수 있습니다. 저희 데프피플은 모든 프로젝트 진행 시 리드 급 개발자가 리뷰어로 참여하고 있습니다.

감정적인 영향

코드 리뷰는 때때로 개발자들 간의 갈등을 유발할 수 있습니다. 다른 개발자의 코드에 부정적인 코멘트를 달 수 있기 때문입니다. 이러한 비판적인 피드백을 받은 개발자는 감정적으로 피해를 입을 수 있으며, 이는 협업과 팀 분위기에도 영향을 미칠 수 있습니다.

우선순위와 효율성

모든 코드에 대해 상세한 리뷰를 수행하는 것은 현실적으로 어렵습니다. 특히 대규모 프로젝트의 경우 모든 코드에 대해 리뷰하는 것은 비효율적일 수 있습니다. 따라서 코드 리뷰를 진행할 때는 리뷰의 우선순위를 먼저 정하고, 효율적인 방법을 찾는 것이 중요합니다.

코드 리뷰를 수행할 때 중요한 요소

원활한 커뮤니케이션

코드 작성자는 리뷰어의 피드백을 적극적으로 수용하고, 피드백을 바탕으로 코드를 수정합니다. 이후 수정 내역에 대한 설명이나 질문 등을 추가로 작성하면서 실시간으로 커뮤니케이션을 유지하는 것이 좋습니다. 이런 원활한 커뮤니케이션을 통해 서로의 의견을 공유하고 문제를 개선해 나가는 과정을 거치면서, 코드 리뷰를 더욱 효과적으로 수행할 수 있습니다.

목적과 이유를 명확히 알고 수행

코드 리뷰는 코드 품질을 향상시키기 위해 수행합니다. 그러나 좀 더 구체적으로, 코드 리뷰는 개발자 간의 학습과 지식 공유, 코드 작성 표준의 준수, 코드 결함 수정, 보안 관련 문제에 대한 대응, 코드 협업의 개선 등의 다양한 목적을 가집니다. 따라서 코드 리뷰를 수행하기 전에 이러한 목적과 목표를 명확하게 설정하고, 그에 따라 작업을 수행하는 것이 중요합니다.

상호작용을 통한 효과적인 프로세스 반복

코드 리뷰 과정에서는 리뷰어가 작성자에게 피드백을 제공하고, 작성자는 이를 바탕으로 코드를 수정하여 다시 리뷰어에게 전달합니다. 리뷰어는 다시 수정된 코드를 리뷰하고 추가적인 피드백을 제공하며, 이러한 과정을 반복하면서 코드 품질을 지속적으로 개선할 수 있습니다. 이러한 상호작용을 통해, 코드 리뷰는 코드에 대한 품질 향상 뿐 아니라, 개발자 간의 의사소통과 협력, 개발 문화의 개선 등 다양한 효과를 가져올 수 있습니다.

코드 리뷰 문화를 만들기 위한 다양한 방법

코드 리뷰를 의무화

코드 리뷰를 의무화하면 개발자는 코드 리뷰를 수행하는 것을 당연한 것으로 여기게 되고, 코드 리뷰 문화가 자연스럽게 자리 잡을 수 있습니다.

코드 리뷰 수행 방법 교육

코드 리뷰를 수행하는 방법을 교육하면 개발자는 코드 리뷰를 효과적으로 수행할 수 있게 되고, 코드 리뷰 문화가 활성화될 수 있습니다.

코드 리뷰 참여 개발자에게 인센티브 제공

코드 리뷰에 참여한 개발자에게 인센티브를 제공하면 개발자는 코드 리뷰를 수행하는데 더 적극적으로 참여하게 되고, 코드 리뷰 문화가 활성화됩니다.

마치며

코드 리뷰는 개발자가 작성한 코드를 다른 개발자가 검토하여 버그를 조기에 발견하고 수정할 수 있어 소프트웨어의 품질 및 안정성을 향상 시킬 수 있는 활동입니다. 코드 리뷰 문화 지향하고 계속해서 발전시키기 위해 노력하는 저희 데브피플의 개발 방식을 통해 합리적인 가격으로 높은 퀄리티의 서비스를 만들어보세요.