WIKI
Webhook
Webhook
이벤트 발생 시 다른 시스템에 HTTP 요청을 보내는 방식은 어떻게 작동하는가.
Scope
핵심 질문
Webhook은 polling 없이 이벤트 발생 사실을 다른 시스템에 어떻게 전달하는가?
Research
핵심 근거
- Webhook은 이벤트 발생 시 등록된 HTTP endpoint로 요청을 보내는 push pattern이다.
- 수신 측 장애 때문에 delivery가 실패할 수 있어 retry와 signature 검증이 중요하다.
- at-least-once delivery에서는 동일 event가 중복될 수 있으므로 idempotent 처리해야 한다.
Draft
Webhook은 한 시스템에서 이벤트가 발생했을 때 다른 시스템의 HTTP endpoint를 호출해 즉시 알리는 방식이다.
Polling과 차이
Polling은 수신자가 계속 새 데이터가 있는지 묻는다. Webhook은 이벤트가 있을 때만 발신자가 요청을 보내므로 불필요한 조회를 줄이고 반응속도를 높일 수 있다.
신뢰성
HTTP 요청은 실패할 수 있다. 발신자는 일정 정책으로 재시도하고 수신자는 같은 event가 두 번 와도 안전하게 처리해야 한다.
보안
공개 endpoint는 HMAC signature, shared secret, timestamp를 검증해 위조 요청과 replay를 막는 것이 좋다.
빠른 응답
수신 endpoint에서 긴 작업을 모두 끝낸 뒤 응답하기보다 event를 queue에 저장하고 빠르게 2xx를 반환하면 timeout과 중복전송 가능성을 줄일 수 있다.
핵심
Webhook은 단순한 HTTP callback이지만 실제 운영에서는 인증, retry, 중복처리와 비동기화가 안정성을 결정한다.