Webhook이란?
클라이언트가 주기적으로 폴링하는 대신, 서버가 이벤트 발생 시 HTTP POST로 알려주는 방식이다. "push 방식 API".
활용 예
- GitHub: PR 생성 → CI 시스템에 알림
- Stripe: 결제 완료 → 내 서버에 주문 확정
- Slack: 메시지 수신 → 봇 반응
구현 시 주의
- 서명 검증 — HMAC으로 진짜 발신자 확인
- 멱등성(Idempotency) — 중복 수신 대비
- 빠른 200 응답 후 비동기 처리 — 타임아웃 방지
- 재시도 정책 확인 (지수 백오프, 최대 횟수)