소프트웨어 품질을 보장하기 위한 방법중 코드 리뷰가 가장 효과적이다.

코드리뷰 : 코드를 실행하지 않고 사람이 검토하는 과정을 통하여 코드에 숨어있는 잠재적인 결함을 찾아내고 이를 개선하는 일련의 과정

코드 리뷰 스펙트럼

코드 리뷰는 얼마나 프로세스를 따르냐에 따라서 방법이 나누어져 있다.

https://img1.daumcdn.net/thumb/R800x0/?scode=mtistory2&fname=https%3A%2F%2Ft1.daumcdn.net%2Fcfile%2Ftistory%2F996056335A0E5D841F

가장 정형화된 기법부터 살펴보면

Code Inspection 

일정한 패턴을 가지고 분석을 하며 4가지 역할을 가지고 구성이 된다.

  1. 중재자 : 실제적인 매니저, 프로세스 정의와 산출물 정리, 테스트 환경을 확보하고 인원을 섭외한다. 인스펙션이 언제 끝날것인지 정의하는 역할
  2. 리더 : 어떤 흐름으로 인스펙션을 진행할지 방향 제시
  3. 디자이너와 코디 : 코드를 검증하고 잠재적인 결함 발견, 수정방안 제시
  4. 테스터 : 테스트를 수행하고 결함을 찾아내는 역할

그리고 6단계에 걸쳐 코드 리뷰를 진행하게 된다.

  1. 계획 : 기간, 종료 조건등 계획을 수립한다.
  2. 오버뷰 : 시스템에 대한 교육이 진행되고 팀원간의 역할이 할당된다.
  3. 준비 : 역할별로 필요한 문서 습득, 테스팅도구 구축
  4. 인스펙션 : 각자의 역할에 따라 인스펙션을 수행한다.
  5. 재작업 : 보고된 결함을 수정
  6. 후처리 : 잘 수정되었는지 확인
Team Review
  1. 발표자 : 코드를 만든 사람으로 코드에 대해 설명하고 팀원은 결함이나 개선안을 찾는다.
  2. 중재자 : 리뷰의 주제를 선정하고 리뷰를 진행한다.
Walkthrough

워크스루는 단체로 하는 코드리뷰 기법중 가장 비 정형적인 기법으로 발표자가 리뷰의 주제와 시간을 정해서 발표를 하고 의견이나 아이디어를 공유한다.

Over the Shoulder Review

주로 2~3명이 진행하는 코드 리뷰로 코드 작성자가 코드를 설명하고 다른 한 사람이 설명을 들으면서 아이디어를 제안하거나 결함을 발견하는 형식의 코드 리뷰이다.

Passaround

Git에 커밋 하기 전에 코드 내용을 리뷰하는 방법으로, 일일이 배포해서 리뷰를 받아야 하므로 자동화된 리뷰 도구를 사용하는것이 좋다.

코드리뷰를 사용해야 하는 시기?
  1. 코드 인스펙션 : 릴리즈
  2. 팀 리뷰 : 각 개발 유닛에서 사용, 팀 단위에서 활용하기 좋다.
  3. 워크 스루 : 비정기적으로 개최
  4. 피어리뷰 : 신입 개발자 교육, 지식공유
  5. 패스 어라운드 : 팀 자체가 코드리뷰의 필요성을 느낄때
효과적인 코드 리뷰를 막는 요인들

리뷰의 주요 목적이 결함의 발견과 개선임을 인지하고 아이디어나 결함에 대한 의견을 자유롭게 표출 할 수 있도록 해야하며 발표자의 감정을 상하지 않게 말 하는 것이 중요하다.

 

 

이 글은 코드프레소 DevOps Roasting 코스를 수강하면서 작성한 글입니다.

+ Recent posts