반응형
코드리뷰(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 |