백엔드 back-end

웹훅[Webhook] 이란 ?

니블 2024. 7. 5. 11:28

Webhook 이란?

- 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능 
= 서버에서 어떠한 작업이 수행 되었을 때 해당 작업이 수행되었음을 http post로 알리는 개념 

 

예를 들어) 
메일을 수신할 수 있는 웹앱의 클라이언트와 서버가 있다고 가정하자. 
구현할것은 서버측에서 메일을 수신하였을 경우, 클라이언트 측으로 알림 메시지를 전달하는것이다. 


i) 일반적인 API (Polling)  클라이언트 -> 서버 
1. 클라이언트에서 메일이 수신되었는지 확인하기 위해 서버로 요청
 1.1 수신된 경우 
- 메일 정보를 받아옴 
- 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력 
1.2 수신되지 않은 경우
- 재요청, 1번으로 돌아감 or 미수신 관련 로직으로 

ii) 웹훅 (역방향 api) 
1. 메일이 수신된 경우, 미리 지정한 클라이언트의 callback url 로 메일에 대한 정보를 전송
-  요청은 http post 방식으로 이뤄지며, 주로 json을 활용 
 (callback url : 서버측에서 클라이언트의 어떤 url로 데이터를 보낼지 정해놓은 주소)
- 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력 

 

@ api 폴링은 주기를 60초에서 120초 설정하는것 
실시간 이벤트로 데이터를 받기어려움 -> 웹훅은 가능 



* Webhook endpoint 

-웹훅이 이벤트 핸들러, 웹훅 엔드포인트는 이벤트의 목적지인 target