코드 리뷰 가이드 (by Google)
TMT서로의 코드를 리뷰하면 좋은 점
- 남이 작성한 코드를 꼼꼼히 읽어보는 것만으로도 개발 실력 향상에 큰 도움이 됩니다.
- 같은 기능을 구현하였어도 방법은 가지각색입니다. 다른 사람의 코드를 보며 시야가 넓어집니다.
코드 리뷰를 할 때의 마음가짐
서로 코드 리뷰를 할 때는 마음가짐이 무엇보다 중요합니다. 리뷰어(리뷰하는 사람)
는 틀렸다고 말하기보다 의견을 묻고 제안하는 것이 좋고, 리뷰이(리뷰 받는 사람)
는 내 코드를 꼼꼼히 읽어주었다는 것에 감사한 마음을 갖는 자세로 임해야 합니다.
리뷰이
가 고려해야 할 것
- 논리적인 오류나 오타가 없는지 점검합니다.
- 권장되지 않는(deprecated) 구식 기능이 있는지 점검합니다.
- 주석은 리뷰어가 리뷰하는 데 큰 도움이 됩니다.
리뷰어
가 고려해야 할 것
- 내가 알고 있는 게 정확한 내용인지 확인합니다.
- 어떤 의도로 작성한 것인지 생각해봅니다.
- 공격적이지 않고 배려하는 마음으로 리뷰합니다.
얕은 코드 리뷰하는 방법
*아래 방법은 [Google의 코드리뷰](https://google.github.io/eng-practices/review/) 프로세스 및 정책을 참고해 작성하였습니다.
대부분의 우리는 경력이 풍부한 현직 개발자가 아니기 때문에, 심층적인 코드 리뷰를 진행하기는 어렵습니다.
그럼에도 아래의 4가지 주제와 같이, 현직 개발자가 아니더라도 충분히 할 수 있는 얕은 코드 리뷰를 소개합니다.
디자인
: 코드가 잘 설계되어 있는가? : 리뷰어는 작성자의 파일 구조에 대해 물어볼 수 있어요. 정답을 구하거나 조언하기보다, 작성자의 의도가 무엇인지를 물어보는 것이 좋습니다. 코드 구조에 대해 서로 이야기하면서 더 나은 설계 방법을 고민해보아요.
예시) variable_ex는 굳이 전역변수가 아니어도 될 것 같아요! function_ex 함수 안에 넣어보는 건 어떨까요?기능
: 함수의 기능과 역할 함수의 기능과 역할에 대해 물어볼 수 있어요. 보고 배우거나 더 나은 방법을 제안할 수도 있습니다.
예시) 저와는 다른 방법으로 구현하신 것 같아요! 그런데 작동 방식이 100% 이해되지 않아서요! 어떤 의도로 작성하셨는지 여쭤보아도 될까요?복잡성
: 단순화할 수 있는가? 코드를 더 효율적으로 작성할 수 있는 방법에 대해 서로 이야기를 나누어보는 것도 좋습니다.
예시) function_ex1 과 function_ex2의 기능이 유사한 것 같아요! 하나의 함수로 처리해보는 건 어떨까요? 제가 제안하는 방법은 ‘~~’ 입니다!테스트
: 개발자가 변수, 클래스, 메서드 등에 대해 명확한 이름을 선택했나요? 변수, 클래스, 메서드의 이름이 난해하다면, 더 나은 변수 이름을 제안해볼 수도 있습니다.
예시) 파일1과 파일2의 변수 표기법이 서로 다른 것 같아요! 아마 급하게 작성하시느라 놓치신 것 같은데, 하나로 통합해보는 것을 추천드립니다 :)