품목

웹훅이란 무엇이며 어떻게 사용합니까?

Webhook를 사용하면 웹 기반 애플리케이션이 사용자 정의 콜백을 사용하여 상호 작용할 수 있습니다.

웹후크를 사용하면 웹 애플리케이션이 다른 웹앱과 자동으로 통신할 수 있습니다.

한 시스템(주체)이 일부 데이터에 대해 다른 시스템(관찰자)을 계속 폴링하는 기존 시스템과 달리 웹후크를 사용하면 이벤트가 발생할 때마다 관찰자가 자동으로 데이터를 주체의 시스템으로 푸시할 수 있습니다.

이것은 주제에 의한 지속적인 모니터링의 필요성을 제거합니다. Webhook은 전적으로 인터넷에서 작동하므로 시스템 간의 모든 통신은 HTTP 메시지 형식으로 이루어져야 합니다.

웹후크 사용

웹후크는 관찰자의 시스템에서 이벤트가 발생할 때 알림을 받아야 하는 대상 시스템의 API를 가리키는 정적 URL의 존재에 의존합니다. 예를 들어 사용자의 Amazon 계정에 접수된 모든 주문을 수집하고 관리하도록 설계된 웹 앱이 있습니다. 이 시나리오에서 Amazon은 관찰자 역할을 하고 Custom Order Management Webapp는 주체 역할을 합니다.

맞춤형 웹앱이 주기적으로 Amazon API를 호출하여 생성된 주문을 확인하는 대신, 맞춤형 웹앱에서 생성된 웹후크를 사용하면 Amazon이 등록된 URL을 통해 웹앱에서 새로 생성된 주문을 자동으로 제출할 수 있습니다. 따라서 웹후크를 사용하려면 주체는 관찰자의 이벤트 알림을 수락하는 URL을 지정해야 합니다. 이는 이벤트가 발생할 때만 두 당사자 간에 HTTP 호출이 이루어지기 때문에 개체에 대한 상당한 부하를 줄입니다.

폴링 기반 시스템과 웹후크 기반 시스템

관찰자가 주체의 웹후크를 호출하면 주체는 새로 제출된 이 데이터로 적절한 조치를 취할 수 있습니다. 일반적으로 웹후크는 특정 URL에 대한 POST 요청을 통해 수행됩니다. POST 요청을 사용하면 개체에 추가 정보를 보낼 수 있습니다. 또한 각 이벤트에 대해 별도의 웹후크 URL을 생성하는 대신 가능한 다양한 이벤트를 식별하는 데 사용할 수도 있습니다.

웹후크 워크플로

애플리케이션에서 인바운드 웹후크를 구현하려면 다음 기본 단계를 수행해야 합니다.

  • HTTP POST 호출을 수락하고 처리하는 애플리케이션 서버의 API 끝점 노출
  • 잠재적 웹후크 사용자에게 이 끝점에 대한 액세스를 제공합니다. API 엔드포인트는 관련 조건이 충족될 때마다 데이터 소스 애플리케이션을 호출합니다.
  • POST 데이터를 처리하고 상태를 나타내기 위해 웹후크 호출 개시자에게 응답을 반환합니다. 이 단계는 있을 수도 있고 없을 수도 있습니다.

Webhook 대 API

웹후크와 API 모두 애플리케이션 간의 통신을 설정하는 것을 목표로 합니다. 그러나 애플리케이션 통합을 달성하기 위해 API보다 Webhooks를 사용하는 데에는 몇 가지 뚜렷한 장점과 단점이 있습니다.

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

다음 사항이 구현된 시스템과 더 관련이 있는 경우 웹후크가 더 나은 솔루션이 되는 경향이 있습니다.

  • 데이터가 서버에서 자주 업데이트되는 경우 클라이언트에서 서버로의 불필요한 API 호출이 제거되므로 웹후크가 더 나은 솔루션이 되는 경향이 있습니다. resthooks.com에 따르면 API 설문조사의 98,5%가 낭비되고 있습니다.
  • 웹후크는 거의 실시간 데이터 업데이트가 필요한 시스템을 위한 더 나은 솔루션을 가능하게 합니다. API 폴링은 일반적으로 실시간 데이터가 업데이트되지 않을 수 있는 설정된 간격으로 실행됩니다. 웹후크를 사용하면 웹후크가 트리거되는 즉시 업데이트가 서버에서 클라이언트로 전송됩니다.

일부 다른 상황에서는 API를 사용하는 것이 웹후크보다 선호되어야 합니다.

고려해야 할 사항

Webhook에서 API를 사용하기 위해 고려해야 할 중요한 사항은 다음과 같습니다.

  • API를 사용하면 서버에서 데이터를 폴링할 시기와 서버에서 폴링할 데이터 양을 더 많이 사용자 정의할 수 있습니다. 폴링할 데이터의 양은 API 폴링 크기에 따라 결정됩니다. 웹후크를 사용하면 일반적으로 서버가 데이터와 전송 시기를 결정합니다.
  • 데이터가 매우 가변적인 시스템(예: 실시간 시스템, IoT 시스템 등)의 경우 모든 API 호출에 대해 사용 가능한 응답 가능성이 높기 때문에 API 기반 폴링이 더 나은 옵션일 수 있습니다.
  • REST 엔드포인트가 오프라인인 경우 웹후크를 통해 서버에서 전송된 데이터가 클라이언트에서 완전히 무시될 수 있습니다. 서버에 이러한 실패한 푸시를 재시도하는 메커니즘이 없는 경우 데이터 업데이트가 완전히 손실됩니다.

웹후크가 오프라인이 될 때 서버에서 보낸 데이터 손실 가능성을 처리하기 위해 이벤트 메시징 대기열을 사용하여 해당 호출을 보관할 수 있습니다. 이러한 기능을 제공하는 플랫폼의 예는 다음과 같습니다. RabbitMQ o Amazon의 SQS(Simple Queue Service). 둘 다 webhook 호출을 놓칠 가능성을 방지하는 중간 메시징 저장 시설 역할을 하도록 설계되었습니다.

Ercole Palmeri

혁신 뉴스레터
혁신에 관한 가장 중요한 뉴스를 놓치지 마세요. 이메일로 받으려면 가입하세요.

최근 기사

어린이를 위한 컬러링 페이지의 장점 - 모든 연령대를 위한 마법의 세계

색칠을 통해 소근육 운동 능력을 키우면 아이들이 글쓰기와 같은 보다 복잡한 기술을 준비할 수 있습니다. 색칠하다…

2 월 2024

미래가 여기에 있습니다: 해운 산업이 글로벌 경제를 어떻게 혁신하고 있습니까?

해군 부문은 150억 시장을 향해 항해해온 진정한 글로벌 경제강국입니다.

1 월 2024

출판사와 OpenAI, 인공지능이 처리하는 정보의 흐름을 규제하기 위한 계약 체결

지난 월요일, Financial Times는 OpenAI와의 계약을 발표했습니다. FT는 세계적 수준의 저널리즘에 라이선스를 부여합니다…

4월 30 2024

온라인 결제: 스트리밍 서비스를 통해 영원히 결제하는 방법은 다음과 같습니다.

수백만 명의 사람들이 스트리밍 서비스 비용을 지불하고 월간 구독료를 지불합니다. 당신은…

4월 29 2024