ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 웹훅(Webhook) 개념 및 활용
    Education 2024. 7. 6. 22:18

     

    웹훅(Webhook)이란?

    • 웹페이지 or 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해 주는 방법
    • 이러한 행동 정보들을 실시간으로 제공하는데 사용
    1. HTTP 기반의 웹(Web) 특징과 훅(Hook) 기능을 합친 용어
    2. 웹 서비스의 이벤트 데이터를 전달하는 HTTP 기반 콜백 함수
    3. 하나의 앱/웹이 다른 어플리케이션으로 앱 관련 이벤트 정보를 실시간으로 제공하기 위한 방법
    4. 웹페이지 or 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해 주는 방법
    5. 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능
    6. 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 활용

    1. 서버측에서 메일 수신 시, 클라이언트 측으로 알림 메시지 전달
    2. Slack, MS Teams, GitLab 등 협업 Tool에서의 알림봇
    3. 고객 계좌 관리 시스템에서의 출금 및 입금 문자 알림

     


     

    관련 용어 Check

     

    • Callback URL          : 서버 측에서 클라이언트의 어떤 URL로 데이터를 보낼지 정해놓은 주소
    • Webhook Endpoint  : 발생한 이벤트가 어디로 전달되어야 하는가에 대한 이벤트의 목적지(Target)
    • Hokking                   : 함수 호출, 메시지, 이벤트 등을 중간에서 바꾸거나 가로채는 명령, 방법, 기술이나 행위
    • Hook                       :  이때 이러한 간섭된 함수 호출, 이벤트, 메시지를 처리하는 코드

     


     

    웹훅 고려사항

    • 웹앱이 중단된 경우, 웹훅으로부터 오는 데이터가 유실될 가능성이 존재
    • 웹훅으로부터 오는 요청을 처리 완료했지만, response를 제대로 보내지 못했을 경우에 웹훅에서 response가 실패인 것을 확인하고 동일한 정보를 다시 보낼 가능성
    • 이러한 상황을 고려하며 메서드별로 예외 처리를 적용 필요
    • 우리 서비스가 에러로 인해 중단되었을 경우, Webhook으로부터 오는 데이터는 영원히 유실될 수 있다
    • Webhook provider가 response에 대해 어떻게 반응할지 이해하고, 그것에 맞는 대처를 해주어야 한다. 또한 Webhook 서비스가 너무 많은 Event를 발생시킬 경우, 우리 서비스에 대한 DDOS 공격이 될 수도 있다는 점을 숙지하고 있어야 한다.

     

    반응형
Designed by Tistory.