본문으로 건너뛰기
0%

웹훅(webhook)이란?

작성자 Shray Jain

2022년 6월 20일에 게시됨4분 읽기

Webhook은 개발자가 두 애플리케이션 간에 실시간 통신을 자동화된 방식으로 구현할 수 있게 해줍니다. 정보를 얻기 위해 서버를 지속적으로 폴링하는 방식과 달리, webhook은 빠르고 설정이 간편하며, 완전한 기능을 갖춘 API 서비스를 구축하는 것에 대한 경량 대안으로 여겨지는 경우가 많습니다.

Alchemy Notify API를 사용하면 개발자는 주소 활동, 채굴된 트랜잭션 등 중요한 이벤트에 대해 사용자에게 실시간 알림을 보낼 수 있습니다.

예를 들어, 실시간 트랜잭션 알림 기능을 갖춘 탈중앙화 애플리케이션을 구축하는 것이 webhook을 통해 가능해지고 더 간단해집니다. Webhook을 구현하면 최종 사용자 경험이 크게 개선되고, 시간이 오래 걸리고 복잡한 알림 시스템을 처음부터 구축할 필요가 없어집니다.

이 글에서는 webhook이 무엇인지, 어떻게 작동하는지, 다양한 web3 알림 사용 사례, 그리고 Web3 webhook을 사용하는 방법에 대해 설명합니다.

Webhook이란 무엇인가?

Webhook은 한 애플리케이션이 다른 애플리케이션으로 실시간 데이터를 전송할 수 있게 하는 자동화된 매개체입니다. Webhook은 두 서비스 간의 단방향 통신만 지원하며, 엔드포인트를 폴링하는 방식보다 빠르고 개발 노력이 적게 듭니다.

Webhook URL이란 무엇인가?

Webhook URL은 발신 애플리케이션으로부터 데이터를 수신하는 애플리케이션의 주소입니다. 일반적으로 webhook은 서로 다른 두 애플리케이션을 연결하는 데 사용되며, 한쪽은 이벤트 정보의 "발신자", 다른 한쪽은 "구독자" 역할을 합니다. 발신 애플리케이션에서 이벤트가 발생하면, 해당 데이터를 구독 애플리케이션의 webhook URL로 전송합니다.

Webhook 엔드포인트란 무엇인가?

Webhook 엔드포인트는 발신 애플리케이션이 구독 애플리케이션에 데이터를 제공하도록 설정된 webhook URL입니다. 발신 애플리케이션이 구독 애플리케이션에 데이터를 제공하려면, 요청된 정보를 전달할 webhook URL이 필요합니다.

즉, webhook URL이 엔드포인트이며, 애플리케이션 간에 정보가 원활하게 흐르려면 공개되어 있어야 합니다. 요청이 트리거되고 데이터가 파싱되고 나면, 구독 애플리케이션은 데이터 수신을 알리기 위해 HTTPS 상태 코드가 포함된 콜백 메시지를 보낼 수 있습니다.

Webhook API란 무엇인가?

상태 변경 여부를 확인하기 위해 엔드포인트를 계속 폴링하는 것과 달리, webhook은 정보가 준비되는 즉시 이를 제공합니다. 즉, webhook은 데이터를 요청하는 프로그램이 아니라 데이터를 제공하는 프로그램이 통신을 시작하기 때문에 "역방향 API"라고 볼 수 있습니다.

기존 API와 마찬가지로, 두 소프트웨어 인터페이스 간에 정보와 기능이 공유됩니다. Webhook을 사용함으로써 얻는 효율성과 실질적인 이점 덕분에, 개발자들은 이 매개체를 실시간 데이터 업데이트와 web3 알림을 위한 실행 가능하고 경량화된 솔루션으로 여깁니다.

Webhook 통합이란 무엇인가?

Webhook 통합을 사용하면 개발자는 고유한 URL을 사용해 한 애플리케이션과 다른 애플리케이션 간의 메시지를 자동화할 수 있습니다. 예를 들어, 개발자는 새로운 기능을 코딩할 필요 없이 두 개 이상의 애플리케이션 간에 반복 작업을 자동화할 수 있는 소프트웨어 도구인 Zapier를 활용할 수 있습니다. Zapier가 없다면 사용자는 알림을 받지 못하고, 응답은 단순히 또 다른 응답, 일반적으로 JSON 객체에 불과할 것입니다.

반면, Zapier를 Alchemy webhook과 통합하면 Discord, Twitter, Slack과 같은 다양한 서드파티 애플리케이션에 Web3 데이터를 공유할 수 있습니다. 따라서 온체인 이벤트가 발생하면(예: 추적 중인 지갑에서 새로운 활동 발생), Zapier는 지정된 Slack 채널, Discord 서버, 또는 Twitter 계정으로 메시지를 보낼 수 있습니다. 결과적으로 Zapier와 같은 서비스는 커뮤니케이션 루프를 개선하고 개발자와 사용자 모두에게 더 유용한 제품을 만들어냅니다.

Zapier를 Alchemy webhook과 통합하는 것은 비교적 간단합니다. 실제로 이 통합을 완료하는 데 필요한 도구는 Alchemy 계정과 Zapier 계정뿐입니다.

Webhook은 무엇을 하는가?

Webhook은 애플리케이션이 다른 애플리케이션에 실시간 데이터를 공유하여 기능을 향상시킬 수 있게 해줍니다. Web3 애플리케이션 개발을 가속화하기 위해, webhook을 기반으로 하는 Alchemy의 Notify API는 Ethereum, Polygon, Optimism, Arbitrum 블록체인 네트워크에서 주소 활동, 채굴된 트랜잭션 등을 모니터링하는 데 도움을 줍니다.

개발자는 Alchemy Notify를 사용해 네 가지 유형의 알림 기능을 구축할 수 있습니다:

  • 채굴된 트랜잭션 webhook은 API 키를 통해 전송된 트랜잭션이 성공적으로 채굴될 때마다 애플리케이션에 알림을 보내는 데 사용할 수 있습니다. 이 알림은 트랜잭션이 실행된 순간을 고객에게 알리는 데 유용할 수 있습니다.
  • 드롭된 트랜잭션 webhook은 API 키를 통해 전송된 트랜잭션이 드롭될 때마다 애플리케이션에 알림을 보내는 데 사용됩니다.
  • Webhook은 개발자가 원하는 만큼의 Ethereum 주소에 대해 모든 ETH, ERC20, ERC721 전송 이벤트를 추적하는 데도 사용할 수 있습니다.

Webhook은 새로운 활동이나 dApp 업데이트를 사용자에게 알리기 위한 다양한 용도로 사용할 수 있습니다.

Alchemy Dashboard Demo
Free video demo

Alchemy 대시보드 실제로 보기

30분 가이드 투어: 대시보드의 모든 도구를 라이브로 시연합니다.

Watch the demo

Webhook 예시

Ethereum 블록체인은 알림을 기본적으로 지원하지 않기 때문에, dApp 사용자가 애플리케이션을 계속 새로고침하거나 etherscan을 확인하지 않고서는 트랜잭션 상태를 최신 상태로 파악할 방법이 없습니다. 전반적으로 이는 시간이 많이 소요되는 과정이며, 사용자가 해당 애플리케이션을 다시 사용하지 않게 만드는 요인이 됩니다.

이제 Alchemy Notify와 Alchemy의 pending transaction WebSocket을 사용하면, 사용자는 채굴된 트랜잭션과 대기 중인 ETH 트랜잭션을 원활하게 추적할 수 있습니다.

앞서 설명한 과정을 통해 개발자는 트랜잭션 생애주기 전반에 걸친 모든 활동에 대해 사용자에게 SMS 알림을 보낼 수 있게 됩니다. 이는 오늘날 경쟁이 치열한 시장에서 우위를 제공할 수 있는 더 나은 사용자 경험으로 이어집니다.

Web3 개발자가 webhook을 사용해야 하는 이유

Ethereum과 같은 블록체인 네트워크가 주류로 인기를 얻으면서 탈중앙화 애플리케이션은 아키텍처적으로 더 복잡해졌습니다. 하지만 Web3 생태계의 최종 사용자 경험은 여전히 Web2에 비해 뒤처져 있습니다.

Web3 UX 인프라에서 빠진 부분 중 하나가 실시간 알림입니다. 예를 들어, 최종 사용자는 자신의 거래가 언제 체결되는지, 트랜잭션이 언제 실패하는지, 경매 입찰이 언제 수락되었는지 등을 알고 싶어합니다.

개발자는 webhook에 대한 지원이 부족하면 앞서 언급한 이유에 더해 트랜잭션에 대한 불안감과 지연된 확인으로 인해 dApp 사용자들이 서비스를 완전히 이탈할 수 있다는 점을 알아야 합니다.

일반적으로 에 실시간 알림을 구축하는 것은 처음부터 시스템을 만드는 데 따르는 복잡성, 시간, 그리고 불가피한 오류 때문에 개발자들에게 어려운 지점이었습니다.

Webhook은 어떻게 작동하는가?

개발자는 webhook 알림을 SMS 알림과 유사하다고 생각할 수 있습니다. 메시지를 보내려는 최종 사용자는 정보를 전달할 주소 역할을 하는, 등록된 전화번호를 가지고 있습니다. 이후 메시지를 받았다는 것을 확인하는 응답을 보냄으로써, 양방향 통신 시스템을 만들 수 있습니다.

Webhook을 호출하는 방법

Webhook을 호출하려면 개발자가 세 단계 과정을 통해 몇 가지 입력값을 제공해야 합니다:

  1. 개발자는 데이터를 수신해야 하는 애플리케이션의 엔드포인트, 즉 webhook URL을 확인합니다.

  2. Webhook URL은 페이로드와 쿼리 변수를 문제없이 파싱할 수 있도록 데이터를 전송하는 애플리케이션에 통합되어야 합니다.

  3. 최종적으로 최종 사용자에게 이벤트 유형 알림을 트리거할 webhook의 규칙을 지정합니다.

오늘날 개발자는 Alchemy의 대시보드에서 또는 프로그래밍 방식으로 webhook을 설정할 수 있습니다. Web3 튜토리얼 맥락에서 webhook 호출을 연습하려면, Telegram에서 whale alert 봇을 만드는 방법을 참고하세요.

Webhook이 작동하기까지 얼마나 걸리는가?

Webhook을 실행 상태로 만드는 데는 많은 시간이 걸리지 않습니다. 실제로 개발자는 webhook 서버 설정 방법에 대한 이 튜토리얼을 참고할 수 있습니다. 이 튜토리얼은 node-express 구성 또는 python-django로 구축된 webhook 서버 구성을 사용해 Alchemy Notify webhook 서버를 설정하는 세 가지 간단한 단계를 보여줍니다.

전반적으로 webhook 서버를 설치하고, 실행하고, 로컬에서 테스트하는 것은 노력이 적게 들며 몇 가지 명령어만 있으면 됩니다.

Web3 앱에서 webhook 사용을 시작하기

Ethereum, Optimism, Arbitrum, Polygon에 대한 Webhook 지원을 통해, web3 개발자는 탈중앙화 애플리케이션의 사용자 경험을 개선하기 위해 Alchemy Notify를 사용하는 사례를 검토해볼 수 있습니다.

web3 분야에 더 많은 빌더와 경쟁이 존재하는 상황에서, 사용자 경험 설계는 지갑과 같은 소비자 대상 앱이 경쟁사와 차별화될 수 있는 중요한 영역 중 하나입니다.

Background gradient

블록체인 매직을 만드세요

Alchemy는 가장 강력한 Web3 개발자 제품 및 도구를 리소스, 커뮤니티, 그리고 전설적인 지원과 결합합니다.