WebHook(웹훅)
WebHook(웹훅)이란 데이터가 변경되었을 때 실시간으로 알림을 받을 수 있는 기능으로 웹 서비스의 이벤트 데이터를 전달하는 HTTP 기반 콜백 함수이다.
특정 이벤트가 발생하면 웹훅이 클라이언트에게 이벤트 데이터를 보냄, 웹훅이라는 단어는 HTTP 기반의 웹 특징과 훅(Hook) 기능을 합친 용어이다.
WebHook의 주요 특징
- 이벤트 기반:
- WebHook은 이벤트가 발생할 때만 작동한다.
- 예를 들어, 사용자가 새로운 글을 작성하거나 주문이 완료되는 등의 이벤트가 발생하면 WebHook이 설정된 URL로 요청을 보낸다.
- HTTP 요청:
- WebHook은 HTTP POST 요청을 통해 데이터를 전달한다. 이 요청은 JSON, XML 등의 형식으로 데이터를 포함할 수 있다.
- 실시간 통신:
- WebHook은 발생한 이벤트를 실시간으로 다른 시스템에 전달한다. 이로인해 풀링(polling) 방식보다 더 효율적이고 빠른 데이터 통신이 가능하다.
- 간단한 설정:
- WebHook은 간단하게 설정할 수 있다, 일반적으로 애플리케이션의 관리 콘솔에서 WebHook을 설정하고 트리거될 URL을 지정한다.
WebHook 사용 사례
- 지불 시스템
- 결제 완료 시 WebHook을 사용하여 주문 처리 시스템에 결제 정보를 전달할 수 있다.
- CI/CD 파이프라인
- 소스 코드 리포지토리에 코드가 푸시되면 WebHook을 통해 CI/CD 도구가 빌드를 시작하도록 할 수 있다.
- 알림 시스템
- 특정 조건이 충족되었을 때 사용자에게 이메일이나 메시지를 보내기 위해 WebHook을 사용할 수 있다.
- 통합 시스템
- 여러 애플리케이션 간의 통합 작업에서 WebHook을 사용해 데이터를 실시간으로 주고받을 수 있다.
- 고객 관리 시스템과 이메일 마케팅 도구를 통합할 때 유용하다.
- 여러 애플리케이션 간의 통합 작업에서 WebHook을 사용해 데이터를 실시간으로 주고받을 수 있다.
WebHook과 API 풀링의 차이점
API는 클라이언트가 서버에 요청을 보내 데이터를 가져오거나 작업을 수행하는 방식으로 polling은 지속적으로 수신되었는지 확인하는 방식이다.
WebHook은 서버가 클라이언트에 이벤트 발생을 알리는 방식으로 특정 이벤트가 발생할 때만 HTTP 요청을 전송해 클라이언트에게 알린다.
WebHook 사용 시 주의사항
- 웹훅을 사용하기 위해서는 보안, 데이터 유효성 검증을 필수적으로 수행해야 한다.
- 웹훅은 Callback URL을 통해 외부 서비스와 실시간 통신을 가능하게 한다, 반드시 허용된 IP만 통신 가능하게 함으로써 다른 IP의 무단 엑세스를 방지해야 한다.
- 데이터 위변조를 막기 위해 데이터를 암호화해서 보내거나 디지털 서명을 통해 데이터가 허용한 사용자가 보낸 것이 맞는지 확인해야 한다.
참조
https://docs.tosspayments.com/resources/glossary/webhook
https://www.redhat.com/ko/topics/automation/what-is-a-webhook
https://velog.io/@daehoon12/Webhook%EC%9D%B4%EB%9E%80