코드 리뷰

좐쓰 ㅣ 2022. 12. 1. 16:54

반응형

코드 리뷰를 해야 하는 이유?

  • 소프트웨어가 중요해짐과 동시에 그 규모가 커지고 하드웨어와 다르게 소프트웨어는 유저의 요구사항이 변경되고 이를 반영할 수 있어야한다. 즉 변화가 낮은 소프트웨어의 특성상 건축물을 설계하는 것처럼 체계적인 관리 방법이 필요하다. 이때에 많은 사람들이 같은 프로젝트에 참여하게 되는데 이 때에 각자 구현한 코드는 팀원들에게 각각 코드를 구현하는 과정에서 어떠한 방식으로든 영향을 줄 수 있으므로 구현된 코드를 서로 Feedback 하는 일련의 과정을 통해서 문제를 조기에 검출하고 코드의 품질을 향상 시킬 수 있다.

 

코드 리뷰의 목적!

직접적인 목적 간접적인 목적
조기 문제 검출 편향적 인식 변화
코드 품질 요구사항 준수 역량 발전
보다 정확한 문제 수정 재 작업 비용 절감

 

코드 리뷰의 절차

 

  1. 리뷰 요청
  2. 리뷰 및 feedback
  3. 수정 후 코드 저장 및 배포

코드리뷰

코드 리뷰가 어려운 이유

  • 개발자 마다 일관 되지 않은 코딩 스타일
  • 코드 설명에 대한 부재
  • 소극적 협업

 

코드 리뷰를 통해서 개선 되는 점

  • 프로젝트 리스크 및 이슈감소를 통한 비용감소
  • 가독성 상승 및 유지 보수성 강화
  • 개발자간 원활한 협업 및 개인 역량 향상

 

코드 리뷰를 위해 필요한 것

  • 적합한 역할 선정
  • 저자(Author) → 코드 개발자 , 검토 대상에 대한 부연 설명 , 문제 수정
  • 검토자(Reviewer) → 검토자 잠재적 문제 이슈 발견 , 다양한 관점으로 피드백
  • 도구 선정
  • GitHub, CodeStriker, Bitbuket 등등
  • 상황과 전략에 맞는 회의방식 설정
  • 개인 검토 → 혼자서 코드 리뷰를 진행
  • merge 시점에서 author, reviewer 쌍방향 리뷰 (confilct 여부, 코드에 대한 feedback 혹은 question)
  • 마음가짐
  • review 를 위한 reivew 를 지양한다.  

이렇게 보는게 아닌

이런 마음!

☆코드리뷰 하는 방법

  • 개요
  • 각자 작업을 하는 과정에서 자신이 작업하고 구현한 부분 외에는 이해하는데 시간이 오래 걸린다는 점을 착안하였습니다. 그래서 당장 pr을 하고 merger하는 과정에서 코드를 확인 할 때에 즉각적으로 이해하는 것이 어렵지만 추후에 다른 사람이 구현한 로직을 확인하고 그것을 통해서 작업을 해야하는 경우가 분명히 있습니다. 이때에 아무런 설명이 없다면 추후 코드를 구현하는 과정에서 더욱 오랜 시간이 걸릴 것으로 예상됩니다. 따라서 자신이 그날 작성한 코드중에서 설명이필요하다고 생각되거나 복잡한 부분에서 주석을 작성합니다.
  1.  자신이 구현한 코드 윗부분에 간단한 설명 쓰기, 아래는 작성 양식과 작성 예시

/** 작성자 : OOO

설명 : 메소드의 서비스 로직

부가설명 : 어려운 문법에 대한 부분 , 해당 메소드 추가설명 등등..

파라미터1 : 파라미터1은 무슨일을 한다.

변수1 : 변수1은 무슨일을 한다..

*/

2. Pull Request 하는 과정에서 reviewer를 설정한다. 

recent 에서 최근 reviewer 로 설정한 사람을 볼 수 있고, 여러명 설정하는 것도 가능하다.

3. Pull request 된 내용 (commit 된 부분 or update 된 부분) 을 확인한다.

보는 것처럼 빨간색은 기존의 코드이고 초록색은 추가된 코드이다. 둘을 비교하면 좋은데… 생각보다 가독성이 떨어지므로 위에서 얘기했던 1번을 최대한 참고하여 코드리뷰를 진행한다.

여기서 코드리뷰란?→ 코드끼리 conflict(충돌) 확인 , 문법적( ex ) js.es6 , java.stream) 으로 모르는 부분 질문 , 로직적으로 이해가 안되는 부분 질문 (자신이 맡은 부분이 아니므로 로직을 완전하게 이해하는것은 단시간에 하기는 어려움! 그래도 궁금하다면 질문할것)

 

4. comment 

이제 같이 코드를 보면서 서로 리뷰를 해주면 좋지만 상황이 안될 수도 있으므로  comment 를 적극적으로 활용한다. 

comment 는 PR 전체에 남기는 방법도 있고

이런 식으로 코드에 직접 남기는 방법도 있다. 

 

5. reviewer 들의 확인을 받는다. 

 

이후 권한을 가진 사람이 최종 merge 를 진행하면 된다.

 

 

반응형

'IT study > Collaborate' 카테고리의 다른 글

'Green'의 개발 문화 알아보기 - 코드 리뷰  (0) 2022.08.11