Azure SignalR Service란?
Azure SignalR Service는 HTTP를 통해 애플리케이션에 실시간 웹 기능을 추가하는 프로세스를 간소화합니다. 이 실시간 기능을 사용하면 서비스가 연결된 클라이언트(예: 단일 페이지 웹 또는 모바일 애플리케이션)에 콘텐츠 업데이트를 푸시할 수 있습니다. 결과적으로 클라이언트가 서버를 폴링하거나 업데이트에 대한 새 HTTP 요청을 제출하지 않고도 업데이트됩니다.
이 문서에서는 Azure SignalR Service에 대한 개요를 제공합니다.
Azure SignalR Service의 용도는?
서버에서 클라이언트로 데이터를 푸시해야 하는 모든 시나리오에서 Azure SignalR Service를 사용할 수 있습니다.
일반적으로 서버의 폴링이 필요한 기존 실시간 기능도 Azure SignalR Service를 사용할 수 있습니다.
Azure SignalR Service는 매우 다양한 업계에서 실시간 콘텐츠 업데이트가 필요한 애플리케이션 유형에 사용되었습니다. 다음은 Azure SignalR Service를 사용할 수 있는 몇 가지 예입니다.
- 높은 빈도 데이터 업데이트: 게임, 투표, 폴링, 경매
- 대시보드 및 모니터링: 회사 대시보드, 금융 시장 데이터, 인스턴트 판매 업데이트, 다중 플레이어 게임 리더 보드, IoT 모니터링
- 채팅: 라이브 채팅방, 채팅 봇, 온라인 고객 지원, 실시간 쇼핑 도우미, 메신저, 게임 내 채팅
- 지도의 실시간 위치: 물류 추적, 배달 상태 추적, 운송 상태 업데이트, GPS 앱
- 실시간 타겟팅 광고: 맞춤형 실시간 푸시 광고 및 제품, 대화형 광고
- 협업 앱: 공동 작성, 화이트보드 앱, 팀 모임 소프트웨어
- 푸시 알림: 소셜 네트워크, 메일, 게임, 여행 알림
- 실시간 브로드캐스팅: 라이브 오디오/비디오 브로드캐스팅, 라이브 캡션, 번역, 이벤트 및 뉴스 브로드캐스팅
- IoT 및 연결된 디바이스:: 실시간 IoT 메트릭, 원격 제어, 실시간 상태, 위치 추적
- 자동화: 업스트림 이벤트의 실시간 트리거
Azure SignalR Service를 사용하면 어떤 이점이 있나요?
표준 기반:
SignalR은 실시간 웹 애플리케이션을 빌드하는 데 사용되는 많은 기술에 대한 추상화를 제공합니다. Websocket이 최적의 전송이지만, 다른 옵션을 사용할 수 없는 경우 SSE(Server-Sent Events) 및 Long Polling과 같은 다른 기술이 사용됩니다. SignalR은 서버와 클라이언트에서 지원되는 기능에 따라 적절한 전송을 자동으로 감지하고 초기화합니다.
원시 ASP.NET Core 지원:
SignalR Service는 ASP.NET Core 및 ASP.NET의 원시 프로그래밍 환경을 제공합니다. SignalR Service를 사용하여 새 SignalR 애플리케이션을 개발하거나 기존 SignalR 기반 애플리케이션에서 SignalR Service로 마이그레이션하려면 최소한의 작업이 필요합니다. 또한 SignalR Service는 ASP.NET Core의 새로운 기능인 서버 쪽 Blazor를 지원합니다.
광범위한 클라이언트 지원:
SignalR Service는 다음과 같은 광범위한 클라이언트에서 작동합니다.
- 웹 및 모바일 브라우저
- 데스크톱 앱
- 모바일 앱
- IoT 디바이스
- 게임 콘솔
다중 언어 지원:
SignalR Service는 다양한 언어로 SDK를 제공합니다.
- 클라이언트 쪽: SignalR 프로토콜을 지원하는 모든 클라이언트 라이브러리는 SignalR 서비스와 호환됩니다.
- 서버 쪽: ASP.NET Core 또는 ASP.NET 웹 애플리케이션
- ASP.NET Core SignalR에 대한 REST API, Azure Functions 트리거 및 바인딩, Event Grid 통합을 통한 서버리스 지원
대규모 클라이언트 연결 처리:
SignalR Service는 대규모 실시간 애플리케이션용으로 설계되었습니다. SignalR Service를 사용하면 여러 인스턴스가 함께 작동하여 수백만 개의 클라이언트 연결로 확장될 수 있습니다. 또한 서비스는 분할, 고가용성 또는 재해 복구 용도로 전 세계 여러 지역을 지원합니다.
자체 호스트 SignalR에 대한 부담 제거:
자체 호스팅 SignalR 애플리케이션과 비교해 볼 때, SignalR Service로 전환하면 스케일링 및 클라이언트 연결을 처리하는 백플레인을 관리할 필요가 없습니다. 또한 완전 관리형 서비스는 웹 애플리케이션을 단순화하고 호스팅 비용을 절약합니다. SignalR Service는 글로벌 환경과 세계적 수준의 데이터 센터 및 네트워크를 제공하고, 수백만 개의 연결로 스케일링되며, Azure의 표준 규정 준수 및 보안을 제공합니다.
SignalR Service는 Azure Functions 및 Event Grid와 통합하여 서버 기반 구성과 서버리스 환경을 모두 지원합니다.
다양한 메시징 패턴을 위한 다양한 API 제공:
SignalR Service를 사용하면 서버가 특정 연결이나 모든 연결에 또는 특정 사용자에 속하거나 임의의 그룹에 배치된 연결의 하위 세트에 메시지를 보낼 수 있습니다.
Azure SignalR Service 사용 방법
Azure SignalR Service를 통해 프로그래밍하는 다양한 방법이 있습니다. 예제는 다음과 같습니다.
- ASP.NET Core SignalR 앱 크기 조정 - Azure SignalR Service를 ASP.NET Core SignalR 애플리케이션과 통합하여 수십만 개의 연결까지 확장합니다.
- 서버리스 실시간 앱 빌드 - Azure SignalR Service와 Azure Functions의 통합을 사용하여 JavaScript, C# 및 Java와 같은 언어로 서버리스 실시간 애플리케이션을 빌드합니다.
- REST API를 통해 서버에서 클라이언트로 메시지 보내기 - Azure SignalR Service는 애플리케이션이 모든 REST 지원 프로그래밍 언어로 SignalR Service와 연결된 클라이언트에 메시지를 게시할 수 있는 REST API를 제공합니다.