이론공부/네트워크통신
웹훅(Webhook)이란 무엇인가?
멍토
2021. 8. 23. 21:36
서비스를 만들다 보면 어디에서 무슨일이 일어나고 있는지 알아야 할때가 있다.
백엔드 개발자가 겪을 수 있는 예로는 CI/CD를 들 수 있다.
깃허브에 코드가 업데이트 되었는지 알고싶다면 어떻게 해야할까?
계속 요청을 보내서(polling 방식) 코드가 바뀌었는지 확인을 해야할까?
그렇다면 깃허브 서버에 부담이 늘어날 것이다.
또한 바뀌는 잠깐을 확인하기 위해서 계속해서 요청을 보내는 것 역시 매우 비효율적이다.
이러한 문제를 해결하기 위해 Webhook을 이용한다.
Webhook이란 특정 이벤트가 발생하였을때 타 서비스 혹은 응용프로그램으로 알림을 보내는 기능이다.
즉, 깃허브에서 코드가 업데이트가 되었다면 CI/CD를 담당하는 Jenkins서버에 요청을 내고, Jenkins서버는 깃허브에서 코드를 가져와 빌드후 배포하게 된다.
이것 말고도 에러발생, 빌드실패 등 여러가지 이벤트 상황에서 슬랙에 알림을 보내는 등의 행위도 가능하다.