IT_Study/Team Project

[공통 PJT] 코드 리뷰 방법 정리

__Vivacé__ 2023. 7. 7. 12:33

코드 리뷰란?

소프트웨어 개발 과정에서 다른 개발자나 팀 멤버들이 작성한 코드를 검토하고 평가하는 과정

이 과정은 일반적으로 코드의 품질, 가독성, 유지보수성, 버그의 유무 등을 확인하고 개선하기 위해 수행됨

 

코드 리뷰의 목적

1. 코드 품질 향상

 - 리뷰를 통해 코드의 가독성, 유지보수성, 확장성 등을 개선하고, 버그를 사전에 발견하여 소프트웨어의 품질을 향상

 

2. 지식 공유와 학습

 - 다른 개발자의 코드를 검토하고 의견을 나누는 과정에서 개발자들은 서로의 아이디어와 기술을 배울 수 있으며, 최신 개발 동향을 파악할 수 있음

 

3. 팀 협업 강화

 - 리뷰를 통해 팀 전체의 코드 표준과 가이드라인을 준수할 수 있으며, 문제를 빠르게 해결하고 개선할 수 있음

 

일반적으로 코드 리뷰는 버전 관리 시스템(Git 등)을 통해 수행되며, 개발자가 작성한 코드를 리뷰어가 확인하고 의견을 제시

리뷰어는 코드 리뷰 도구를 사용하여 변경 사항을 주석으로 남기고, 개선이 필요한 부분을 지적하며, 최종적으로 코드 변경 사항을 승인 또는 요청할 수 있음

 

 

 

코드 리뷰를 힘들게 하는 요인

1. 무응답

 - "이미 코드가 완벽해 보이는데요?", "아는 게 없는데.."

 - 코드리뷰는 커뮤니케이션이다

코드 작성자 리뷰어
진짜 코드를 통한 질문
새로운 프로젝트 온보딩
자신의 코드를 다시 확인
새로운 접근 방법 발견의 토대

 

2. 느린 속도

 - "리뷰 언제 해주는 거야.." "언제 이 리뷰 끝나는 거지?"  |  코드 리뷰 기다리느라 작업이 느려진다 / 배포가 더 급하다

 - 코드 리뷰 안해서 다시 고치거나 장애 대응이 더 오래 걸린다

 

3. 공격적인 커뮤니케이션

 - "이렇게 고치세요" "왜 이렇게 짰어요?" x

 - 온라인 코드 리뷰는 표정, 억양, 상황, 기분을 알 수 없다 / 최대한 자세하게! 정성을 다하는 커뮤니케이션이 필요

 - 방지하기 위한 방법

    1. "you" 대신 "we" 쓰기

      - 코드를 리뷰하는 게 아니라 상대를 리뷰하는 듯한 느낌을 줄 수 있다.

    2. 형용사/부사 사용하지 않기 (뭔가 엄청 큰 실수를 한 것 같은 느낌을 줄 수 있음)

    3. 대문자로만 이야기하지 않기 (강하게 들릴 수 있음)


코드 리뷰 잘하는 법

 

1. 빠르게 리뷰하기

 - 코드 리뷰가 방치될수록 그 가치는 떨어진다

Github code priority

P1 : 이번에 반드시 반영되어야 하는 중대한 코드 수정 의견 (Request Changes)

 - 버그 가능성이 있거나 잘못된 구현인 경우. 만약 반영되지 않는다면 이에 대한 반대 의견도 낼 수 있어야 한다.

 

P2 : 적극적으로 이야기했으면 하는 의견 (Request Changes)

 - 잠재적인 이슈나 확장성을 고려해야 하는 경우. 토론하며 의견 조율할 수 있다.

 

P3 : 가능하다면 반영해주었으면 하는 의견 (Comment)

 - 지금 구현보다 더 나은 방향이 있는 경우. 이번 반영이 어렵다면 다음 작업에서도 고려해볼 수 있도록 한다.

 

P4 : 다음에 반영 되도 되는 의견 (Approve)

 - 반영이 되지 않거나 반대 의견을 적극적으로 할 필요 없다.

 

P5 : 사소한 의견 (Approve)

 - 무시해도 됨. 혹은 관련 나누고 싶은 점 나눌 수 있다.

 

 

 

모두 다 반영하려고 하면 지치기 때문에, 중요한 건 지속 가능한 코드 리뷰 문화

 


2. nit 줄이기

*nit : 사소하고 작은 문제로 주로 스타일 가이드 준수, 가독성 개선 등을 의미 / 전체적으로는 중요하지 않지만 품질 향상에 도움이 될 수 있는 부분에서 사용

코드 리뷰 피라미드 / https://kyungyeon.dev/posts/78

 

3. 변경 사이즈 줄이기

 - 리뷰할 내용이 커지면 코드 리뷰하기 부담, 작은 수정에도 모든 코드가 "리뷰 중" 상태 --> 코드 리뷰 속도 느려짐

 - 다른 작업과의 충돌 가능성이 높아짐 / 코드 롤백 시, 모든 작업이 다 롤백 --> 심적 부담감 증가

 

 

코드 리뷰를 활용하기 좋은 Tool 소개