🔐 들어가며
안녕하세요! 이번 포스팅에서는 서로 다른 기술 스택을 가진 주니어 개발자 2명이 코드 리뷰를 도입한 경험에 대해 포스팅해보려고 합니다. 만약 글을 읽다가 "어...? 음...? 🤔" 하는 부분은 댓글로 지적해주시면 감사하겠습니다!
❔ 코드리뷰를 도입하게 된 이유
저희 회사는 코드리뷰 문화가 따로 없고, 각자가 짠 코드를 각자 확인하고 Merge Request를 올려 셀프 승인을 하는 방식으로 운영하고 있습니다. 코드리뷰를 하지 않았던 이유는 아래와 같았습니다.
- 리뷰하는 데 시간이 너무 오래 걸린다.
- 리뷰를 해줄 만큼 전문적인 지식을 가진 사람이 너무 적다.
- 코드 리뷰에 익숙한 사람이 없다.
하지만 저(B/E)와 제 동기(F/E)는 코드리뷰에 대한 갈망이 있었고, 서로의 언어에 대한 깊은 이해는 없었지만, 저희 둘끼리라도 코드 리뷰를 시작해보기로 합니다!
🐴 Merge Request
1. MR Template 만들기
천리길도 한걸음부터라고, MR Template을 만들기 위해 동기와 함께 이것저것 찾아보고 어떻게 만들면 회사의 스타일과 잘 맞출 수 있을지 의논하며 첫 번째 MR Template을 만들었습니다.
지금은 중복 내용을 없애고, 중요도가 높은 정보들을 상위로 올려둔 형태로 바뀌었습니다. 😉
2. 적용하기
이제 만들어진 MR Template을 적용해서 코드리뷰 요청을 할 수 있게 되었습니다.
로그를 찾아보기도 쉬워졌고, 변경을 한 이유에 대해서도 이해하기 쉬워졌습니다.
🧐 Review
1. 리뷰어
코드 리뷰 요청을 했으면 리뷰를 봐줄 사람이 필요했지만, 코드 리뷰어가 없었기 때문에 저희 둘은 서로가 서로의 리뷰어가 되기로 했습니다.
2. 리뷰 볼 때 주로 보는 것
저희 둘은 서로가 사용하는 언어에 대해 간단한 이해는 있었지만, 저는 JavaScript에 대한 이해가, 동기는 Java에 대한 이해가 조금씩 부족했기 때문에 구조적 설계나 언어만의 특징을 잘 살릴 수 있는 방법으로 제안을 하는 것은 어려웠습니다. 😭
그래서 저희가 리뷰를 볼 때 주로 한 것은
오타 고쳐주기
질문하기
제안하기
실수 고쳐주기
같이 어떻게 보면 사소하다고 생각할 수 있는 것들이였습니다. 이러한 이유 때문에 코드리뷰가 아닌, (얕은) 코드리뷰라는 이름을 붙였습니다.
3. (얕은) 코드리뷰의 장단점
저희가 진행한 코드리뷰를 회고하면서 나온 장단점들입니다.
3-1. 장점
- 서비스 전체의 로직에 대해 더 잘 알게 된다.
- 서로 실수를 잡아줄 수 있다.
- 커밋 메세지와 커밋의 범위에 신경 쓰게 된다.
- 이해하기 쉬운 설명을 쓰려고 노력하게 된다.
- 코드를 짤 때 최대한 이해하기 쉽게 짜게 된다.
- 제안하고 싶은 부분에 대해 확실한 정보를 전달하기 관련 문서들을 다시 한번 더 보게 된다.
- 내 코드를 다시 한번 더 돌아보게 된다.
3-2. 단점
- 리뷰를 보느라 순수 코딩하는 시간이 줄어든다.
- 서로의 언어에 대한 깊은 이해가 없기 때문에 리뷰의 범위가 한정적이다.
- 머지하기까지 걸리는 시간이 늘어난다.
가장 크게 달라진 것은 다른 사람이 내가 갓 짠 코드를 본다고 생각하니 다방면에서 신경을 많이 쓰게 되었다는 것입니다. 예전에는 별 생각없이 짰을 코드도 조금 더 직관적으로, 이해하기 쉽게 바꾸게 되었고, 코드뿐만 아니라 커밋 메세지와 커밋 범위에 대해서도 많은 신경을 쓰게 되었습니다.
🖐️ 결론
저희의 (얕은) 코드리뷰에 대한 평가는 둘 다 긍정적이었고, 코드리뷰를 이어가기로 했습니다! 다만, 코드 리뷰를 적용하게 되면 머지까지의 시간이 오래 걸리기 때문에, 정말 급한 hot hot hotfix 건인 경우에는 스스로 리뷰를 하고 머지하기로 했습니다.
아직까지도 부족하기 때문에 계속해서 어떤 식으로 리뷰를 하는게 더 좋을지 고민하고 있고, 좋은 방안이 있으면 채택하여 조금씩 개선해 나아가고 있는 상황입니다. 🥰
만약 저희와 같은 고민을 하고 계시는 분들이 있다면 얕은 코드리뷰라도 시작하면 굉장히 여러 방면으로 도움이 많이 되니 꼭 한 번 도입해보시는 것을 추천합니다! 👍
'Review' 카테고리의 다른 글
루비콘 멘토링 프로젝트 3기 회고 (5) | 2021.07.15 |
---|---|
첫 발표를 하면서 느낀점과 배운점들 (8) | 2021.06.21 |
나홀로 DDD WORKSHOP 4기 수료후기 (0) | 2020.04.27 |
2018.12.23 ~ 2019.07.10 멘토링 후기 (0) | 2020.03.02 |
SpringRunner 2기(Mastering Spring Web 101 Workshop 2nd) 후기 (0) | 2019.07.23 |