본문 바로가기
생각 정리

좋은 코드리뷰란 OOO이다.

by NewCodes 2024. 7. 13.

 

 

안녕하세요. NewCodes입니다!

 


이번 글에서는

코드리뷰에 대해서

간결하게 정리해 봤습니다.

 

 

곧 부스트캠프 9기 챌린지 '피어 세션'에서

코드리뷰를 해야 해서 그전에

글을 쓰면서 생각 정리를 했습니다.

 

 

!주의!

저는 아직 코드리뷰의 경험이 많지 않고,

부족한 부분이 있을 수 있습니다.

 

레퍼런스 내용을 그대로 가져오기보다는

제 언어로 정리한 부분이 많습니다.

 

자세한 내용은

제일 아래 레퍼런스를

살펴봐주세요!

 

 


📌 내가 생각하는 ‘좋은 코드리뷰’란?

나, 상대방, 코드 세 객체가 성장할 수 있는 리뷰

  •  코드리뷰
    • 의미: 가독성 및 유지보수성 향상 + 버그 및 장애 예방을 위한 활동
    • 참여 객체: 리뷰어, 리뷰이, 코드
  • 좋은 코드리뷰의 조건
    1. 리뷰어가 코드 작성 의도를 쉽게 파악할 수 있는 (ex. PR 템플릿 활용)
    2. 리뷰이가 스스로 고민하고 개선할 수 있는 여지가 있는 (ex. 명령X 청유O, 질문O)
    3. 리뷰이가 감정적으로 불편하지 않으면서 도움이 되는 (ex. 비난X, 칭찬O)

 

 


👨🏻‍💻 코드 리뷰어로서의 자세

코드 뒤에는 상대방이 있다.

  1. 코드리뷰는 엄연히 커뮤니케이션이다. 코드 뒤에 있는 상대방을 배려하자.
  2. 개선이 필요하다면, 그 이유를 충분히 설명하자.
  3. 리뷰이가 스스로 고민하고 개선, 학습할 수 있도록 여지를 주자.
  4. 코드를 클린하면서 일관성 있게 작성했는지 체크하자.
  5. 리뷰를 위한 리뷰 하지 말자. 리뷰할 게 없다면 칭찬으로 마치자.

 

 


📋 코드 품질 체크리스트

네이밍, 일관성, 성능, 모듈화

  1. 가독성
    • 스타일: 코드 컨벤션 지켰는가?
    • 네이밍: 변수, 함수, 클래스, 파일 네이밍 의미 있고 명확한가?
    • 일관성: 코드가 일관성 있게 작성되어 있는가?
  2. 성능 및 안정성
    • 시간 복잡도 효율적인가?
    • 적절한 자료구조를 선택했는가?
    • 불필요한 연산이 있진 않은가?
    • 예외 처리를 꼼꼼하게 했는가?
  3. 코드 구조
    • 파일, 클래스, 함수 분리 등 모듈화가 적절히 되어있는가?
    • 중복된 코드가 많지는 않은가?
    • 파일 내 함수, 변수 등 순서가 적절히 응집되어 있는가?

 

 


🗂️ 레퍼런스

 


 

여기까지 해서 글 마치겠습니다!

 

챌린지 이후 코드리뷰 경험이 많이 쌓이면

'좋은 코드리뷰'가 무엇인지

재정의해보는 것도 재밌겠네요 ㅎㅎ

 

https://www.reddit.com/r/ProgrammerHumor/comments/lh9bxg/code_reviews_in_a_nutshell/