매일 동료가 어제 커밋한 코드를 읽는 방법 ver.2022

1 minute read

아침에 출근하면 전날 동료가 커밋한 코드를 읽는 습관을 만들었다. 2011년부터 했으니 12년째 가지고 있는 습관이다. 처음에는 그런 습관을 만드는 것 자체가 중요하다고 생각해 편하게 읽을 수 있는 도구에 시간을 투자하지는 않았다. 출근하면 커밋 로그를 최신으로 업데이트하고 읽을 커밋에 커서를 놓고 하나씩 올려가며 읽는 식이었다.

emacs를 애정하면서 도구에 대한 태도가 많이 바뀌었다. 도구에 대한 투자를 더 많이 하게 됐다. 실력자들이 만든 훌륭한 패키지를 사용해보고 그걸 활용한다. 그리고 내 요구에 맞는 패키지가 없으면 직접 도구를 만들어 능률적으로 일을 처리한다. 방대한 라이브러리를 사용해서 필요한 함수를 만들어서 등록한다. M-x 키를 누르고 내가 만들어서 등록한 함수를 호출한다. UI를 따로 신경 써 본 적이 없다. 촌스러워 보이는 텍스트 기반 인터페이스가 이럴 때 도움이 된다. 사용할 때는 수려한 인터페이스에 비해 불편하고 적응하는 시간이 필요하지만 만들 때는 조금만 신경 써도 그럴듯한 촌스러운 인터페이스를 만들어준다. 이거면 충분하다.

M-x insert-gitlab-todo-codereview 명령을 입력한다. 내가 읽어야 할 코드를 org mode로 작성한 문서의 TODO 리스트로 추가하는 함수다. 명령을 입력하면 리스트에서 프로젝트를 선택한다. 당시 코드를 읽어야 하는 프로젝트가 두 개였다. 그래서 프로젝트를 선택하는 과정을 넣었다. 그다음엔 시작 날짜와 종료 날짜를 물어본다. 입력하면 지정한 날짜 사이에 머지된 MR(merge request 혹은 pull request)을 TODO 리스트 항목으로 추가한다. 커밋 단위로 코드를 읽기 때문에 여기서 끝내지 않고 MR에 포함된 커밋을 하위 heading으로 추가한다. 코드 변경 사항을 읽다가 커밋 메시지를 다시 확인하는 경우가 많아서 커밋 메시지를 여기에 추가했다. 잘 정리된 gitlab API를 사용해서 쉽게 구현했다.

전날에 리뷰를 받고 머지한 코드를 다음날에 읽는 거라 가볍게 읽는다. 커밋 메시지와 관련된 이슈를 보며 이렇게 구현하지 않았을까? 가볍게 상상해보고 읽는다.

참고