본문 바로가기

강의/Udacity ML

5.11 코드 리뷰와 고려할 점, 코드 검토를 위한 팁

SMALL

코드 리뷰는 최고의 프로그래밍 프랙티스를 홍보하고 프로덕션용 코드를 준비할 수 있는 팀 구성원 모두에게 유용하다. 코드 리뷰에서 무엇을 찾아야 하는지와 코드 리뷰를 수행하는 방법에 대한 몇 가지 팁이 있다.

 


 

코드가 깨끗하고 모듈화되었는가?

- 코드가 이해하기 쉬운가?

- 의미 있는 이름과 공백을 적절히 사용하였는가?

- 중복된 코드가 있는가?

- 다른 추상 레이어를 제공할 수 있는가?

- 각 함수가 적절히 모듈화 되었는가?

- 각 함수 또는 모듈이 너무 길지 않은가?

 

코드가 효율적인가?

- 벡터화할 수 있는 루프 또는 단계가 있는가?

- 더 나은 자료구조를 사용할 수 있는가?

- 필요한 계산 횟수를 최소화할 수 있는가?

- 생성자 또는 멀티프로세싱을 사용하여 최적화할 수 있는가?

 

문서가 유효한가?

- 인라인 코멘트가 의미있는가?

- 문서가 없는 복잡한 코드가 있는가?

- 함수가 효과적인 문자열을 사용하는가?

- 필요한 프로젝트 문서가 제공되는가?

 

코드가 적절히 테스트 되었는가?

- 코드가 높은 테스트 범위에 있는가?

- 테스트에서 흥미로운 사례가 있는지 확인하는가?

- 모든 테스트를 읽을 수 있는가?

- 테스트가 더 효율적일 수 있는가?

 

로그가 효율적인가?

- 모든 로그메시지가 분명하고, 간결하고, 전문적인가?

- 모든 로그들이 연관성 있고 유용한 정보를 가지고 있는가?

- 적절한 로그 레벨이 사용되었는가?

 


동료가 팀의 코드베이스에 병합할 코드를 모두 작성하면 검토하기 위해 해당 코드를 사용자에게 보낼 수 있다. 사용자가 피드백과 제안사항을 제공하면, 해당 사용자가 수정하여 사용자에게 다시 보낼 수 있다. 코드가 만족스러우면 승인하고 팀의 코드베이스에 병합된다. 코드 리뷰를 통해 이제 컴퓨터만이 아닌 다른 사람을 상대하게 되었다. 그래서 그들의 아이디어와 노력에 대해 사려 깊게 생각하는 것이 중요하다. 당신은 한 팀이고 선호도에 차이가 있을 것이다. 코드 검토의 목표는 모든 코드가 사용자의 개인적 선호에 맞게 만드는 것이 아니라 전체 팀의 품질 기준에 부합하도록 하는 것이다.

 

코드 린터 사용

이것은 실제로 코드 검토를 위한 팁은 아니지만, 코드 검토에 많은 시간을 절약할 수 있다. Pylint와 같은 Python 코드 린터를 사용하면 코딩 표준과 PEP 8 지침을 자동으로 확인할 수 있다. 또한 코드 스타일에 대한 불일치를 처리하기 위해 기존 스타일 가이드든, 팀으로서 함께 만드는 스타일 가이드든 팀으로서 합의하는 것이 좋다.

 

문제 설명 및 제안

사람들에게 코드를 더 낫다고 특정한 방식으로 바꾸라고 명령하기보다는, 현재 코드의 결과를 설명하고 개선하도록 변경 사항을 제안하는 것이 훨씬 더 효과적일 것이다. 고객이 여러분의 사고 과정을 이해하고 명령을 따르는 것보다 권장 사항을 수용하는 경우 여러분의 피드백에 훨씬 더 잘 들어줄 것이다. 그들은 또한 의도적으로 그것을 했을 수도 있고, 그것을 제안으로 내세우는 것은 반대보다는 건설적인 논의를 촉진한다.

 

객관적인 설명

당신의 코멘트에 "나"와 "당신"이라는 단어를 사용하지 않도록 한다. 검토의 주의를 코드가 아닌 코드로 유도하기 위해 개인적으로 들리는 코멘트를 피하려고 한다.

 

코드 예제 제공

코드 리뷰를 제공할 때 작성자 시간을 절약하고 코드 제안을 작성하여 작성자가 귀하의 피드백에 쉽게 대응할 수 있도록 할 수 있다. 이는 귀사가 코드를 검토하고 도움을 주기 위해 시간을 더 할애할 의사가 있음을 보여준다. 설명보다는 코드를 통해 개념을 설명하는 것이 훨씬 빠를 수 있다.

 

SMALL