Git 훅 이해하기
Git 훅의 다양한 유형과 Git 워크플로에서 훅이 실행되는 시점을 살펴보세요.
Git 훅 이해하기은(는) CoddyKit의 무료 Git & GitHub Professional Workflow 강의입니다. 이것은 4개 중 1번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Git & GitHub Professional Workflow 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Git & GitHub Professional Workflow 강의에는 총 4개의 강의가 포함되어 있습니다.
Git 훅이란 무엇인가요
Git 훅을 살펴보겠습니다! Git 훅은 커밋, 푸시 또는 푸시된 커밋 수신과 같은 이벤트 전후에 Git이 자동으로 실행하는 강력하고 사용자 지정 가능한 스크립트입니다.
Git 작업 흐름에서 자동화된 확인 지점이나 작업이라고 생각해 보세요. 프로젝트 표준을 적용하고, 작업을 자동화하며, 다른 시스템과 연동하는 데 도움이 됩니다.
훅이 있는 위치
모든 Git 저장소에는 .git/hooks 디렉터리가 있습니다. 이 디렉터리에서 예제 훅 스크립트(대개 .sample로 끝남)를 찾을 수 있습니다.
훅을 활성화하려면 .sample 확장자를 제거하고 파일을 실행 가능하게 만들면 됩니다. 그러면 Git이 적절한 시점에 훅을 실행합니다.
- 위치:
.git/hooks/ - 파일: 셸 스크립트(Bash, Python, Ruby 등)
- 활성화: 이름 변경 및 실행 가능하도록 설정
클라이언트 측과 서버 측
Git 훅은 실행되는 위치에 따라 크게 두 가지 유형으로 나뉩니다.
- 클라이언트 측 훅: 로컬 컴퓨터에서 실행됩니다(예: 커밋이나 리베이스 전에). 개인 작업 흐름을 자동화하고 로컬 정책을 적용하는 데 사용합니다.
- 서버 측 훅: 원격 Git 서버에서 실행됩니다(예: 공유 저장소에 코드를 푸시할 때). 모든 사람에게 프로젝트 전체 정책을 적용합니다.
클라이언트 훅: pre-commit
pre-commit 훅은 가장 흔한 클라이언트 측 훅 중 하나입니다. Git이 공식적으로 커밋을 생성하기 *전*에 실행됩니다.
pre-commit 스크립트가 0이 아닌 상태 코드로 종료되면 Git은 커밋을 중단합니다. 다음과 같은 작업에 적합합니다.
- 코드 린트(스타일 오류 확인)
- 단위 테스트 실행
- 큰 파일이나 민감한 데이터 확인
클라이언트 훅: commit-msg
commit-msg 훅은 커밋 메시지를 입력한 *후* 커밋이 확정되기 *전*에 실행됩니다.
이 훅은 커밋 메시지가 특정 규칙이나 형식을 따르는지 확인할 때 유용합니다. 예를 들어 다음을 확인할 수 있습니다.
- 메시지가 티켓 ID로 시작하는지(예:
[JIRA-123]) - 메시지 길이가 제한 범위 내인지
- 특정 키워드가 포함되거나 제외되었는지
클라이언트 훅: post-commit
post-commit 훅은 커밋이 성공적으로 생성된 *직후*에 실행됩니다.
pre-commit이나 commit-msg와 달리 이 훅은 커밋 결과를 변경할 수 없습니다. 다음과 같은 알림이나 연동 목적으로 자주 사용합니다.
- 팀 구성원에게 알림 보내기
- 프로젝트 관리 도구 업데이트하기
- 지속적 통합(CI) 빌드 실행하기(다만 이는 서버 측 훅에서 더 일반적임)
서버 훅: 수신 전
서버 측 훅으로 넘어가면, pre-receive는 원격 저장소의 참조(브랜치나 태그 등)가 업데이트되기 전에 실행됩니다.
이 훅은 다음과 같은 중요한 저장소 정책을 강제하는 데 유용합니다.
main브랜치로 직접 푸시하지 못하도록 차단하기- 모든 커밋이 서명되었는지 확인하기
- 커밋 작성자의 신원 검증하기
이 훅이 0이 아닌 상태 코드로 종료되면 푸시 전체가 거부됩니다.
서버 훅: 수신 후
post-receive 훅은 푸시가 원격 저장소의 참조를 성공적으로 업데이트한 후에 실행됩니다.
post-commit과 마찬가지로 이 훅은 푸시를 거부할 수 없습니다. 일반적으로 다음과 같은 작업에 사용됩니다.
- CI/CD 파이프라인 실행하기
- 외부 이슈 추적기 업데이트하기
- 팀에 이메일 알림 보내기
- 스테이징 환경에 코드 배포하기
간단한 훅 만들기
훅을 만들려면 훅 이름(예: pre-commit)으로 파일을 만들어 .git/hooks/ 디렉터리에 넣으면 됩니다. 아주 기본적인 훅을 만들어 보겠습니다.
#!/bin/sh
# This pre-commit hook will always succeed
echo "Running pre-commit hook..."
exit 0훅을 실행 가능하게 만들기
훅 스크립트를 만든 후에는 실행 가능하도록 설정해야 합니다. 그렇지 않으면 Git이 실행하지 않습니다. 터미널에서 chmod 명령을 사용하십시오.
chmod +x .git/hooks/pre-commit
이제 커밋을 시도할 때마다 Git이 이 스크립트를 실행합니다!
빠른 확인: 훅 실행 시점
Git 훅은 작업 흐름의 특정 시점에 실행됩니다. 훅을 효과적으로 사용하려면 실행 시점을 이해하는 것이 중요합니다.
복습: Git 훅 이해하기
강력한 Git 훅의 세계에 첫발을 내디디셨습니다!
- Git 훅은 Git 이벤트가 발생할 때 작업을 자동화하는 스크립트입니다.
- 훅은 저장소의
.git/hooks/디렉터리에 있습니다. - 훅은 클라이언트 측(로컬 컴퓨터) 또는 서버 측(원격 저장소)으로 나뉩니다.
pre-commit과pre-receive같은 주요 훅은 작업을 차단하여 정책을 강제할 수 있습니다.post-commit과post-receive같은 훅은 작업 후 알림이나 연동에 사용됩니다.
다음에는 특정 훅을 실제로 구현하는 예제를 살펴보겠습니다!
자주 묻는 질문
“Git 훅 이해하기” 강의는 무료인가요?
네 — “Git 훅 이해하기” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Git & GitHub Professional Workflow 강의 전체를 잠금 해제할 수 있습니다. Git & GitHub Professional Workflow 강의에는 총 4개의 강의가 포함되어 있습니다.
“Git 훅 이해하기”에서 뭘 배우나요?
Git 훅의 다양한 유형과 Git 워크플로에서 훅이 실행되는 시점을 살펴보세요. 브라우저에서 직접 실행하는 실습 코드로 Git & GitHub Professional Workflow을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.
Git & GitHub Professional Workflow을(를) 시작하는 데 경험이 필요한가요?
사전 경험은 필요하지 않습니다. CoddyKit의 Git & GitHub Professional Workflow은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 1번째 강의입니다.
“Git 훅 이해하기” 강의는 얼마나 걸리나요?
대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.
이 Git & GitHub Professional Workflow 강의에서 코드를 작성하고 실행할 수 있나요?
네. 모든 Git & GitHub Professional Workflow 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.
이 강의의 모든 강의
- Git 훅 이해하기
- 커밋 전 및 병합 후 훅
- Git 구성 사용자 지정
- Husky로 훅 공유하기