brunch

You can make anything
by writing

C.S.Lewis

by Vintage appMaker Dec 19. 2022

코드리뷰, 질문과 답변

개발자의 생각 #19


코드리뷰는 반드시 필요하다

코드리뷰는 


"개발자가만든 소스코드를 

다른 사람(개발자)이 리뷰(분석 또는 컨설팅)" 

해주는 것이다. 


코드리뷰를 최근의 유행으로 생각하는 사람들이 있다. 단도직입적으로 말해서 "아니다".  소프트웨어 산업이 발생한 시기부터 코드리뷰는 있어왔지만, 조직의 규모에 따라 운영하지 못한 경우가 많았을 뿐이다. 마이크로소프트에서는 개발자의 업무가 50%이상 코드리뷰를 하고 Google은 100% 코드리뷰를 한다고 한다. 

우리나라 역시 1990년대 후반부터 코드리뷰가 있었다.  주로 중대형 솔루션 제공업체(OS, 라이브러리, 엔진, 미들웨어 등등)에서 코드의 버그를 줄이고 생산성과 효율성을 고려해 진행되어 왔었다. 주된 내용은 "네이밍 룰"과 "솔루션이 강제하는 아키텍쳐를 벗어나지 않았는가?" 정도의 리뷰였다. 


그러다가 십수년 전부터 유행한 오픈소스 세상이 오면서 "코드리뷰"는 보편화되었고 서로가 서로의 코드를 리뷰하며 빠르게 성장하게 된 것이다. 




1. 코드리뷰          

코드리뷰는 개발자와 제품 모두에게 유익한 존재이다. 개발자 1인의 사고방식이 얼마만큼 "생산성"과 "효율성"을 가진 것인지 다른 개발자들로부터 리뷰를 받으며 오류를 잡아내고 코드를 최적화할 수 있기 때문이다. 물론 코드리뷰는 사람이 하는 것이므로 잘못된 문화(개개인의 인성문제)가 되어버린다면 '인민재판"이 되는 경우도 있다. 그런 경우라면 코드리뷰 시스템을 운영하지 않는 편이 회사를 위해 좋다. 


            조직에서 코드리뷰는 필수이다.           

제품의 무결성과 생산성을 유지해야 한다면 개발자가 만든 코드가 최종제품의 구조에 적합한지 꾸준히 채크해야 한다.  그리고 그런 방법은 회사에서 정한 법칙으로 하면 된다.  회사의 제품구조가 다르고 조직을 운영하는 방법이 다르기에 어떤 명확한 법칙을 찾기보다는 사내 조직에 맞는 리뷰시스템과 문화를 만들어야 한다. 


            조직이 없을 경우, 오픈장소에서 리뷰하는 방법           

조직이 없을 경우, 가장 좋은 방법은 github(개발자들의 오픈소스 커뮤니티 & 저장소)에 프로젝트를 오픈하고 Pull request 기능을 이용하여 리뷰를 받는 방법도 있다. 그러나 지인들과 오픈된 장소에서 피드백을 받기 싫다면 repository를 private로 해서 진행하면 된다. 



2. 질문과 답변

개발자 커뮤니티에서 가장 활발한 활동은 질문과 답변이다.  기술을 정의한 Tutorial도 많지만 그 보다는 질문활동이 많을 수 밖에 없는 것은 "기술의 양과 속도" 때문이다. 타 업종에 비해 빠르게 엄청난 양의 기술과 정보들이 쏟아지기에 전문가들에게도 질문과 답변은 일상일 수 밖에 없다. 그렇기에 개발자 문화에서 가장 중요시 여기는 것이 '질문하는 법", "답변하는 법"이다. 


답변자의 입장에서 지켜야할 것들  

    왜 그렇게 만들었는 지 물어보기 - 질문자의 의도를 모르고 내 생각을 말하면 안된다.   

    답을 이야기하지 말고 제안을 하기 - 프로그래밍에 답은 없다.  

    함부로 가르치려고 하지 말라. - 상대가 너님보다 뛰어난 사람일 경우도 많다.   

    case 1, case 2 식으로 설명하되 어떤 결과치를 얻을 수 있다는 것을 말해라  

    인간이 되라. - 예의를 모르면 배워야 한다. 몇개 안다고 남을 훈계하지 말아야 한다.   


프로그래밍도 글쓰기와 유사하다. 코딩은 단절된 상태에서 자기 생각에 몰입하게 된다. 그러다보니 커뮤니케이션 장애를 경험하게 된다. 그렇기에 객관적이지 못한 자기생각을 함부로 주장해서는 안된다. 


질문자 입장에서 지켜야 할 것들  

    핵심만 리스트로 요약해서 질문하기 - 길게 읽어줄 시간도 읽고 싶지도 않다.  길게쓰면 읽는 사람이 질문을 오해할 수 있음. 질문은 정확하고 짧게 리스트로 해야 한다.   

    구체적인 상황설명 - 질문을 재대로 하려면 답변자가 알아야 할 정보를 정리해주어야 한다. 대부분 레퍼런스를 링크처리 한다.   

    리뷰하기 편한 소스 보여주기 - 답변자가 보기 좋은 코드를 보여주어어야 한다. 코드가 길면 github과 링크하는 것도 좋다.   

    포스팅 지우지 말기 - 아주 가끔  발생함. 이럴 경우, 엄청난 비난을 받는다. 개발자 문화에서 질문답변은 일상이고 서로가 배울 수 있는 소중한 기록이다. 그래서 stackoverflow가 전세계 최강의 Tech 지식사이트로 불리는 것이다.  질문과 답변은 지식의 기록이다. 지워서는 안된다.   




"개발자는 아는 것을 안다고 말하지 않는다." 

상황은 언제나 변하기 때문이다. 

그렇기 개발자는 질문과 답변으로

자신의 기술을 꾸준히 키워나간다. 


이런 행위에서 감성 또는 감정을

따지는 경우는 없다. 

(그런 행위가 비매너다)


질문과 답변에 불편함을

느낀다면 개발자로써의 삶이

편하지는 않을 것이다. 



https://play.google.com/store/apps/details?id=com.psw.goodwords


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari