현재 직장으로 이직하기 전까지만 해도 코드 리뷰를 어떤 프로세스로 진행하는지 많이 궁금했습니다.
개인적으로 Git을 써보긴 했으나, 이건 혼자만의 개발을 위해서만 사용하고 팀 단위로는 사용해 본 적이 없습니다. 팀 단위 개발 시에는 항상 SVN만 사용을 했었습니다.
현재 회사에서는 소스 코드를 Git으로 관리함으로서 어떻게 코드 리뷰 프로세스가 진행되고 검토 후 반영이 어떻게 되는지 이해를 할 수 있었습니다.
저희 회사는 메인 레파지토리가 존재하고 개발자가 각자의 레파지토리를 가지고 있습니다. 그러므로 메인 레파지토리에서 개발자 레파지토리로 코드를 포크한 후 개발을 진행합니다. 그 후 PR을 신청하면 다른 개발자들이 코드를 리뷰해 줍니다. 저희는 최소 2명의 개발자로부터 승인을 받아야 메인 레파지토리로 Merge를 할 수 있는 정책을 취하고 있습니다.
맨 처음 회사에 입사했을 때 이 코드 리뷰가 워낙 귀찮았습니다. 내가 짠 코드가 틀렸다 잘못되었다라는 코멘트부터 왜 이렇게 짰는지 설명을 해달라 등등. 처음 시작했을 때 최대 50개가 넘는 코멘트를 받은 적이 있고, 일일이 가이드에 따라 코드를 고쳐야 하는 번거로움이 말이 아니었습니다. 게다가 모든 것을 영어로 커뮤니케이션해야 하니 더욱 힘들었지요.
하지만, 시간이 지날 수록 번거로움보다 개인적 역량이 많이 향상되는 것을 느낄 수 있습니다. 왜냐하면 회사가 취하고 있는 아키텍처 패턴 등을 적용 또는 잘 사용해 보지 않던 다양한 코드 패턴들을 적용해 볼 수 있는 기회를 접할 수 있기 때문입니다. 이로 인해 내가 잘못 이해하고 있던 패턴이라든지 아키텍처에 대한 재조명을 할 수 있는 기회가 될 수 있기 때문이지요.
지금의 회사를 다니기 전에 나도 개발 좀 한다고 생각했는데, 코드 분석 및 이해 그리고 코드 리뷰를 통해 내 자신이 아직 많이 모자른다는 거을 발견할 수 있는 기회도 되었고, 정말 뛰어난 개발자들이 많다는 것을 다시 한 번 느낄 수 있는 기회가 되었습니다. 이로 인해 더 공부해야 겠다는 열의를 다시 불태울 수 있는 자극제가 되기도 합니다.
상위 시니어 개발자 중 몇몇은 정말 개발에 대해 상상치도 못한 개발 역량과 코드를 다루는 방법을 가지고 있습니다. 그러므로 서비스되고 있는 시스템이 안정적으로 잘 돌아가고 있는 것이겠지요. 현재 회사에 입사한지 1년이 좀 넘었는데 정말 많은 것을 배운 것 같습니다. 코드가 워낙 방대하여 아직도 파악 못한 부분들이 많지만, 이는 시간이 해결해 주리라 믿고 있습니다.
요즘은 새로운 feature 개발 프로젝트에 투입되어 마이크로 서비스 아키텍처와 CQRS 패턴을 이용한 개발을 진행하고 있는데, 여기서 Domain Driven Design과 아키텍처와 CQRS에 대한 이해도가 높아지고 있습니다. 또 한 번의 역량 업그레이드 입니다.
저는 이 코드 리뷰를 통해 사람은 겸손해야 하고 나보다 뛰어난 사람들이 있음을 인정하며 배우고자하는 열의가 있어야 함을 다시 한 번 느낍니다.
'개발 이야기' 카테고리의 다른 글
Domain Driven Design을 위한 프로젝트 구조 (0) | 2018.06.20 |
---|---|
프론트 엔드 개발자의 미래 (0) | 2018.06.19 |
외국 회사는 휴가를 마음대로 쓸 수 있나요? (0) | 2018.06.16 |
Git (Bitbucket) 코드 리뷰 및 PR 설정 (0) | 2018.06.15 |
소프트웨어 개발자로 캐나다 이민 (10) | 2018.06.10 |
최근댓글