[Webhook]역방향 API에 사용되는 방법

·2023년 8월 6일
0

프로젝트 공부

목록 보기
28/33

웹훅(Webhook)이란?

웹훅은 웹페이지 or 웹앱에서 발생하는 특정 행동(이벤트)들을 커스텀 Callback으로 변환해주는 방법으로 이러한 행동 정보들을 실시간으로 제공하는데 사용됩니다.

보통 REST API로 구축된 웹 서비스는 하나의 요청에 따라 하나의 응답을 제공합니다. 이러한 구조로 인해 특정 이벤트가 발생했는지 조회하려면 서버로의 요청이 선행되어야 합니다.

즉, 일반적인 API(Polling)는 클라이언트가 서버를 호출하는 방식입니다.
하지만, 웹훅은 서버에서 특정 이벤트가 발생했을 때, 클라이언트를 호출하는 방식으로써 역방향 API라고도 불립니다.

이렇게 서버측에서 클라이언트의 어떤 URL로 데이터를 보낼지 정해놓은 주소를 바로 Callback URL이라고 부릅니다

webhook을 이용할 수 있는 사이트

https://webhook.site/

Webhook 활용성 - 알림

서버측에서 메일을 수신하였을 때, 클라이언트 측으로 알림 메세지를 전달하는 기능에서 webhook이 이용될 수 있다.

일반적인 API(Polling)는 다음과 같은 비즈니스 로직이 처리됩니다.

  1. 클라이언트에서 메일이 수신되었는지 확인하기 위해 서버로 요청
  • 1-1) 수신된 경우

    • 메일 정보를 받아옴
    • 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력
  • 1-2. 수신되지 않은 경우

    • 재요청, 1번으로 돌아감 or 미수신 관련 로직으로

하지만, 웹훅을 이용한다면 간략한 순서로 진행됩니다.

  1. 메일이 수신된 경우, 미리 지정한 클라이언트의 Callback URL로 메일에 대한 정보를 전송(HTTP POST)
    - 클라이언트에서 해당 메일 정보를 파싱하여 화면에 출력

    다만, 주의해야할 점은 웹앱이 중단된 경우, 웹훅으로부터 오는 데이터가 유실될 가능성이 존재합니다. 또는, 웹훅으로부터 오는 요청을 처리 완료했지만, response를 제대로 보내지 못했을 경우에 웹훅에서 response가 실패인 것을 확인하고 동일한 정보를 다시 보낼 가능성이 있습니다.

    이러한 상황을 고려하며 메서드별로 예외 처리를 적용해야 할 것입니다

    참고
    웹훅[Webhook]이란 무엇일까?

profile
개발자가 되고싶은 낭랑 24세

0개의 댓글

관련 채용 정보