작업 시점에 검사 연결
코드 검사는 수동으로 실행할 수도 있지만 잊지 않고 반복하려면 실행 시점을 정해야 한다. Husky는 Git 훅을 통해 커밋 메시지 검사나 테스트 같은 명령을 연결한다. 검사 결과의 기준은 실행한 도구가 정하며 Husky가 코드의 품질을 직접 판정하는 것은 아니다.
Git의 훅 구조 활용
Git의 core.hooksPath 기능을 사용하고 클라이언트 측 훅을 지원한다. 고급 동작은 POSIX 셸 스크립트로 구성할 수 있으며 브랜치에 따라 다른 훅 동작을 적용하는 기능도 제공한다. 저장소의 Git 작업과 연결된 로컬 실행 구조라는 점이 CI의 원격 검사와 다르다.
여러 개발 환경에 적용
macOS와 Linux, Windows를 지원하며 Git 그래픽 도구와 중첩 프로젝트, 모노레포 환경도 고려한다. npm의 prepare 스크립트 흐름에 맞춰 사용할 수 있다. 실제 훅에서 필요한 명령을 찾을 수 있는지와 실행 환경이 맞는지는 프로젝트 설정과 함께 확인해야 한다.
관련 문서
Lefthook / Commitlint / Commitizen / ShellCheck / Actionlint