Git 기반 코드 리뷰 도구 Flirt, 네이티브 백엔드 개발 진행 상황 공개

by DD
4개월 전
조회수 14

Flirt는 Git을 활용한 코드 리뷰 도구로, 네이티브 백엔드(Native Backend) 개발 상황을 공개함

GitHub, 메일링 리스트 등 다양한 백엔드 지원을 목표로, 커스텀 ref(Custom Ref)를 활용하여 리뷰 정보를 저장

Git-appraise의 git-notes 사용 대신 커스텀 ref(Custom Ref)를 사용하여 데이터 무결성(Data Integrity)을 확보

스레드 재배치(Thread Relocation) 기능을 통해 코드 변경에 따른 리뷰 댓글 위치 자동 추적을 구현

Git-notes 대신 Custom Ref를 선택한 이유

Flirt는 코드 리뷰 정보를 저장하기 위해 Git-notes 대신 커스텀 ref(Custom Ref)를 사용한다. 댓글에서는 Git-notes가 commit-rewriting 시 데이터 손실 위험이 있고, git-appraise의 구현 방식이 비효율적이라고 지적한다. 특히, git-notes는 commit hash가 변경될 때 자동으로 업데이트되지 않아 데이터 무결성(Data Integrity)을 보장하기 어렵다. 반면, 커스텀 ref는 commit을 직접 가리켜 데이터 손실 위험을 줄이고, Git의 object model을 활용하여 효율적인 데이터 관리를 가능하게 한다.

다양한 백엔드 지원을 위한 설계

Flirt는 GitHub, 메일링 리스트, Gerrit 등 다양한 백엔드(Backend)를 지원하기 위해 설계되었다. 각 백엔드(Backend)의 특징을 분석하여, 커밋 단위 코드 리뷰(Per-commit Code Review)를 장려하고, 댓글, 스레드, 평결(Verdict) 기능의 일관성을 유지하고자 한다. 특히, GitHub의 제한적인 기능(예: 스레드 기능 부재)을 극복하기 위해, 자유로운 형태의 댓글(Free-standing Comments)을 지원하고, commit message에 대한 댓글 기능을 구현할 예정이다.

스레드 재배치(Thread Relocation) 기능의 혁신

Flirt는 코드 변경에 따라 댓글 위치를 자동으로 추적하는 스레드 재배치(Thread Relocation) 기능을 개발 중이다. 이 기능은 코드 리뷰 시 댓글이 달린 코드의 위치가 변경되어도 댓글을 정확한 위치로 이동시켜 리뷰의 유효성을 유지한다. 댓글에서는 이 기능이 GitHub와 같은 기존 도구에서 제공하지 않는 혁신적인 기능이라고 평가하며, 네이티브 백엔드(Native Backend)에서만 지원될 것이라고 언급한다. 스레드 ID(Thread ID)를 활용하여 댓글 위치를 추적하고, 코드 변경 후에도 리뷰의 맥락을 유지하는 것이 핵심이다.

네이티브 백엔드(Native Backend)의 기술적 도전

Flirt의 네이티브 백엔드(Native Backend)는 현재 개발 중이며, 댓글 스레드 처리와 같은 핵심 기능 구현에 어려움을 겪고 있다. 댓글에서는 GitHub 및 메일링 리스트 백엔드(Backend) 지원을 위한 작업이 예상보다 더 많은 시간이 소요될 것으로 예상한다. 특히, 스레드 처리(Thread Handling)다양한 백엔드(Backend)의 평결(Verdict) 처리가 주요 기술적 도전 과제로 제시된다. 하지만, 커스텀 ref를 활용한 데이터 저장 방식은 코드 리뷰 정보의 효율적인 관리와 Git의 object model을 활용한 유연성을 제공한다.

Flirt: The Native Backend