1차 코드리뷰 진행 방법
그동안 코드리뷰를 어떻게 진행했는지 이야기해볼게요!
먼저 저희 팀은 코드리뷰 경험이 전혀 없는 팀
이에요.
그리고 저는... 팀장이 아니구요.
그러디보니 코드리뷰를 어떻게 진행하면 좋을지 고민도 되고 조심스러워지더라고요.
하지만 에잇! 일단 기본적인 것부터 시작하자!
라는 마음으로 코드리뷰를 진행했습니다.
가장 먼저 한 일은 팀원들에게 코드리뷰를 어떻게 진행할 것인지 알려주기!
저희 팀은 GitLab
을 이용해 소스코드를 관리하고 있어요.
당연히 Push한 소스코드는 모든 팀원들이 볼 수 있죠!
그래서 각자 시간을 조금씩 내서 다른 사람이 소스코드를 어떻게 작성했는지 보라고 제안
했어요.
물론 궁금한 점이나 소스코드를 더 효율적으로 만드는 방법이 있으면 댓글도 달아보라고 했죠!
그리고 두 번째!
엄청 간단하게 규칙을 만들어 소스코드에 적용하기!
처음부터 제약을 많이 주면 부담스러울테니 아주 기본적인 규칙만 만들었어요.
프론트엔드
값을 변경하지 않는다면 let이 아닌 const를 사용하기
func() { // let myName = 'John'; const myName = 'John'; return myName; } func2() { // let names = ['John', 'Tom']; const names = ['John', 'Tom']; return names; }
구체적인 데이터타입을 명시해주고, 가급적 any를 사용하지 않기
func() { const myName: string = 'John'; return myName; } func2() { const names: string[] = ['John', 'Tom']; return names; }
if문 안에서 실행되는 문장이 짧을 경우 중괄호를 굳이 사용하지 말기
func(age: number) { // if(age < 19) { // return '미성년자입니다.'; // } else { // return '성인입니다.'; // } if(age < 19) return '미성년자입니다.'; else return '성인입니다.'; }
백엔드
if문 안에서 실행되는 문장이 짧을 경우 중괄호를 굳이 사용하지 말기
소스코드, 쿼리 작성 시 들여쓰기는 탭(Tab)을 사용하기
// 변경 전 public void getName() { // 스페이스바를 사용하여 들여쓰기를 하거나 어딘가에서 복사+붙여넣기를 하면 // 들여쓰기가 제멋대로 작성되기 때문에 가독성이 떨어집니다. String name = "John"; int age = 10; String gender = "M"; return name; } // 변경 후 public void getName() { String name = "John"; int age = 10; String gender = "M"; return name; }
-- 변경 전 SELECT * FROM MY_TABLE WHERE 1=1 AND LAST_NAME = '김' and CREATE_DATE = '20241007'; -- 변경 후 SELECT * FROM MY_TABLE WHERE 1=1 AND LAST_NAME = '김' and CREATE_DATE = '20241007';
쿼리의 WHERE 절에서 불필요하게
1=1
사용하지 않기쿼리에서 키워드는 대문자로 사용하기
SELECT * FROM MY_TABLE WHERE LAST_NAME = '김' AND CREATE_DATE = '20241007';
공통
- 주석은 자세히 작성하기
- 더 좋은 알고리즘이 있으면 리뷰 작성하기
이 정도의 규칙은 모두가 지킬 수 있다고 생각해요.
당연히 저희 팀원들도 규칙을 생각해서 코드를 작성하고 있답니다!
코드리뷰를 하며 느낀 문제점
다행히 팀원들이 코드리뷰를 긍정적으로 받아들이고 있어요!
하지만 매주 코드리뷰를 할 때마다 몇 가지 문제점을 느끼고 있죠...
첫 번째는 리뷰어
가 저 뿐이라는 거에요.
그 말은 제 주관적인 견해에 따라
코드리뷰가 진행되고 있다는 의미죠!
아직도 이 문제를 해결하기 위해 노력 중이지만 일단 두 가지 사항을 개선했어요.
- 개선 1 : 내 상사인 팀장을 코드리뷰에 합류시키기!
- 개선 2 : 바로 아래 직급의 직원도 리뷰어 활동을 하도록 만들기!
- 개선 3 : 쿼리 작성 시 들여쓰기에 대해서는 제약 사항을 줄이기
당연히 저희 팀장님이 경험도 많으니 더 좋은 개선 방안을 제시해주겠죠~?
그리고 바로 아래 직급의 직원도 Push된 소스코드를 자주 들여다보기떄문에 개선사항 등을 작성해달라고 요청했어요!
마지막 개선사항은 SELECT
, FROM
, WHERE
, GROUP BY
, HAVING
, ORDER BY
에 대해서는 무조건 같은 레벨로 들여쓰기를 작성하되
WHERE
절은 각자 가장 편한 방식법으로 작성하도록 제약을 풀었어요.
```sql
-- WHERE 절의 AND는 각자 스타일대로 들여쓰기를 하는 대신 무조건 개행해서 작성하도록 했어요.
SELECT
NAME,
AGE,
BIRTH,
GENDER
FROM
USER
WHERE
GENDER = 'M'
AND AGE > 20
```
그럼에도 불구하고 발생하는 두 번째 문제!
직급 차이로 인해 리뷰를 작성하기 주저한다
는 점이에요.
아래 직급의 직원을 리뷰어
로 만들었지만... 제 소스코드에 리뷰를 작성하는 것도 조심스러워 하더라고요.
그 직원도 저도 직급에 상관없이
더 좋은 알고리즘을 제안해주면 받아들일 준비가 되어있기 때문에
편하게 리뷰를 작성해달라고 공표했답니다!
물론 지금도 말하고 있고요.
그 덕분에 제 소스코드에도 아주 가~끔 리뷰가 달려요^^
마지막... 가장 큰 문제인데요.
리뷰이
들은 자신이 Push한 소스코드에 리뷰가 달리면 그 때만 소스코드를 본다는 거에요.
다른 개발자들이 기능 개선을 위해 어떻게 작성했는지 봤으면 좋겠지만...
적어도 자신이 작성한 소스코드를 종종 되돌아봤으면 좋겠지만...
아직은 코드리뷰에 대해 어색하고 제대로 인지하면서 활동하는 단계까지는 안된 것 같아요.
지금도 이 부분을 어떻게 해결하면 좋을지 고민중이랍니다!
마무리
아직까지는 코드리뷰 활동에 수동적으로 참여하는 단계
라고 생각해요.
그래도 아예 참여하지 않는 것보단 발전 가능성은 있으니 지금 작성한 문제점들을 어떻게 해결할 수 있는지
많이 고민해봐야겠어요.
물론 진행을 하면서 다른 문제점도 생기겠죠!
하지만!
하나 하나 해결해 나아가다보면 언젠가는 서로의 코드를 검토해주며 능동적으로 코드리뷰 활동을 하는
문화가 생기지 않을까요!?
그 때까지 SI에서 '코드리뷰'하기
일지를 계속 작성해보도록 할게요!
'일상 로그 > CodeReview' 카테고리의 다른 글
SI에서 '코드리뷰'하기 - 개요 (2) | 2024.09.13 |
---|