Graphite 사용 기록
최근 변경일: 2025. 09. 15.
최초 작성일: 2025. 04. 07.
개요
Graphite 사용 경험을 정리한다. Graphite는 Stacked diffs(Stacked PRs) 방식으로 개발 작업을 할 때, PR 관리 및 코드 리뷰 편의성 증진에 도움을 주는 서비스다.
우리팀 코드 리뷰에 도움이 될까?
2022년 9월, 함께 일하는 팀원들과 사용을 시작했다.
배경
- 인프콘 2022, 코드 리뷰의 또 다른 접근 방법: Pull Requests vs. Stacked Changes 영상을 통해 Graphite를 알게 되었다.
- 마침 팀 내에서 코드 리뷰 문화 개선하고자 하는 활동이 있었는데, 우리의 문제 해결에 도움이 되는 부분이 있는 도구라고 생각되어 팀에 소개했고 논의 끝에 실험적으로 사용해 보기로 했다.
Graphite 사용에 기대한 점
팀의 코드 리뷰 문화 개선 논의를 통해 나온 여러 의견 중에는 PR을 지금보다 더 잘게 나누는 것이 중요하다는 의견도 있었다.
PR을 잘게 쪼개서 작업할수록 PR 간의 의존성이 생기기 마련이고 의존성이 있는 PR들끼리 쌓게(stack) 된다. PR을 쌓는 것은 쉽지만, 리뷰하거나 리뷰 완료 후 머지할 때는 번거로움이 발생한다. Graphite는 이 번거로움을 해결하는 데 큰 도움이 될 것이라 기대했다.
도입 과정
- 개념 학습: 공식 문서에 Stacked PRs 워크플로우에 필요한 개념들이 잘 정리되어 있었고, 모든 팀원들이 도구 학습과 병행하여 두 세번 워크플로우를 경험해보고 적응했다.
- 도구 학습: Graphite를 사용하기 위해 Graphite CLI와 Graphite의 리뷰 UI에 익숙해져야 했다. 신입부터 8~9년차의 개발자까지 골고루 분포되어 있었는데, 모두 하루 정도면 기본적인 사용이 가능해졌다.
결과
- 팀원들 모두 만족했다.
- 이전보다 PR의 변경 크기가 평균적으로 작게 유지되었고, PR 생성 후 리뷰가 완료되기까지의 평균 시간도 대폭 줄었다. (Graphite는 코드 리뷰와 관련된 각종 통계 지표를 볼 수 있는 대시보드도 제공하고 있어 수치 변화를 쉽게 확인할 수 있었다.)
- 부수적이지만 줄어든 PR 크기로 인한 리뷰 부담 감소는 팀원들 간의 맥락 공유를 가속하고, 맥락 공유의 가속은 코드 리뷰 부담을 계속해서 더 줄이기도 하고 공통 모듈 개발을 촉진하기도 하는 효과로 이어졌다.
느낀 점
- 처음 사용 시 학습 곡선이 조금 있다.
- PR의 크기를 작게 유지할수록 리뷰를 기다리는 PR이 쌓이기 마련이고, 연속된 PR들을 머지할 때의 귀찮음으로 PR을 잘게 쪼개는 것이 망설여지기도 하는데, Graphite가 단순 반복적인 귀찮은 일들을 알아서 잘 해준다. 덕분에 PR을 구성할 때 리뷰하기 좋게 구성하는 것에만 집중할 수 있다.
- 만약 앞으로 코드 리뷰는 활성화되어 있는데 이런 도구 없이 개발하게 되는 환경에 놓인다면 아주 아쉽고 계속 생각날 것 같다.
혼자서도 사용 (2025년 4월)
배경
- 이전 직장 퇴사 후 거의 1년 만에 다시 사용하게 되었다. CodeRabbit의 코드 리뷰 서비스를 이용하기 시작한 이후로 코드 리뷰가 완료될 때까지 작업 흐름이 아주 살짝 끊기는 경우가 종종 생기면서 다시 사용을 시작했다.
느낀 점
- 여기저기 AI 없는 제품이 없는 시대답게 PR 생성 시 본문 내용을 작성해 주는 ‘Write for me’라는 기능을 제공하고 있는데, 1년 전보다 품질이 더 만족스럽다. 정말 정리를 잘 해준다.
- 별개로 Graphite도 Diamond라는 코드 리뷰 서비스를 내놓았다. 개인 코드 저장소를 대상으로는 서비스를 제공하지 않아 사용은 못해보고 있다.