정보기술 ·
TigerBeetle, 혁신적 코드 리뷰 도구 'git-review' 개발 중단 발표
기존 GitHub 한계 극복 시도했지만 기술적 복잡성으로 보류 결정
첨단 데이터베이스 기업 TigerBeetle이 독자적으로 개발해온 코드 리뷰 도구 'git-review'의 개발을 중단한다고 최근 발표했다. 이 도구는 기존 GitHub의 코드 리뷰 시스템이 가진 근본적 한계를 해결하려는 시도였으나, 예상보다 높은 기술적 복잡성으로 인해 보류하기로 결정했다.
GitHub 코드 리뷰의 구조적 문제점 지적
TigerBeetle 개발팀이 git-review 개발에 나선 배경에는 현재 널리 사용되는 GitHub 코드 리뷰 시스템의 두 가지 핵심 문제가 있었다. 첫째는 리뷰 상태가 저장소 자체가 아닌 외부에 저장된다는 점이고, 둘째는 원격 웹 인터페이스를 통해서만 리뷰를 진행할 수 있다는 한계였다.
개발팀은 "코드를 작성할 때는 GitHub의 웹 에디터를 사용하지 않고 로컬에서 자신만의 편집기를 사용하는데, 코드 리뷰만큼은 여전히 느린 웹 인터페이스에 의존해야 한다"고 문제를 제기했다. 실제로 많은 개발자들이 코드 리뷰 시 브라우저를 열고 관련 라인을 찾아 피드백을 입력하는 과정에서 HTTP 왕복 시간으로 인한 지연을 경험하고 있다.
git-review의 핵심 아이디어는 코드 리뷰를 별도의 커밋으로 처리하는 것이었다. 이 시스템에서는 PR 브랜치 위에 리뷰 전용 커밋을 추가하고, 해당 커밋에 특정 마커가 포함된 코드 주석을 삽입하는 방식으로 작동한다.
예를 들어 "// CR(matklad): 이 검사가 정확하지 않은 것 같습니다. 여기서는 header.view 대신 replica.view를 비교해야 하지 않을까요?"와 같이 코드 내에 직접 리뷰 코멘트를 남길 수 있도록 설계됐다. 이를 통해 개발자들은 익숙한 로컬 편집기 환경에서 테스트 실행, 정의 찾기, 리팩토링 제안 등을 자유롭게 수행하며 리뷰할 수 있었다.
구현 과정에서 마주한 기술적 난관들
초기 기대와 달리 git-review는 여러 기술적 문제에 직면했다. 가장 큰 난점은 리뷰 대상 코드가 수정될 때 발생하는 충돌 문제였다. 리뷰어가 변경을 요청하고 작성자가 이를 깊은 커밋에 적용하거나 새 커밋을 추가할 경우, 리뷰 코멘트 자체와 병합 충돌이 발생하는 상황이 빈번하게 일어났다.
또한 git push --force-with-lease 명령어를 자주 사용해야 하는 워크플로우도 개발자들에게 추가적인 부담을 주었다. 개발팀은 "코드에서는 강력한 해시 체인 기반의 의도적 상태 전환을 원하지만, 리뷰에서는 더 유연한 충돌 없는 병합 규칙이 필요한 임피던스 불일치가 존재했다"고 설명했다.
TigerBeetle은 개발 중단 결정과 함께 향후 전망도 제시했다. 현재 Git 상위 프로젝트에서 Gerrit 스타일의 Change-ID 도입을 검토하고 있어, 이것이 실현되면 커밋별 차이 리뷰에 대한 일급 지원이 가능해질 수 있다고 전했다.
개발팀은 "언젠가 누군가가 이 문제를 제대로 해결해주기를 희망한다"며, 유사한 문제의식을 가진 개발자들을 위해 Fossil SCM, Gerrit의 NoteDb 백엔드, git-bug, git-appraise 등 관련 프로젝트들을 참고할 것을 권했다. 특히 Jane Street의 코드 리뷰 시스템을 "더 나은 세상이 가능하다는 증거"로 언급하며, 이미 일부에서는 혁신적인 해결책이 존재한다고 강조했다.
한국정보기술신문 정보기술분과 유상헌 기자 news@kitpa.org