Git 웹 훅
IT 위키
웹 훅을 사용하면 소프트웨어 시스템에서 발생하는 이벤트를 구독하고 해당 이벤트가 발생할 때마다 자동으로 서버에 데이터 전달을 받을 수 있습니다.
웹 훅은 데이터가 사용 가능한지 확인하기 위해 API를 폴링(간헐적으로 API 호출)하는 것과 달리 데이터가 발생하는 대로 수신하는 데 사용됩니다. 웹훅을 사용하면 웹훅을 생성할 때 이벤트에 대한 관심을 한 번만 표현하면 됩니다.
웹 훅은 다음을 포함한 다양한 시나리오에서 사용됩니다.
- 외부 CI 서버에서 CI(지속적 통합) 파이프라인을 트리거합니다. 예를 들어 코드가 분기에 푸시될 때 Jenkins 또는 CircleCI에서 CI를 트리거합니다.
- GitHub의 이벤트에 대한 알림을 협업 플랫폼으로 보냅니다. 예를 들어 풀 요청에 대한 검토가 있을 때 Discord 또는 Slack에 알림을 보냅니다.
- Jira와 같은 외부 이슈 추적기를 업데이트합니다.
- 프로덕션 서버에 배포.
- 감사 목적으로 GitHub에서 발생하는 이벤트를 로깅합니다.
Github에서의 사용 예시[편집 | 원본 편집]
웹 훅을 생성할 때 URL을 지정하고 GitHub에서 발생하는 이벤트를 구독합니다. 웹 훅이 구독하는 이벤트가 발생하면 GitHub는 이벤트에 대한 데이터가 포함된 HTTP 요청을 지정한 URL로 보냅니다. 서버가 해당 URL에서 웹훅 전달을 수신하도록 설정된 경우 이를 수신하면 조치를 취할 수 있습니다.
예를 들어, 코드가 리포지토리에 푸시되거나, 끌어오기 요청이 열리거나, GitHub 페이지 사이트가 구축되거나, 새 구성원이 팀에 추가될 때 발생하는 이벤트에 대해 웹 훅을 구독할 수 있습니다. 서버는 코드를 프로덕션에 배포하거나, CI 파이프라인을 트리거하거나, 알림을 보내거나, 새 팀 구성원을 위한 GitHub 프로젝트를 생성하여 응답할 수 있습니다.
웹 훅과 REST API[편집 | 원본 편집]
웹 훅을 사용하면 API를 사용하는 것보다 다음과 같은 이점이 있습니다.
- 웹훅은 API를 폴링하는 것보다 더 적은 노력과 리소스를 필요로 합니다.
- 웹후크는 API 호출보다 확장성이 뛰어납니다. 많은 리소스를 모니터링해야 하는 경우 각 리소스에 대해 API를 호출하면 API 비율 제한 할당량에 빠르게 도달할 수 있습니다. 대신 여러 웹훅 이벤트를 구독하고 이벤트가 발생할 때만 정보를 받을 수 있습니다.
- 웹후크는 이벤트가 발생할 때 트리거되므로 거의 실시간 업데이트를 허용합니다.
정보가 한 번 또는 간헐적으로 필요하거나 확장 계획 없이 소규모 리소스 집합에서만 정보를 얻으려는 경우 관련 정보가 필요할 때 API를 호출할 수 있습니다.