Webhook 대 WebSocket: 어떻게 다릅니까?

Webhook 대 WebSocket: 어떻게 다릅니까?

Webhook과 WebSocket은 사람들이 종종 혼동하는 두 가지 웹 개발 기술입니다. 많은 최신 웹 애플리케이션은 Webhook과 WebSocket을 모두 사용합니다. 상당히 다르지만 Webhook과 WebSocket은 모두 웹 애플리케이션의 통신을 처리합니다.



그렇다면 Webhook과 WebSocket은 무엇입니까? 그들을 다르게 만드는 것은 무엇입니까?





Webhook이란 무엇이며 어떻게 작동합니까?

Webhook은 '이벤트 트리거 HTTP 요청'으로 생각할 수 있습니다. 이것은 무엇을 의미 하는가? Webhook은 일반적으로 서버의 이벤트에 의해 트리거되는 HTTP 콜백 작업입니다. 그게 다가 아닙니다. 일반적으로 미리 구성된 URL을 통해 다른 서버로 데이터를 보냅니다. 이것은 Webhook이 '서버 간' 통신 수단이라는 아이디어를 탄생시켰습니다.





Webhook의 작동 메커니즘을 더 잘 이해하려면 Stripe의 API를 사용하여 지불을 받는 웹 애플리케이션을 고려하십시오. 고객이 결제를 할 때마다 Stripe는 돈을 받지만 앱은 전혀 모릅니다. 이것이 Webhook이 필요한 곳입니다. 아래 이미지를 고려하십시오.

  웹훅 작동 방식 시각화

Stripe에서는 새로운 결제 이벤트가 트리거될 때 고객의 결제 데이터를 서버로 보내기 위해 Webhook 끝점 URL을 제공해야 합니다. 그런 다음 서버는 데이터를 수신하고 이에 대한 작업을 수행하고 영구 데이터를 데이터베이스에 저장합니다.



WebSocket이란 무엇이며 어떻게 작동합니까?

WebSocket은 일반적으로 JavaScript와 함께 사용하는 프로토콜입니다. . 양방향 영구 양방향 통신 채널을 설정합니다. 그것은 단일 이상에 그렇게합니다 두 TCP 포트 사이에 만들어진 연결 클라이언트(브라우저)에서 서버로. WebSocket의 가장 인기 있는 응용 프로그램은 WhatsApp과 같은 채팅 응용 프로그램에 있습니다.

전화에서 시크릿 모드로 전환하는 방법

Webhook은 HTTP 기반(즉, HTTP 프로토콜 사용)인 반면 WebSocket은 HTTP와 마찬가지로 TCP를 기반으로 하는 자체 전체 프로토콜입니다. WebSocket은 대기 시간이 짧은 서버-클라이언트 데이터 스트리밍 응용 프로그램에서 작업할 때 매우 유용할 수 있습니다.





WebSocket 연결은 기본 HTTP와 달리 트랜잭션 간에 열려 있기 때문에 짧은 대기 시간을 달성할 수 있습니다. 이를 통해 데이터가 양 당사자 간에 원활하게 이동할 수 있습니다.

Windows 부팅 관리자 편집 Windows 10
  웹 소켓 시각화

WebSocket 이전에는 개발자가 HTTP를 통해 실시간 데이터를 가져오는 다양한 방법을 사용했습니다. 그들은 잠시 동안 주변에 있었지만 한계로 고통 받고 있습니다.





예를 들어, 긴 폴링을 사용하려면 클라이언트가 항상 지정된 시간 간격으로 서버에 새 요청을 보내야 합니다. 즉, 서버에 새 데이터가 있으면 이를 반환합니다. 그러나 없으면 요청이 사실상 낭비됩니다.

Webhook과 달리 WebSocket 연결의 한쪽 끝은 다른 쪽 끝으로 데이터를 보낼 수 있습니다. 이것이 WebSocket이 특히 서버에서 클라이언트로 데이터를 보낼 때 엄청난 속도 이점을 제공하는 이유 중 하나입니다. WebSocket을 사용하는 앱은 서버에서 데이터를 가져올 때 대기 시간이 짧다는 이점이 있습니다.

HTTP와 마찬가지로 TLS를 통해 WebSocket을 사용할 수도 있습니다. 이렇게 하면 전송하는 데이터가 보호되어 중간자 공격 . 이 접근 방식을 사용하면 지속적인 연결도 안전하게 유지됩니다. 공격자가 데이터를 훔치거나 통신이 데이터를 손상시키는 것에 대해 걱정할 필요가 없습니다.

웹훅은 언제 사용해야 합니까?

Webhook 및 WebSocket은 웹을 통한 실시간 통신의 더 나은 수단을 구현하는 것을 목표로 합니다. 그러나 그들은 완전히 다른 방식으로 그렇게 합니다. 이 두 가지 기술 중 애플리케이션에 사용해야 하는 기술을 결정하는 것이 종종 어려울 수 있습니다. 그들의 강점과 약점에 주의를 기울여 요구 사항을 가장 잘 충족시키는 것이 무엇인지 확인해야 합니다.

그렇다면 언제 WebSocket보다 Webhook을 선택해야 할까요?

  • 소유하지 않은 API를 사용할 때. 이전 Webhook 그림의 Stripe 예제를 고려하십시오. Stripe은 결제 서비스 제공업체이며 귀하의 애플리케이션은 해당 API를 기반으로만 구축할 수 있습니다. Stripe를 제어할 수 없으므로 끝에서 WebSocket 서버를 만들 수 없습니다. 이런 경우 Webhook을 사용해야 합니다.
  • 앱이 다른 서버와 통신해야 하는 서버인 경우 Webhook을 사용하는 것이 가장 좋습니다. 이것이 이상적인 '서버 대 서버' 통신 시스템입니다.
  • Webhook은 양방향이거나 영구적이지 않습니다. 애플리케이션이 동일한 채널을 통해 응답 데이터를 기대하지 않는 경우에만 웹훅을 사용해야 합니다.
  • 또한 Webhook은 서버리스 기능으로 실행되는 서버 작업에 이상적인 방법입니다. AWS Lambda 및 Google 클라우드 기능이 그 예입니다.

Webhook을 사용하여 실험할 수 있습니다. 웹훅.사이트 . 이 사이트를 통해 Webhook이 애플리케이션에 보내는 데이터가 어떻게 생겼는지 확인할 수 있습니다. 애플리케이션에서 엔드포인트를 구현하기 전에 Webhook 통신의 특성을 이해하는 것이 매우 유용합니다.

언제 WebSocket을 사용해야 합니까?

실시간 응용 프로그램, 알림 시스템 및 라이브 데이터 공유 시스템은 WebSocket의 일반적인 응용 프로그램입니다. WebSocket을 사용하는 경우 연결 채널은 항상 열려 있어야 하며 이 프로토콜은 비용이 그만한 가치가 있는 경우에만 사용해야 합니다.

  • 애플리케이션이 클라이언트와 서버 간에 지속적으로 데이터를 교환할 때 WebSocket을 사용해야 합니다. 예를 들어 라이브 위치 공유 응용 프로그램에서 사용자의 위치는 이동하는 동안 서버와 클라이언트 모두에서 지속적으로 업데이트됩니다. WebSocket이 이를 가능하게 합니다.
  • WhatsApp과 같은 멀티미디어 통신 애플리케이션에서 WebSocket은 이상적인 통신 프로토콜입니다. 그것은 이러한 종류의 앱의 핵심인 매우 빠른 양방향 데이터 교환을 허용합니다.
  • Livescore와 같은 실시간 피드를 구현하는 애플리케이션에서도 WebSocket을 사용해야 합니다. 이 웹사이트는 실시간 축구 경기 업데이트를 실시간으로 공유합니다. 하지만 새로운 요청을 하거나 브라우저를 새로 고칠 필요 없이 그렇게 합니다.
  • WebSocket을 사용해야 하는 다른 경우에는 라이브 비디오/오디오 스트리밍 앱, 라이브 알림 시스템 및 실시간 멀티플레이어 게임이 있습니다. Google Docs, Notion 등과 같은 공동 편집 응용 프로그램에서도 유용합니다.

Webhook과 WebSocket은 다릅니다.

Webhook과 WebSocket이 유사한 문제를 해결하더라도 동일하지 않고 각각 고유한 사용 사례가 있다는 것은 분명합니다. Webhook은 HTTP 프로토콜을 기반으로 하는 단방향 이벤트 트리거 콜백입니다. WebSocket 기술은 요청 없이 데이터를 양방향으로 교환할 수 있는 독립 실행형 프로토콜입니다.

듀얼 부팅 리눅스와 윈도우 10

리소스 낭비를 방지하기 위해 애플리케이션을 빌드할 때 항상 요구 사항을 식별하는 것이 중요합니다. 경우에 따라 WebSocket이 비용이 많이 들 수 있으므로 Webhook을 선호해야 합니다. 필요한 경우에만 사용하십시오.