1. Webhook이란?
webhook은 쉽게 말해 수신봇으로써 역할을 수행한다.
현재 내 PC에 설치되어있는 Client(Slack)와 프로젝트가 올라가 있는 Github으로 예를 들면은
Server(Github)에서 Event(내PC에서 github으로 push)가 발생하면 이에 대해 Client(Slack)로 이벤트가 발생했다는 메세지가 수신되는 형태로 이에 Reverse API, Web Callback, HTTP PUSH API라고 불리기도 한다.
2. Webhook vs Polling
webhook의 네트워크 흐름을 이야기할 때 반드시 빠지지 않고 등장하는 개념이 바로 polling이다.
webhook과 polling의 차이를 아래의 그림으로 설명하겠습니다.
1. Polling 방식
Client가 Server에게 지속적으로 이벤트 발생 여부를 묻고 이에 대해 응답받는 형태
이러한 방식은 지속하여 API를 통한 요청이 필요로 하기 때문에 리소스 낭비가 발생할 수 있다는 단점이 존재한다.
2. Webhook 방식
Server에서 이벤트가 발생할 시, Client로 메세지를 전달하고 Server가 이에 대한 응답을 받는 형태
webhook은 polling과 달리 Client에서 지속적으로 요청을 하지 않아도 된다는 장점이 존재한다.
한번 Webhook 서비스 URL을 등록해두면 Server에서 이벤트가 발생하면 해당 URL로 이벤트 발생했다는 데이터를 Client로 전달해주기 때문이다.
이러한 장점은 분명히 편리함 뿐만 아니라 불필요한 리소스 낭비도 감소시킬 수 있다.
3. Webhook의 활용
앞서 언급한 방식으로 이벤트를 감지할 수 있다면 가장 먼저 떠오르는 것이 알림봇이다.
실제로 Slack, MS Teams, GitLab등 다양한 협업을 위한 App에서 incoming webhook 기능을 제공한다.
이를 적극 활용할 수만 있다면 배치 모니터링 결과 수신, 배포 결과 알람, 내부 업무요청 VOC알람 등 다양한 서비스를 위한 알림봇으로 사용할 수 있을 것이다.
참고링크
- https://leffept.tistory.com/329
- https://velog.io/@cho876/Webhook%EC%9D%B4%EB%9E%80
- https://simsimjae.medium.com/%EC%9B%B9%ED%9B%85%EC%9D%B4%EB%9E%80-e41cf1ba92f0
댓글