본문 바로가기

[🔄] husky가 무엇일까

🐶️ husky가 뭔데?

husky 는 Git Hooks 를 보다 쉽게 적용할 수 있는 npm 모듈이라고 한다. Git Hooks은 Git 과 관련한 어떤 이벤트가 발생했을 때 특정 스크립트를 실행할 수 있도록 하는 기능이라고 한다. 크게 클라이언트 훅 과 서버 훅 으로 나뉘는데 클라이언트 훅 은 커밋, Merge 가 발생하거나 push 가 발생하기 전 클라이언트에서 실행하는 훅이다. 반면 서버 훅 은 Git repository 로 push 가 발생했을 때 서버에서 실행하는 훅이라고 한다.

Git Hooks 에 대해 자세히 알지 못하더라도 commit, push 정책을 관리하고 공유할 수 있다고 한다.

husky 설치

$ npm install --save-dev husky

.huskyrc

{
    "hooks": {
        "pre-commit": "echo 'Hello Gabia, woof!'"
    }
}

commit을 실행해보면 출력 결과를 확인해볼 수 있다.

이 방법을 통해 사용자는 프로젝트별로 commit, push 등 정책을 관리하고 공유할 수 있다고 한다.

또한 작업자가 의존 모듈을 설치하는 것만으로 husky 가 적용된다. 더 이상 설치 스크립트를 실행하지 않거나 옵션을 빠뜨려서 Git Hooks 를 적용하지 못하는 상황은 발생하지 않는다.

왜 이걸 쓰는걸까

다음의 이유들은 우리가 협업을 하고 있다면 고통을 줄 수 있다. 가령

  • 코딩 스타일 안 따르기
  • 테스트 코드 작성 안하기
  • 테스트 실패하기
  • 코드 커버리지 낮추기
  • master 에 직접 밀어넣기
  • 그 밖에 기상천외한 일들...

이러한 이유로 우리는 지켜지지 않는 것들에 대하여 고통받고 힘들어하며 실수에 빠질 수 있다. 이럴때 저런 점들을 강제할 수 있는 무언가가 있다면 어떻게 될 것인가? 그렇다면 우리가 실수로부터 조금더 자유로워질 수도 있을 것이고 고통받는 점도 덜 할 수 있을 것이다.

다양한 방법이 있지만, 만일 팀이 Git 을 사용하고 있다면 Git Hooks 를 활용하여 쉽고 간단하게 정책을 강제할 수 있기에 우리는 이 방법으로 Git Hooks를 이용하고 husky를 이용하는 것이다.

 


참조 : https://github.com/gabia/git-hooks-with-husky

 

GitHub - gabia/git-hooks-with-husky: Git Hook with Husky

Git Hook with Husky. Contribute to gabia/git-hooks-with-husky development by creating an account on GitHub.

github.com

 

'📖 TIL > Tool' 카테고리의 다른 글

[Docker] 도커란 무엇인가  (0) 2022.05.16
[🧹] ESLint와 Prettier에 대해 알아보자  (0) 2022.02.20
[🔄️] Git과 GitHub  (0) 2022.02.13