[정글] 코드리뷰란?

letsbebrave·2022년 5월 5일
0

Jungle

목록 보기
5/5
post-thumbnail

코드리뷰란

코드리뷰란, 한 명 또는 여러 명의 개발자가 본인이 만들지 않은 코드의 내용을 점검(examining)하고, 피드백을 주는 과정

코드를 작성하는 사람마다 여러 성향 있음

  • 프로그래밍 언어와 프레임워크가 추구하고자 하는 기본 철학을 이해하고 그에 맞는 방식을 유지하려고 노력하는 사람
  • 기존에 다른 환경에서 개발하던 방식을 벗어나지 못하고 현재 환경의 장점을 활용하지 못하는 사람
  • 언어나 프레임워크가 기본적으로 제공하는 손쉬운 기능들을 잘 숙지하고 적절히 활용하는 사람
  • 이미 만들어져 있는 기능을 사용하지 못하고 직접 불필요한 기능을 추가하는 사람
  • etc..

코드리뷰를 통해 얻을 수 있는 것

  • 버그의 조기 발견
  • 개발 표준 준수
  • 중복 코드를 방지하고 모듈의 재사용성 증대

여러 성향 및 개인 간의 격차를 해소하는 가장 좋은 방법이 코드리뷰 -> 전체적인 조직의 역량을 강화

가장 중요한 점 한 가지는, ‘책임자를 추궁하지 않는 문화’의 정착 -> 개발 결과물에 대한 책임이 사람 개인이 아닌 우리 모두에게 있다는 문화 정착 가능

why?
코드리뷰를 하면 특정 문제가 발생했을 때 그 책임의 원인을 '누구'에게 있었느냐보다 '왜' 그 문제를 사전에 발견할 수 없었느냐에 초점을 맞추게 되므로!

코드리뷰 시 확인해야 할 것

기능의 정상 동작 여부

모든 코드는 존재하는 목적을 가지고 있어야
원하는대로 동작하지 않는 코드는 잘못된 코드
코드리뷰의 시작과 끝은 언제나 기능이 원하는대로 정상 동작하는지 확인하는 작업

버그의 조기 발견

버그가 발생할 소지가 없는지 점검

가독성과 유지보수 편의성

소프트웨어 개발의 전체 생명주기(life cycle)에서 유지보수가 차지하는 비중이 매우 큼
다른 사람의 코드를 쉽게 이해하고 유지보수가 가능하도록 개발하는 것이 매우 중요
가급적 기준을 정해두고 해당 기준을 기반으로 판단

개발표준 (convention) 준수 여부

배울만한 점은 없는지

코드리뷰가 반드시 경력이 많거나 실력이 좋은 개발자가 후배 개발자의 코드를 검사하는 것은 아님. 코드리뷰의 목적은 코드 작성자에 게 피드백을 주는 것도 있지만, 해당 코드를 보면서 ‘아, 이런 식으로 코드를 작성하는 것도 가능하구나?’, ‘아, 이렇게 쉬운 방법이 있었구나?’와 같은 학습효과도 함께 가지고 있음. 그렇기 때문에 코드를 리뷰할 때는 피드백을 주기 위한 시각과 좋은 점을 배우려는 시각, 이 두 가지 시각의 균형을 맞추며 진행하는 것이 좋음.

코드리뷰에서 주의해야 할 점들

코드의 맥락(CONTEXT)을 이해할 수 있는 설명을 추가

해당 코드가 어떤 목적을 가지고 작성되었으며 왜 필요한지에 대한 맥락을 리뷰어가 이해할 수 있도록 설명을 적어두는 것이 좋음
주석보다는 코드리뷰 도구의 메시지 또는 코멘트를 이용하는 것이 좋음

주관적인 의견을 표현하는 방식

기존에 자신이 일하던 방식이 정답이라는 생각을 버리고, “나의 의견은 이러한데 당신은 어떻게 생각하시나요?”와 같이 의견을 묻는 것이 좋음.
만약, 서로 다른 견해로 좀 더 많은 사람의 의견을 듣고 싶다면 비공식적인 팀 리뷰에 해당 내용을 제안하여 의견을 나눠보는 것도 도움이 됨

Sources

https://blog.logi-spot.com/%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0%EC%9D%98-%EC%A7%84%EC%A7%9C-%EB%AA%A9%EC%A0%81%EC%9D%80-%EB%94%B0%EB%A1%9C%EC%9E%88%EB%8B%A4/
https://techwell.wooritech.com/blog/2021/04/19/%EC%BD%94%EB%93%9C%EB%A6%AC%EB%B7%B0/

profile
그게, 할 수 있다고 믿어야 해

0개의 댓글