개발자

실시간 커뮤니케이션을 간편하게: Webhooks 및 WebSockets 가이드

Webhooks와 WebSockets를 활용하여 Zoom의 비디오 기반 커뮤니케이션 솔루션을 사용하는 애플리케이션과 통합을 구축하는 방법을 설명합니다.
4 분 읽기 분량

업데이트 날짜 January 26, 2023

게시 날짜 January 25, 2023

WebSockets and webhooks

Webhooks와 WebSockets란 무엇인가요?

Webhooks와 WebSockets는 현대 애플리케이션에서 중요한 이벤트 알림 서비스를 제공하는 핵심 구성 요소입니다. Webhooks와 WebSockets 모두 실시간으로 Zoom 계정의 이벤트 알림을 보낼 수 있습니다. 또한 두 프로토콜은 변경이나 업데이트가 발생하는 즉시 대응해야 하는 애플리케이션을 지원합니다. 하지만 Webhooks와 WebSockets는 몇 가지 주요 차이점이 있습니다. 구현 용이성, 전달 속도, 신뢰성, 아키텍처, 기타 요인과 같은 사용 사례에 어떤 프로토콜이 더 적합한지 결정할 때 이 점을 고려하세요.

Webhooks와 WebSockets 비교

프로토콜 및 구현 용이성

Webhooks는 HTTP 프로토콜을 사용하는 반면 WebSockets는 WebSocket 프로토콜을 사용합니다(ws 또는 wss). 이로 인해 Webhooks는 HTTP POST 요청을 수신할 때 엔드포인트 URL만 필요하므로 일반적으로 구현하기가 더 쉽습니다. WebSockets는 액세스 토큰을 얻고 서버에 대한 연결을 여는 작업을 포함하여 조금 더 복잡하게 설정해야 합니다.

전달 속도

WebSockets는 이중 커뮤니케이션 채널을 제공하므로 전달 측면에서 Webhooks보다 더 빠릅니다. WebSockets를 사용하면 클라이언트와 서버 간에 단일 연결을 설정할 수 있으므로 추가적으로 HTTP 요청을 하지 않아도 실시간으로 데이터를 교환할 수 있습니다. 지속적인 연결을 통해 Webhooks보다 이벤트 알림을 더 빠르게 전달하고 리소스를 더 효율적으로 사용할 수 있습니다.

신뢰성

이벤트 기반 커뮤니케이션의 옵션을 평가할 때 신뢰성은 매우 중요합니다. 이벤트가 발생하면 Webhooks는 특정 URL로 알림을 보냅니다. 하지만 엔드포인트에 문제가 있는 경우 이벤트 알림이 올바르게 처리되지 않을 수 있습니다. 이에 반해 WebSockets는 서버와 지속적으로 연결하며 더 일관적이고 안정적인 커뮤니케이션을 유지할 수 있습니다.

아키텍처

Webhooks는 발생하는 이벤트 알림을 Zoom이 엔드포인트로 푸시하는 "푸시" 모델을 기반으로 합니다. WebSockets는 클라이언트가 서버와 연결을 설정한 다음 발생하는 이벤트 알림을 받는 "풀" 모델을 기반으로 합니다.

Stateless vs. Stateful

Webhooks는 상태를 저장하지 않는 Stateless입니다. 이벤트 알림은 독립적이며 이벤트에 관한 모든 필수 정보를 전달합니다. WebSockets는 상태를 저장하는 Stateful입니다. 클라이언트와 서버가 지속적으로 연결을 유지하며 연결되어 있는 내내 상태 정보를 공유할 수 있습니다.

사용 사례

앱으로 받아야 할 이벤트 알림 수가 적은 경우 Webhooks가 더 나은 솔루션입니다. 사용자가 미팅을 만들거나 업데이트하거나 삭제할 때 알림을 받아야 하는 마켓플레이스 앱을 사용 중이라고 생각해 보세요. 이 경우 앱으로 받아야 할 이벤트 알림(예:미팅 관련 이벤트 알림) 수가 적으므로 Webhooks가 더 적합합니다. Webhooks를 통해 이 알림을 받도록 간단한 엔드포인트를 설정하는 것이 WebSockets를 구현하는 것보다 더 효율적입니다.

WebSockets는 은행, 금융, 의료와 같은 업계에 있는 애플리케이션 개발자들에게 탁월한 선택이 됩니다. Webhooks를 구현할 때 개발자는 요청을 검증하고 IP 화이트리스트를 지정하는 것과 같이 엔드포인트를 보호하기 위해 별도의 노력을 기울여야 합니다. 이러한 반면에 WebSockets는 클라이언트와 서버를 직접 연결하여 중간자의 공격을 받을 위험이 없으므로 보안 계층이 한층 강화됩니다. WebSockets는 개발자가 연결을 열었을 때만 데이터가 전송되고 닫기 전까지 계속 열려 있으므로 더욱 안정적으로 연결을 유지합니다. Zoom WebSockets에 관해 흥미로운 점이 하나 더 있다면 WebSockets 구독을 만든 앱에서 생성된 액세스 토큰으로만 열 수 있으며 한 번에 하나의 연결만 열어 놓을 수 있다는 것입니다. Webhooks에 없는 WebSockets의 주요 장점은 지연 시간이 짧은 실시간 커뮤니케이션이 가능하다는 것입니다. 이 장점은 실시간 업데이트가 중요한 사용 사례에 꼭 필요합니다. 

매력적인 경험을 위해 꼭 필요한 도구

WebSockets와 Webhooks는 웹에서 대화식 애플리케이션을 구축하기 위해 꼭 필요한 도구입니다. 원활하고 효율적인 업데이트, 짧은 대기 시간, 효율적인 비용, 확장성 등의 이점을 갖추었기 때문입니다. Zoom은 이 기술을 활용하여 매력적이고 직관적인 사용자 경험을 만듭니다. 고객 참여 앱을 구축할 때도, 모니터링 시스템을 구축할 때도 앱이 가진 잠재력을 모두 발휘하려면 이 이벤트 알림이 반드시 필요합니다.

시작하는 데 참조할 수 있도록 WebhooksWebSockets(베타) 설명서를 모두 만들었습니다. 새롭게 출시되는 이번 기능을 가장 먼저 만나고 싶다면 이 양식을 작성하여 WebSockets 베타 버전에 등록하세요.

Zoom의 주요 고객

Okta
Nasdaq
Rakuten
Logitech
Western Union
Autodesk
Dropbox
Okta
Nasdaq
Rakuten
Logitech
Western Union
Autodesk
Dropbox

Zoom - 연결을 위한 하나의 플랫폼