About

Webhook이란? 이벤트가 생기면 상대 서버에 HTTP로 알리는 구조

「역방향 API」 — 콜백 URL을 등록해 두고 기다린다

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 파이프라인 트리거
← GraphQL Subscription이란? 원하는 이벤트·필드만 구독하기 Pub/Sub란? 메시지 큐와 무엇이 다른가 →