🪝

Webhook

이벤트 발생 시 HTTP 콜백

Webhook은 "역방향 API"라고도 불립니다. 기존 API는 클라이언트가 서버에 요청하지만, Webhook은 서버가 이벤트 발생 시 클라이언트의 엔드포인트로 직접 데이터를 전송합니다.

구조 다이어그램

사전 등록 단계
🖥️
내 서버
콜백 URL 제공
① URL 등록
☁️
외부 서비스
예: GitHub, Stripe
이벤트 발생 시
🖥️
내 서버
POST 수신 + 처리
② HTTP POST 콜백
이벤트 발생!
결제 완료, 코드 푸시 등
흐름 설명
  1. 내 서버의 콜백 URL을 외부 서비스에 사전 등록
  2. 외부 서비스에서 이벤트 발생 시 등록된 URL로 HTTP POST
  3. 내 서버가 수신하여 이벤트 처리
  4. 폴링 없이 실시간 알림 수신 가능

동작 흐름

1

내 서버의 콜백 URL을 외부 서비스에 등록

2

외부 서비스에서 이벤트 발생 (결제 완료, 코드 푸시 등)

3

외부 서비스가 등록된 URL로 HTTP POST 요청 전송

4

내 서버가 요청을 수신하고 이벤트 처리

장점

  • 실시간 이벤트 수신
  • 폴링 불필요 (효율적)
  • 구현이 비교적 단순
  • 느슨한 결합

단점

  • 공개 URL 필요
  • 실패 시 재시도 로직 필요
  • 순서 보장 어려움
  • 보안 검증 필요 (서명 확인)

사용 사례

GitHub Webhook (코드 푸시 알림) Stripe 결제 알림 Slack 이벤트 구독 CI/CD 파이프라인 트리거