Skip to content

Latest commit

 

History

History
49 lines (40 loc) · 3.18 KB

Code Review.md

File metadata and controls

49 lines (40 loc) · 3.18 KB

코드리뷰

코드 리뷰의 주목적은 구조를 개선하고 가독성을 높이는 등 유지보수를 위해 품질을 높이는 것입니다. 팀원끼리 서로 배움을 주고 받으면서 동기부여가 되기도 하고, 개발 현황을 수시로 공유하는 역할을 하기도 합니다.

절차

  1. 코드 작성자는 변경내역을 요약하여 PR을 올립니다.
    • 변경내역이 너무 많지 않도록 분량 조절
    • 관련된 이슈는 #(이슈번호) 붙이기
  2. 리뷰어는 코드를 천천히 읽어봅니다.
    • 문제가 없으면 'Approve' 표식 달기
    • 의견, 우려되는 부분 등은 'Comment' 또는 'Request Changes' 표식 달기
  3. 코드 작성자는 리뷰를 읽고 수정 후 Merge합니다.
    • 하루 이상 리뷰가 진행되지 않는다면 임의로 Merge 가능

코드리뷰 대상

다음은 코드 리뷰의 대상이 될 수 있는 부분입니다. 예시일 뿐이며 자유롭게 편한 방식대로 리뷰하면 됩니다.

  • 가독성: 코드는 편하게 읽히는지, 개선할 여지가 있는지
  • 복잡성: 같은 기능을 더 간단하게 구현할 수 있는지
  • 재사용성: 이미 정의한 메소드나 클래스와 역할이 겹치지 않는지
  • 코드 스타일: 네이밍룰 등 큰 틀의 코드 스타일을 잘 지켰는지
  • 아키텍처: 레이어 및 디자인 패턴에 따라 관심사를 적절히 분리했는지, 적절한 패키지에 속하는지
  • 성능: 메모리 누수, 비효율적 연산 등 개선 여지가 있는지
  • 단일책임원칙: 클래스나 메소드가 비대하지는 않은지. 분리가 가능한지
  • 질문: 코드에 대해 자유롭게 질문

피드백 방법

  • I Message: 상대를 지칭하기 보다는 자신의 주관을 설명합니다.

❌ 메소드를 너무 복잡하게 짜두셨네요.

⭕ 메소드가 어떤 일을 하는지 이해하기 힘드네요.

  • OIR 규칙: 객관적 관찰 - 영향 - 요청의 세 부분으로 구성하면 좋은 피드백이 됩니다.
부분 설명 예시
관찰(Observation) 코드의 객관적 사실을 설명 "메소드 길이가 약 100라인 정도됩니다."
영향(Impact) 위 관찰이 본인에게 미친 영향 "그래서 메소드가 어떤 역할을 하는지 파악하기가 조금 힘들었습니다."
요청(Request) 해결방안 또는 제안 "10~20줄 부분은 private 메소드로 분리하면 알아보기 더 편할 것이라 생각해요."

리뷰 팁

  • PR에 대한 요약을 성의있게 작성해야 리뷰하기 편합니다.
  • 코드 스타일 리뷰는 리뷰 마지막에 몰아 넣어서 최소한으로 하는 것이 좋습니다.
  • 잘 분리된 커밋은 작성자는 물론 리뷰어에게도 큰 도움이 됩니다.
  • 무거운 기능 구현은 같은 브랜치에서 중간중간 PR을 올립니다.
    => 변경된 코드의 양은 약 200~400줄이 적당
  • 리뷰 대상은 작성자가 아닌 코드 자체임을 항상 인지합니다.

🔗 참고