logo hsb.horse
← 블로그 목록으로 돌아가기

블로그

lefthook 도입 절차: pre-commit과 pre-push에서 Biome 자동 실행하기

lefthook으로 커밋 시점과 푸시 시점에 Biome 포맷팅과 린트를 자동 실행하는 도입 절차를 정리했습니다. ADR 작성부터 설정, 설치, 동작 확인까지 한 번에 따라갈 수 있습니다.

게시일: 수정일:

커밋 전에 포맷팅을 놓치고, 푸시 직전에 린트에서 멈춘다. 이 흐름이 반복되면 리뷰 전에 시간을 계속 잃는다.

Git Hook으로 정렬과 정적 검사를 자동화해 수작업 누락을 줄인다. 이번 구성은 lefthook으로 커밋 시점과 푸시 시점에 Biome을 실행한다.

목적

커밋 시점과 푸시 시점에 Biome 포맷팅과 린트를 자동 실행한다.

전제 조건

  • bun 을 사용할 수 있어야 한다
  • 저장소 루트에서 작업해야 한다

도입 절차

  1. ADR(일본어)을 작성해 방침을 명문화한다
  2. 절차 메모를 ailog/ 에 작성한다
  3. lefthook 을 개발 의존성으로 추가한다
  4. lefthook.yml 을 만들고 pre-commitpre-push 에 포맷/린트를 설정한다
  5. package.jsonprepare 스크립트(lefthook install)를 추가한다
  6. bun run prepare 로 Git Hook을 설치한다
  7. lefthook run pre-commit / lefthook run pre-push 로 동작을 확인한다
  8. 문제가 있으면 설정을 수정한다
  9. 도입이 끝나면 ailog/ 에 임시 블로그 글을 작성한다
  10. ADR을 다른 언어(en / de / fr / ko)로 번역한다

동작 확인 체크리스트

  • lefthook.yml 이 존재하고 pre-commit / pre-push 가 정의되어 있다
  • bun run prepare 가 성공한다
  • lefthook run pre-commit 이 성공한다
  • lefthook run pre-push 가 성공한다

실행 메모

pre-commit 은 staged 파일을 대상으로 biome format --write {staged_files}biome check --write {staged_files} 를 실행한다.

pre-push 도 staged 파일을 대상으로 biome format --write {staged_files}biome check --write {staged_files} 를 실행한다.

Git Hook 설정을 저장소에 두면 환경이 달라도 운영을 맞추기 쉽다. 리뷰 전에 불필요한 차이를 줄이고 싶다면, 먼저 여기부터 고정하는 편이 빠르다.