logo hsb.horse

Architecture Decision Record

lefthook 기반 Git Hook 자동화

커밋 및 푸시 시점에 Biome 포맷팅과 린트를 자동 실행하기 위해 lefthook을 도입한다.

채택됨 #tooling #quality #git-hook

lefthook 기반 Git Hook 자동화

결정

  • Git Hook 관리를 위해 lefthook을 도입한다.
  • pre-commit에서 스테이지된 파일에 대해 biome format --writebiome check --write를 순차 실행한다.
  • pre-push에서도 스테이지된 파일에 대해 biome format --writebiome check --write를 순차 실행한다.
  • Hook 정의는 저장소 루트의 lefthook.yml에서 중앙 관리한다.

배경

로컬에서 포맷팅/린트 실행이 누락되면 리뷰에 본질적이지 않은 diff와 코멘트가 늘어난다. 개발자별 Hook 설정 편차도 있어, 버전 관리 가능하고 재현 가능한 방식이 필요했다.

대안

  • .git/hooks에 네이티브 Git Hook을 수동 설정: 재현성이 낮고 공유가 어렵다.
  • Husky: 검증된 선택지지만, 이번에는 더 가볍고 단순한 설정의 lefthook을 우선했다.
  • CI에서만 검증: 피드백이 느리고 로컬 조기 검출이 어렵다.

영향

  • 커밋 전/푸시 전에 품질 검사가 자동 실행된다.
  • 포맷팅 문제를 조기에 발견하여 스타일 편차를 줄인다.
  • 실패 시 커밋/푸시가 차단되며, 수정 후 재실행해야 한다.