ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 내가 좋아하는 코드 리뷰
    Diary/2021 2021. 5. 23. 18:55

    작성한 코드를 서로 비슷한 수준으로 봐줄 리뷰어가 적어도 한 명 이상은 있어야 개발 업무 할 맛이 나는 것 같다. 물론 가장 이상적인 상황은 아무 리뷰 필요 없는 완벽한 코드(또는 Pull Request)겠지만, 간단한 오타 수정이 아닌 이상 그런 게 가능할지 모르겠다. 엣지 케이스까지 다 고려한 꼼꼼한 코드를 만들면 좋겠지만, 그러기에는 언제나 시간은 부족하고 만들어야 하는 것은 많다. 그러므로 나는 최대한 빨리 드래프트 상태의 Pull Request를 열어서 팀원들에게 공유하는 것을 선호한다. '남 보기에 부끄럽지 않은 코드'를 작성한다고 시간을 다 보내기보다는 개선이 많이 필요하지만 아이디어가 빛나는 PR이 결국엔 코드 베이스 발전에 도움이 되지 않을까? 글쓰기와 다르지 않다고 본다. 어차피 초고는 고쳐야 할 점이 많으니 그냥 최대한 빨리 핵심 내용만 포함시켜서 공개해 버리는 편이 좋다.

    요즘에는 사내 인프라 운영 툴에 사용할 React UI 컴포넌트 라이브러리를 만드는 업무를 하고 있는데, 컴포넌트 자체를 만드는 일도 재밌지만 이런저런 개발 환경 세팅하고 동료 개발자들에게 도움이 될 만한 NPM script를 만드는 재미에도 눈을 떴다. Node.js를 사용해 한번 컴포넌트 디렉터리 스캐폴딩 해 주는 스크립트를 만들어서 Draft PR을 올린 후, 팀원들에게 리뷰를 부탁했다. 참 웃긴 게 대학교 1학년 때는 "누가 CLI 쓴다고 콘솔에 Hello World 찍어보라는 거야..."라고 생각했는데, 어느샌가 이모지 까지 넣어서 자발적으로 만들고 있다 🤭 역시 이래서 안 좋은 소리는 함부로 하면 안 돼! 프롬프트로 질문 찍고 답을 받아야 해서 뭐로 만들면 좋을지 고민했는데, 이런저런 라이브러리도 많았지만 prompt-sync를 써서 간단하게 만들었다.

    PR 올린 후에 점심도 소화시킬 겸 잠시 산책을 갔는데 그 사이에 달린 레이첼의 리뷰가 정말 감동이었다. "이왕 만들어서 우리가 쓸 것이면 최대한 완벽하게 만들어보자"며 내가 미처 테스트하지 못했던 케이스까지 신경 써서 이런저런 개선점을 몇 가지 제안해주었다. 역시... 전직 글쓰기 선생님 다운 피드백이다. 내 기준 좋은 리뷰를 생각해 봤는데,

    1. 1순위: "좋다! 하지만 ~ 점 때문에 ~는 조금 더 생각해 보면 좋겠어."라면서 생각할 거리를 왕창 던져주는 리뷰
    2. 2순위: "여기는 좀 고쳐야 하지 않을까?" 칭찬은 빠졌지만 고쳐야 할 점을 말해주는 리뷰
    3. 3순위: "LGTM!" (진짜 좋아 보인다구?)
    4. 4순위: 무관심
    5. 5순위: 달을 가리키는 손가락을 지적하는 리뷰

    이 정도가 있는 것 같다. 나중에 더 생각나면 추가해야지!

    LGTM!

    제안해 준 개선점을 코드에 전부 반영했다. Terminalizer로 이쁘게 데모 GIF도 만들어서 이슈 본문에 넣었다. 물론 월요일에 또다시 피드백을 받고 고칠 점이 왕창 나올 수도 있지만, 이런 상황 자체가 감사하다. 이런 코드 작성자 - 리뷰어의 관계를 작가 - 편집자의 관계에 빗대어 상상하는 것도 재밌다. 프로그래밍도 글도 전부 혼자서 만들 수가 없다. "나는 혼자서도 잘하는데?"라고 생각한다면 살짝 위험한 상태가 아닐까 싶다. 더 외로워지기 전에 동료를 만들자! 동료를 만들 수 없다면 나는 돈 주고서라도 리뷰어를 구할 테다.

Designed by Tistory.