구글의 문화 - 피어 리뷰 (1/4)
Peer Review는 동료 평가로 번역이 되지만, 동료 평가보다는 ‘피어 리뷰’로 쓰는편이 저의 느낌상 더 나아보입니다. 이 글에서는 피어 리뷰로 쓰니 양해해 주세요.

구글이 성공하는 데 피어 리뷰 문화가 절대적이었다고 생각합니다. 피어 리뷰 문화가 구글의 핵심인 채용, 성과 평가 그리고 코딩에 실제로 어떻게 적용되었는지 알아보겠습니다.

피어 리뷰는 학계에서는 일반적인 프로세스
피어 리뷰는 학계 특히 과학/공학 분야에서는 일반적인 프로세스입니다. 논문을 컨퍼런스나 저널에 싣기전에 해당 분야의 다른 연구자들이 논문을 리뷰하고 필요한 경우 수정/보완하여 논문을 최종 출판합니다. 피어 리뷰를 통해 해당 분야의 수준과 신뢰성을 유지하도록 합니다.
http://en.wikipedia.org/wiki/Peer_review

코드 리뷰
코드를 작성하고 코드 베이스(소스 코드를 저장하는 저장소)에 체크인하기 전에 반드시 동료의 코드 리뷰를 받아야 합니다. 팀 분위기에 따라 다소 차이는 있지만 코드 리뷰를 매우 철저하게 합니다. 시스템의 전체적인 구조에서부터 성능 향상을 위한 조언, 적절한 라이브러리의 사용, 유닛 테스트 그리고 공백의 개수와 주석의 오타까지 모두 리뷰를 합니다. 코드를 한번 작성하는 데 많게는 수십여개에 이르는 개선 사항을 알려주고 리뷰를 받는 사람은 개선할 것은 개선하고 토의가 필요한 부분은 상세한 설명을 달아 다시 리뷰어에게 보내는 식으로 몇 번을 주고 받은 후에야 비로소 체크인이 가능한 상태가 됩니다.

코드 리뷰과정에서 시간도 많이 소요되고 상당한 에너지가 소모됩니다. 그렇지만 그런 과정을 거쳐서 신뢰할 수 있는 코드를 작성할 수 있고, 리뷰를 받는 쪽이나 리뷰를 하는 쪽이나 새로운 기술을 배울 수 있으며, 코드의 작성자가 사정상 부재중일 때에도 그 코드를 리뷰했던 동료들이 무리없이 코드를 유지보수할 수 있게 됩니다.

회사 전체를 놓고 보면 코드 리뷰를 통해 코딩 스타일과 문화가 전체 구성원에게 전파됩니다. 구글의 소스코드를 저장하는 코드베이스는 중앙집중화되어 있는데 다른 사람 또는 다른 팀에서 작성한 코드도 모두 같은 라이브러리를 사용하고 같은 코딩 스타일을 가지고 있기 때문에 쉽게 이해할 수 있습니다.

구글에는 유닛 테스트, continuous build system, coding style checker, dependency monitor 등 다 헤아리기 힘든 소스코드 관리 기술과 시스템이 있습니다. 그렇지만 피어 리뷰를 기반으로는 하는 코드 리뷰 프로세스가 있었기 때문에 신뢰성있고 확장가능한 소프트웨어를 제공할 수 있었습니다.

#직장생활
Shared publiclyView activity