Software Engineering

Code Review (코드 리뷰)

알로그 2020. 4. 4. 17:09
반응형

코드리뷰(Code Review)

 

Code Review is systematic examination (often known as peer review) of computer source code without running code

 

 

목적

  • 오류 가능성을 찾아서 해결
  • SW품질과 개발자 스킬 향상

 

장점 

  • 개발 초기의 실수를 발견하고 수정가능 (결함 잠재 발견율이 테스팅보다 두배 큼)
  • 전체적인 품질 향상
  • 상호 신뢰, 동기부여, 전문성 확보
  • 팀의 경험과 지식 공유
  • 개발자의 스킬 향상
  • 개선된 디자인 발견
  • 가독성 높은 코드

 

단점

  • 시간/리소스 소요

 

사전작업

  • 코드품질의 중요성 인식
  • 체계적인 요구사항, 설계활동 전개
  • 코딩스타일 준수
 

사후작업

  • 자동화 테스트 전개를 통한 코드리뷰 보완
  • 리뷰 내용을 바탕으로 테스트 보강

 

저자를 위한 당부

  • 리뷰어의 시간 소중히 생각하기
  • 기본적인 코딩룰 준수
  • 리뷰받고자 하는 내용 명시
  • 본인의 체크리스트 생성
  • 커밋당 이슈 하나의 원칙 지키기
  • 리뷰어가 이해하기 쉽게 코멘트 작성
  • 코딩룰 개선하는데 관심 갖기
 

리뷰어를 위한 당부

  • 내 방식만 옳다는 생각으로 상대 비난말기
  • 공격적인 질문 피하기
  • 칭찬하기
  • Inline comment 활용

 

일반적인 실수 방지

  • 리뷰시 목적을 분명히 한다.
  • 한 페이지 정도의 체크리스트가 적절
  • 한번에 한 목적에 대해서만 리뷰
  • 오프라인 리뷰시에는 문제만 찾고, 해결은 추후 따로 진행
  • 리뷰어의 이해를 돕기 위해 설명력있는 수정사유와 리뷰포인트 기술

 

체크리스트 활용시 장점

  • 팀 지식 체계화
  • 리뷰 기준 공유
  • 저자의 역량 향상

 

체크리스트 활용시 단점

  • 리뷰시 번거로움
  • 유지비용 발생

 

체크리스트는 위반빈도를 기반으로 지속적으로 갱신 필요함

 

Fagan Inspection

  • Planning - Overview - Preparation - Meeting - Rework - Followup

 

코드리뷰 가이드

  • 코드리뷰 대상은 되도록 200 LOC미만 유지하되 400 LOC 초과하지 않기
  • 코드 리뷰 시간은 60분 미만 유지하기
  • 300LOC / hr로 inspection을 진행할 때, 결함발견율이 가장 높음
  • 결함은 리뷰어들이 개별적으로 코드를 읽어보는 시간에 가장 많이 검출 됨, 회의실에 모여서 하는 리뷰는 선택임

 

기타

  • 리뷰를 거쳐도 결함을 놓일 수 있음
  • 다양한 시각을 통해 완성도를 높일 수 있음.
  • 결함을 통해 배우지 못하면 계속 실수하게 됨
  • 리뷰는 수평적인 관계에서 이루어져야 함

 

코드리뷰 마인드맵 참조

반응형

'Software Engineering' 카테고리의 다른 글

Agile (애자일) 개발방법론  (0) 2020.04.04
DevOps (데브옵스)  (0) 2020.03.01
정적분석 툴 선별시 고려할 사항  (0) 2020.02.29
SW 개발환경 (dev, staging, production)  (0) 2020.02.10
스크럼 (Scrum)  (0) 2019.12.22