1. 첫 코드 리뷰는 재앙이었다
입사한 지 얼마 안 된 시절, 처음으로 코드 리뷰를 받았습니다. 작성한 코드는 30줄 남짓이었는데, 리뷰 코멘트는 20개가 넘게 달렸습니다. 그중 상당수는 스타일 지적이었고, 본질적인 문제는 세 개쯤이었습니다. 그날 이후 저는 리뷰 요청 자체를 꺼리게 되었습니다. 하루 종일 고민해서 만든 코드가 부정당하는 느낌이었기 때문입니다. 지금 돌아보면 그 리뷰는 틀린 것이 없었습니다. 다만 전달 방식과 순서가 아쉬웠을 뿐입니다. 코드 리뷰는 도구가 아니라 사람과 사람 사이의 소통이라는 것을 그때부터 깨닫기 시작했습니다.
2. 리뷰의 목적은 '틀린 것 찾기'가 아니다
팀에 합류한 시니어 개발자 한 분이 코드 리뷰에 대한 생각을 바꿔주었습니다. 그분은 리뷰를 코드를 평가하는 자리가 아니라 함께 배우는 자리라고 정의했습니다. 리뷰에서 가장 중요한 것은 버그를 미리 발견하는 것도, 코드 품질을 점수로 매기는 것도 아닙니다. 작성자가 다음에 더 나은 선택을 하도록 돕는 것입니다. 그 관점을 듣고 나서 리뷰가 가볍게 느껴졌습니다. 실수를 지적받아도 그것이 개인에 대한 평가가 아니라 코드에 대한 논의라는 사실이 명확해졌습니다. 이후 리뷰 문화는 크게 개선되었습니다.
3. 리뷰 코멘트에도 온도가 있다
좋은 리뷰와 나쁜 리뷰의 차이는 내용보다 표현에서 갈렸습니다. "이거 왜 이렇게 했죠?"라는 코멘트와 "이 부분이 잘 이해되지 않는데, 어떤 의도인지 설명해주실 수 있나요?"라는 코멘트는 전달하는 느낌이 완전히 달랐습니다. 전자는 질문인 듯 보이지만 사실상 비판입니다. 후자는 진짜 궁금함에서 출발합니다. 리뷰를 작성할 때는 비난처럼 들릴 수 있는 표현을 피하고, 구체적인 상황과 함께 의견을 적는 습관을 들였습니다. 같은 지적도 표현을 바꾸면 건설적인 대화가 됩니다.
4. PR 크기가 리뷰 품질을 결정한다
리뷰가 길어지면 집중력이 떨어진다는 것은 경험으로 확인했습니다. 한 번에 500줄이 넘는 PR은 리뷰어가 표면만 훑고 넘어가기 십상입니다. 반대로 100줄 안팎의 PR은 꼼꼼하게 검토되고, 더 좋은 질문이 나왔습니다. 팀에서는 PR을 가능하면 하루 작업량 이하로 나누기로 규칙을 정했습니다. 기능 하나를 쪼개서 리뷰받는 일이 번거로울 수 있지만, 실제로는 더 빠르게 머지되고 사고도 줄었습니다. 작은 단위의 리뷰가 반복되면서 리뷰 자체가 부담스럽지 않은 일상이 되었습니다.
5. 작은 리뷰 문화가 팀 전체를 바꿨다
리뷰 문화가 자리 잡으면서 코드베이스에 대한 공유 지식이 늘어났습니다. 각자 자신의 모듈만 알고 있던 팀에서, 서로의 코드를 읽는 팀으로 바뀌었습니다. 급하게 배포해야 할 때도 리뷰를 거친 코드에 대한 신뢰가 생겼습니다. 무엇보다 신규 개발자의 적응 속도가 빨라졌습니다. 리뷰 코멘트가 곧 팀의 코딩 관례 문서 역할을 했기 때문입니다. 문서로 정리되지 않은 규칙도 리뷰를 통해 자연스럽게 전수되었습니다.
6. 리뷰를 시작하는 개발자에게
코드 리뷰를 도입하려는 분들께 드리고 싶은 조언은, 처음부터 완성도를 높이려 하지 말라는 것입니다. 작은 프로젝트부터 리뷰를 시작하고, 리뷰어는 세 명을 넘기지 않는 것이 좋았습니다. 리뷰 규칙도 최소한으로 유지하는 편이 실용적입니다. 핵심만 남기면 논쟁이 줄고, 구성원들이 규칙을 지키기 쉬워집니다. 리뷰는 개발 속도를 늦추는 도구가 아니라, 결국 속도를 높이는 투자입니다. 그 투자가 팀의 코드와 사람을 모두 성장시킨다는 것을 저는 경험으로 배웠습니다.
7. 리뷰를 받는 입장에서 필요한 자세
리뷰 문화가 정착되기까지 저도 리뷰어가 되어 동료의 코드를 읽었습니다. 그리고 리뷰를 받는 입장에서도 배운 점이 있습니다. 코멘트를 받으면 먼저 숨을 고르고, 그렇게 코드를 만든 이유를 솔직하게 설명하는 습관을 들였습니다. 방어적인 답변보다 질문을 이해하려는 태도가 더 좋은 대화로 이어졌습니다. 리뷰 코멘트는 코드에 대한 것이지 저라는 사람에 대한 평가가 아니라는 구분이 가능해지자, 피드백이 성장의 기회로 바뀌었습니다. 이 구분을 이해한 뒤부터 리뷰가 두렵지 않았고, 오히려 다른 시각으로 내 코드를 봐준다는 사실에 감사함을 느꼈습니다. 결국 코드 리뷰는 기술을 점검하는 절차이자, 함께 일하는 방식을 만들어가는 과정입니다.