Nubes et Stella

웹훅(Webhook) 본문

Knowledge/Dev(Ops)

웹훅(Webhook)

SeongYeong Han 2023. 8. 19. 13:46

01. Webhook이란?

애플리케이션이 다른 어플리케이션으로 이벤트 정보를 실시간으로 전달하기 위한 방법이다.

 


webhook in web development is a method of augmenting or altering the behavior of a web page or web application with custom callbacks. These callbacks may be maintained, modified, and managed by third-party users and developers who may not necessarily be affiliated with the originating website or application. The term "webhook" was coined by Jeff Lindsay in 2007 from the computer programming term hook.

The format is usually JSON. The request is done as a HTTP POST request.

 

from. wikipedia


위 위키피디아에서 가져온 정의에 따르면 특정 이벤트들을 커스텀 Callback으로 변환 해주는 방법(Method)이다. 다시 한번 말해 특정 이벤트가 발생했을 때 클아언트에게 Request하는 방법이다.

 

Rquest는 Callback URL에게 "POST"방식으로 생성된다. 

 

** Callback URL

서버에서 이벤트가 발생하였을 때 이벤트를 전달할 클라이언트 URL이다.

 

다른 말로 "Reverse API", "Web Callback", "HTTP PUSH API" 라고도 불린다.

 

 

02. Webhook VS Polling

Webhook의 개념은 기존의 Polling과 매우 유사하며 여러가지로 비교대상이 된다.

 

Polling은 Client가 Server에게 지속적으로 이벤트의 발생여부를 물어보고 이벤트가 있으면 이에 대한 Request를 받는 형태이다.

이와 달리 Webhook은 이벤트가 발생하면 자체적으로 지정된 URL로 Request를 발생시키며 이로 하여금 리소스 낭비를 줄일 수 있다.

 

 

03. Webhook WITH AWS

** 내가 공부하고 있는 AWS와도 연동이 가능하다.

대표적으로 위의 매커니즘이 있는데, 외부 플랫폼(애플리케이션)에서 이벤트가 발생하고 Webhook으로 AWS API Gateway로 Request한다. (이 때 Callback URL은 API Gateway) Request를 받은 API Gateway는 lambda서비스로 중개하고 트리거가 발생한 lambda는 S3에 버킷을 생성하는 함수가 실행되는 형태이다.

 

APP 이벤트 발생 -> Webhook Request -> API Gateway -> lambda 트리거 -> lambda 함수 실행 -> S3 버킷 생성

 

위의 형태 뿐만 아니라 더 다양한 형태로 활용할 수 있을 것 같다. 

'Knowledge > Dev(Ops)' 카테고리의 다른 글

CI / CD  (0) 2023.10.22
애자일 방법론(Agile methodology)  (0) 2023.10.12
API(Application Programming Interface)  (0) 2023.08.22
매개변수(Parameter)와 인자(Argument)  (0) 2023.08.21