[SW정글 38일차] 코드 리뷰가 필요한가?

rg.log·2022년 10월 26일
0

SW 사관학교 JUNGLE

목록 보기
9/31
post-thumbnail

코드 리뷰

이제는 sw 개발에서 꼭 필요한 단계! 해도 되고 안해도 되고가 아니다.
sw 설계를 어떻게 할까가 아니라 code 변화에 관한 것이다.

왜 코드리뷰가 필요한가?

  • 한 달 후의 내가 이해할 수 있는 코드를 짜야한다.
  • 당신의 동료가 당신의 코드를 이해할 수 있어야한다.
  • 당신의 동료가 남긴 의견으로부터 tip & lesson 배운다.
  • 팀이 공통된 코딩 스타일 공유할 수 있다.
  • 결함을 줄일 수 있다.
  • 당신의 coding decision에 대한 개발 역사를 보관할 수 있다.
  • 새로 온 개발자는 committed logs와 의견으로부터 코드의 구조와 결정 사항을 이해할 수 있다.

but

  • 나의 소중한 시간을 이런 코드에 허비하다니 하는 생각이 들 수 있다.
  • 코드 리뷰를 위해 어느 정도 숙련된 개발자가 필요하다.

but의 but

  • 생각보다 남의 코드를 보면서 자기의 생각을 말로 바꾸며 많이 배우게 된다.
  • 대화를 하다보면 미처 생각 못한 부분을 캐치할 수 있다.
  • 코드 리뷰를 하다보면 매우 건강하고 확장가능한 코드가 된다. 왜? 왜 묻다보면 투명해지고 이해 가능한 코드가 되기에.

좋은 코드 리뷰는

이 것은 이러한 이유로 이렇게 바꾸는 것이 좋습니다. 왜인지 궁금하시면 reference link 달고, 이곳으로 가보십시오.

Naming Rule

  • 별다줄 하지 말고 이름을 잘 지으세요.
  • 함수는 한 번에 한 기능만 하고 이름에서 드러나야 한다.
    함수의 기능이 많으면 디버깅 하기 어렵고, test code 만들기 어렵다.

구글은

  • 언어 전문가와 프로젝트 오너가 코드 리뷰를 해준다
  • 적합한 reviwer를 추천해주고, 잘하는 reviwer 스케줄링 조정하는 추천 프로그램있다
  • 개발자님들 미래를 생각하고 지금 조금 귀찮은 거 참아주세요

왜 test가 중요할까?

다음 코드 짜기 바쁜데 test code를 짜야할까??

  • 디버깅은 보통 문제를 찾는데 시간이 오래 걸리는데, 테스팅은 새로 작성한 코드에서 결함을 검출할 수 있다.
  • 새로 떠오른 코드에 대해 테스트를 추가하면, 유지 보수의 부담을 줄일 수 있다.

참고. 코드리뷰 강의_류석영 교수님


오늘의 나는

팀원들과 구현한 rb-tree에 대해 새로운 테스트 케이스를 돌려보고 주석을 달아보면서 클린 코드에 대해 잠시 논의해 보았다. 일관성 있는 코드와 보기 좋은 네이밍 규칙에 대한 서로의 지식을 하나씩 나누다 보니 클린 코드에 대해 좀 더 적립이 되는 시간이었다. 내일은 함께 코드 구현을 하지 않은 전혀 다른 팀원에게 코드 리뷰를 받는 시간이다. 계속 같은 코드를 보다 보면 놓치는 무언가를 그를 통해 찾고 새로운 배움이 있지 않을까 기대해 본다.

코드 리뷰 강의를 듣다보니 어제 알고리즘 스터디가 오버랩됬다. 알고리즘 스터디 중 주어진 시간내에 문제를 풀 수 있었는데, 이전 주차에 동기와 코드 리뷰를 하면서 알게된 방법이 떠올랐기 때문이다. 당시 내가 구현에서 막혀서 못풀었던 문제를 푼 동기의 코드를 보고 와.. 하면서 깨달았던 것을 내가 사용하고 있는 모습이 신기했다. 이래서 코드 리뷰를 하는구나 싶다!

12시 땡 하면 집에 가던 신데렐라 팀원도 어제 새벽 4시 반까지의 디버깅의 여파로 함께 눈떠서 바로 점심 먹으러 갔다 ㅋㅋㅋ 이별 저녁으로 행복했던 한 주 마무리!

0개의 댓글