웹훅이란,
웹/앱 에서 사용자 정의 콜백을 사용해서,
애플리케이션의 동작을 강화하거나 변경하는 방법이다.
REST API 라고 하면,
하나의 요청에 따른 하나의 응답으로 이루어 진 것이라는 것을 알 수 있다.
클라이언트에서 요청을 보내면 서버에서 응답을 보내주는 구조인데,
웹훅은 반대다.
웹훅은 서버에서 특정이벤트가 발생하였을 때,
클라이언트를 호출하는 방식으로
역방향 API 라고 부르기도 한다.
Polling과 Webhook 비교
보통 폴링 방식과 웹훅 방식을 비교하는데,
두가지 방식은 명확한 차이점을 갖고 있다.
API 폴링은 서버가 이벤트가 발생했는지 주기적으로 확인해야 한다.
만약 서버가 준비 되지 않았다면, 클라이언트는 주기적으로 서버로 요청을 보내야 한다.
만약 요청 주기가 60초 라고 했을 때,
운이 안 좋으면 서버에서 이벤트가 발생했더라도 처리하기 위해 60초를 기다려야 한다는 것이다.
그래서 실시간으로 처리해야하는 알림과 같은 서비스는 API 폴링 방식이 적절하지 않다.
하지만, 웹훅은 이벤트가 발생하면 바로 클라이언트에게 전달해서
실시간으로 데이터를 처리할 수 있다.
그럼 어디다 사용하냐
아래 그림처럼 깃허브에 pr이 날라갈때 마다,
슬랙에다가 알람을 보내주는 웹훅을 걸어줄 수 도 있고 (슬랙 웹훅)
젠킨스 웹훅을 사용하여 CI/CD 파이프라인을 구축할 수도 있다.
이거 2개 이외에도 많은 곳에서 웹훅을 지원하고 있다.
Webhook Endpoint
웹훅 엔드포인트(Webhook Endpoint)는
웹 애플리케이션이 외부 서비스로부터 실시간 데이터를 받기 위해 제공하는 URL이다.
그래서 위의 예시에서 본것 처럼 slack과 젠킨스가 url(endpoint)를 제공하면,
외부 서비스가 그곳으로 이벤트를 전송해준다(보통 HTTP POST)
'Back-End' 카테고리의 다른 글
DTO, DAO, VO 차이점 (0) | 2025.04.11 |
---|---|
클라이언트에서 서버로 쿠키가 전달되지 않는다 (React, Spring) (0) | 2025.04.06 |
DI 패턴을 사용하여 IoC 설계 원칙을 구현하고 있다 (0) | 2025.03.31 |
Kafka를 사용하는 이유 (0) | 2025.03.28 |
MSA에서 SAGA Pattern을 사용하는 이유 (0) | 2025.03.28 |