🪝
Webhook
이벤트 발생 시 HTTP 콜백
Webhook은 "역방향 API"라고도 불립니다. 기존 API는 클라이언트가 서버에 요청하지만, Webhook은 서버가 이벤트 발생 시 클라이언트의 엔드포인트로 직접 데이터를 전송합니다.
구조 다이어그램
사전 등록 단계
🖥️
내 서버
콜백 URL 제공
① URL 등록
→
☁️
외부 서비스
예: GitHub, Stripe
이벤트 발생 시
🖥️
내 서버
POST 수신 + 처리
←
② HTTP POST 콜백
⚡
이벤트 발생!
결제 완료, 코드 푸시 등
흐름 설명
- 내 서버의 콜백 URL을 외부 서비스에 사전 등록
- 외부 서비스에서 이벤트 발생 시 등록된 URL로 HTTP POST
- 내 서버가 수신하여 이벤트 처리
- 폴링 없이 실시간 알림 수신 가능
동작 흐름
1
내 서버의 콜백 URL을 외부 서비스에 등록
2
외부 서비스에서 이벤트 발생 (결제 완료, 코드 푸시 등)
3
외부 서비스가 등록된 URL로 HTTP POST 요청 전송
4
내 서버가 요청을 수신하고 이벤트 처리
장점
- ✓ 실시간 이벤트 수신
- ✓ 폴링 불필요 (효율적)
- ✓ 구현이 비교적 단순
- ✓ 느슨한 결합
단점
- ✗ 공개 URL 필요
- ✗ 실패 시 재시도 로직 필요
- ✗ 순서 보장 어려움
- ✗ 보안 검증 필요 (서명 확인)
사용 사례
GitHub Webhook (코드 푸시 알림)
Stripe 결제 알림
Slack 이벤트 구독
CI/CD 파이프라인 트리거