본문 바로가기
CI.CD/GIT

[GIT] Git 자동화 스크립트 (Hooks & Husky)

반응형

이번 포스팅에서는 [생산성 향상 & 팁] 파트의 세부 주제인 Git 자동화 스크립트 (Hooks & Husky)에 대하여 상세히 알아보겠습니다.

1. Git Hooks의 원리

Git Hooks는 데이터베이스의 트리거(Trigger)처럼, commit, push, merge 등의 특정한 Git 이벤트가 발생하기 직전(pre) 또는 직후(post)에 사용자가 정의한 쉘 스크립트가 자동으로 실행되도록 하는 훅(Hook) 매커니즘입니다. 이를 통해 빌드 에러가 나는 코드나 코드 컨벤션(Lint)을 지키지 않은 코드가 아예 커밋되지 못하도록 원천 차단할 수 있습니다.

2. 프론트엔드 환경에서의 Husky 도입

Git 내장 Hooks는 쉘 스크립트로 작성해야 하고 동료들에게 공유하기 까다롭다는 단점이 있습니다. JavaScript(Node.js) 생태계에서는 이러한 불편함을 해소하기 위해 Husky라는 라이브러리를 사실상의 표준으로 사용합니다.

# 프로젝트에 Husky 패키지 설치 및 초기화
$ npx husky-init && npm install

# 커밋을 시도하기 직전(pre-commit)에 항상 ESLint 검사를 수행하도록 설정
$ npx husky add .husky/pre-commit "npm run lint"

시너지 활용 방안: Husky와 함께 lint-staged라는 패키지를 결합하면, 전체 파일이 아닌 '이번 커밋을 위해 스테이징된 변경 파일들'에 대해서만 검사 및 포맷팅(Prettier)을 수행하게 되어 훨씬 빠르고 쾌적한 자동화 환경을 구축할 수 있습니다.


지금까지 Git 자동화 스크립트 (Hooks & Husky)의 개념과 구체적인 활용 방안에 대해 살펴보았습니다. 이어지는 다음 포스팅에서 관련 심화 주제를 지속적으로 다루어보겠습니다.

반응형