-
웹훅(Webhook) 개념 및 활용Education 2024. 7. 6. 22:18
웹훅(Webhook)이란?
- 웹페이지 or 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해 주는 방법
- 이러한 행동 정보들을 실시간으로 제공하는데 사용
- HTTP 기반의 웹(Web) 특징과 훅(Hook) 기능을 합친 용어
- 웹 서비스의 이벤트 데이터를 전달하는 HTTP 기반 콜백 함수
- 하나의 앱/웹이 다른 어플리케이션으로 앱 관련 이벤트 정보를 실시간으로 제공하기 위한 방법
- 웹페이지 or 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해 주는 방법
- 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능
- Web Callback , HTTP PUST API로도 불린다.
WebHook 동작 방식
일반적인 API 호출 -▶ 클라이언트가 서버를 호출하는 Polling 방식
BUT
WebHook 동작 방식 -▶ 서버에서 특정 이벤트가 발생했을 때, 서버가 클라이언트를 호출하는 방식
- #역방향 API라고도 불린다.
Webhooks vs Polling - 실시간 상태를 알기 위한 방식의 차이
https://docs.tosspayments.com/resources/glossary/webhook API Polling
- 짧은 주기로 반복해서 API 요청을 보내 Data의 변경이나, 이벤트 발생 여부를 조회 하는 방식
- API 폴링은 요청 과부하 문제로 주기를 60초에서 120초로 설정하는 것을 가장 추천하는데, 그렇다면 실시간으로 발생하는 이벤트 데이터를 받기 어렵다.
WebHook
- Webhook 서비스로부터 특정 이벤트 관련 정보(알림)를 받기까지 기다리고 있으면 된다. 그래서Reverse API라고 불리기도 한다.
- API Polling은 친구가 받을 때까지 계속 전화하는 것과 같고,
- WebHook은 친구에게 "시간 나면 전화 줘"라고 문자를 남기는 것과 같다
WebHook 활용
- 서버측에서 메일 수신 시, 클라이언트 측으로 알림 메시지 전달
- Slack, MS Teams, GitLab 등 협업 Tool에서의 알림봇
- 고객 계좌 관리 시스템에서의 출금 및 입금 문자 알림
관련 용어 Check
- Callback URL : 서버 측에서 클라이언트의 어떤 URL로 데이터를 보낼지 정해놓은 주소
- Webhook Endpoint : 발생한 이벤트가 어디로 전달되어야 하는가에 대한 이벤트의 목적지(Target)
- Hokking : 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위
- Hook : 이때 이러한 간섭된 함수 호출, 이벤트, 메시지를 처리하는 코드
웹훅 고려사항
- 웹앱이 중단된 경우, 웹훅으로부터 오는 데이터가 유실될 가능성이 존재
- 웹훅으로부터 오는 요청을 처리 완료했지만, response를 제대로 보내지 못했을 경우에 웹훅에서 response가 실패인 것을 확인하고 동일한 정보를 다시 보낼 가능성
- 이러한 상황을 고려하며 메서드별로 예외 처리를 적용 필요
- 우리 서비스가 에러로 인해 중단되었을 경우, Webhook으로부터 오는 데이터는 영원히 유실될 수 있다
- Webhook provider가 response에 대해 어떻게 반응할지 이해하고, 그것에 맞는 대처를 해주어야 한다. 또한 Webhook 서비스가 너무 많은 Event를 발생시킬 경우, 우리 서비스에 대한 DDOS 공격이 될 수도 있다는 점을 숙지하고 있어야 한다.
반응형