IRONSOFTWAREHOME
개발자 업데이트

Azure.Messaging.ServiceBus Example C# (작동 방식)

제이콥 멜러, 팀 아이언 최고기술책임자
Jacob Mellor
Updated: 2026년 4월 21일

오늘날의 상호 연결된 디지털 환경에서 효율적인 커뮤니케이션은 성공적인 비즈니스의 초석입니다. 애플리케이션 간에 중요한 데이터를 전송하거나 분산된 시스템 간에 실시간 업데이트를 보장하는 것이든, 신뢰할 수 있는 메시징 인프라는 필수 불가결합니다.

Azure Service Bus는 클라우드 기반 메시징 서비스로서 개발자가 확장 가능하고 분리된 회복력 있는 애플리케이션을 구축할 수 있도록 하는 강력한 솔루션으로 나타납니다. Azure Service Bus의 중요성을 이해하고 그것의 다양한 기능을 탐구하기 위해 그 영역으로 들어가보겠습니다. 이 기사 후반부에서는 IronPDF를 사용하여 PDF 문서를 관리, 생성 및 읽는 방법도 살펴보겠습니다.

Azure Service Bus 이해하기

Azure Service Bus는 클라우드, 온-프레미스 또는 하이브리드 환경 어디에서 실행되든 애플리케이션과 서비스 간의 신뢰할 수 있는 통신을 촉진하는 완전 관리형 Enterprise 통합 메시지 브로커입니다.

배포된 시스템의 이질적인 구성 요소 간의 원활한 통신을 가능하게 하기 위해 대기열 및 게시/구독 메커니즘을 포함한 유연한 메시징 기능을 제공합니다. 또한 배치 메시지를 허용하여 전체 크기 제한을 초과하지 않고 여러 메시지를 전송할 수 있습니다.

Azure Service Bus는 다음과 같은 이점을 제공합니다:

  1. 애플리케이션 분리: 서비스 버스를 통해 애플리케이션과 서비스를 서로 분리할 수 있습니다. 이러한 분리는 신뢰성과 확장성을 향상시킵니다.
  2. 로드 밸런싱: 경쟁 작업자들 간에 작업을 균형 있게 분산하여 효율적인 자원 활용을 보장합니다.
  3. 메시지 전송: 데이터는 메시지를 사용하여 애플리케이션과 서비스 사이에서 전송됩니다. 메시지의 본문에는 JSON, XML 또는 일반 텍스트와 같은 다양한 유형의 데이터가 포함될 수 있습니다.
  4. 메시징 시나리오: 일반 시나리오에는 업무 데이터 전송 (예: 판매 주문), 로드 밸런싱, 주제와 구독을 사용하여 게시자와 구독자 간의 관계를 가능하게 하는 것이 포함됩니다.
  5. 트랜잭션: 서비스 버스는 원자적 트랜잭션을 지원하여 단일 트랜잭션 범위 내에서 여러 작업을 허용합니다. 트랜잭션에는 여러 동시 호출이 있으며, 메시지 배치에는 단일 호출이 있습니다.
  6. 메시지 세션: 워크플로의 대규모 조정과 정렬된 메시지 전송을 촉진합니다.

주요 기능 및 역량

  1. 대기열과 주제: Azure Service Bus는 통신 채널로 대기열과 주제를 모두 제공합니다. 대기열은 포인트 투 포인트 통신을 가능하게 하여 각 메시지가 하나의 수신자에 의해 처리되도록 보장하며, 작업 부하 분배 및 로드 레벨링 시나리오에 이상적입니다. 반면, 주제는 여러 구독자가 관련 메시지를 독립적으로 수신할 수 있도록 지원하고, 확장 가능한 이벤트 기반 아키텍처를 용이하게 하는 게시/구독 메시징 패턴을 지원합니다.

  2. 신뢰할 수 있는 메시지 전달: Azure Service Bus를 사용하면 메시지 전달이 본질적으로 신뢰할 수 있게 됩니다. 메시지의 지속성을 보장하고, 메시지 및 오류 핸들러를 구성할 수 있으며, 내결함성 및 최소 한 번 전달 의미론을 제공하여 데이터 손실 또는 중복의 위험을 최소화합니다. 또한 여러 메시지에 대한 원자적 작업을 가능하게 하는 트랜잭션을 지원하여 데이터 무결성을 보장합니다.

  3. 사후 편지 및 재시도 정책: 오류 메시지를 효과적으로 처리하기 위해 Azure Service Bus는 사후 편지 기능을 제공하여 문제 메시지를 분석 및 문제 해결을 위해 별도의 대기열로 자동으로 이동할 수 있도록 합니다. 또한, 유연한 재시도 정책을 제공하여 개발자가 점진적인 백오프 전략을 통해 자동 재시도를 구성할 수 있도록 하여 일시적 실패 시 애플리케이션의 회복력을 향상시킵니다.

  4. 분할 및 확장: Azure Service Bus는 메시지 엔터티의 분할을 지원하여 작업 부하를 여러 노드에 분산하여 수평 확장성 및 높은 처리량을 보장합니다. 이 기능은 성능이나 신뢰성을 저하시키지 않으면서 대량의 메시지를 처리하고 변동하는 작업 부하를 수용하는 데 중요한 역할을 합니다.

  5. Azure 에코시스템과의 통합: Azure Service Bus는 Azure Functions, Logic Apps, Event Grid, Azure Kubernetes Service (AKS) 등 다른 Azure 서비스와 원활하게 통합되어 개발자들이 손쉽게 종단 간 솔루션을 구축할 수 있게 합니다. 수신 메시지에 대응하여 서버리스 함수를 트리거하거나 Logic Apps를 사용하여 복잡한 워크플로를 오케스트레이션할 때, Azure Service Bus는 탄탄하고 이벤트 중심의 아키텍처를 구축하는 데 핵심적인 역할을 합니다.

IronPDF 소개

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 1

IronPDF는 .NET 프로젝트에서 PDF 문서를 생성, 편집 및 콘텐츠를 추출할 수 있는 강력한 C# PDF 라이브러리입니다. 다음은 몇 가지 주요 기능입니다:

  1. HTML을 PDF로 변환:

    • HTML, CSS, 및 JavaScript 콘텐츠를 PDF 형식으로 변환합니다.

    • 픽셀 완벽한 PDF를 위한 Chrome 렌더링 엔진을 사용합니다.

    • URL, HTML 파일 또는 HTML 문자열에서 PDF를 생성합니다.

  2. 이미지 및 콘텐츠 변환:

    • 이미지를 PDF로 또는 PDF에서 변환합니다.

    • 기존 PDF에서 텍스트와 이미지를 추출합니다.

    • 다양한 이미지 형식을 지원합니다.

  3. 편집 및 조작:

    • PDF의 속성, 보안 및 권한을 설정합니다.

    • 디지털 서명을 추가합니다.

    • 메타데이터 및 개정 기록을 편집합니다.

  4. 크로스 플랫폼 지원:

    • .NET Core (8, 7, 6, 5, 3.1+), .NET Standard (2.0+), .NET Framework (4.6.2+)와 작동합니다.

    • Windows, Linux, macOS와 호환됩니다.

    • 손쉬운 설치를 위한 NuGet에서 제공됩니다.

IronPDF와 Azure.Messaging.ServiceBus를 사용하여 PDF 문서 생성하기

우선, 아래에 표시된 대로 Visual Studio를 사용하여 콘솔 애플리케이션을 만드세요.

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 2

프로젝트 이름 제공

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 3

.NET 버전 제공

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 4

IronPDF 패키지를 설치합니다.

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 5

Azure Service Bus 생성

Azure 전역에서 고유한 이름으로 네임스페이스를 생성합니다. 네임스페이스는 애플리케이션 내에서 큐 및 주제와 같은 Service Bus 리소스를 위한 컨테이너입니다.

네임스페이스를 만드는 방법은 다음과 같습니다:

  1. Azure 포털에 로그인하십시오.
  2. "모든 서비스" 페이지로 이동합니다.
  3. 왼쪽 탐색 창에서 "통합" 카테고리 목록을 선택합니다.
  4. "Service Bus" 위로 마우스를 가져가 Service Bus 타일에서 "+" 버튼을 클릭합니다.

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 6

네임스페이스 생성 페이지의 기본 탭을 구성하려면 다음 단계를 따르십시오:

  1. 구독: 네임스페이스를 생성하려는 Azure 구독을 선택합니다.

  2. 리소스 그룹: 네임스페이스가 위치할 기존 리소스 그룹을 선택하거나 새로 만듭니다.

  3. 네임스페이스 이름: 네임스페이스의 이름을 입력합니다. 이름이 다음 기준을 충족하는지 확인하십시오:

    • Azure 전역에서 고유해야 합니다.

    • 길이는 6자에서 50자 사이여야 합니다.

    • 문자, 숫자, 하이픈 "-"만 포함할 수 있습니다.

    • 문자로 시작하고 문자나 숫자로 끝나야 합니다.

    • "-sb" 또는 "-mgmt"로 끝날 수 없습니다.

  4. 위치: 네임스페이스가 호스팅될 지역을 선택합니다.

  5. 가격 책정 계층: 네임스페이스에 대한 가격 책정 계층(Basic, Standard 또는 Premium)을 선택하십시오. 이 예에서는 Standard를 선택하십시오.

  6. 페이지 하단에서 검토 + 생성을 선택하십시오.

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 7

  1. 검토 + 생성 페이지에서 생성을 선택하십시오.

  2. 리소스의 배포가 성공하면 리소스로 이동을 선택하십시오.

서비스 버스 네임스페이스의 홈페이지를 볼 수 있습니다.

Azure 포털에서 서비스 버스 큐 생성

서비스 버스 네임스페이스에서 큐를 설정하려면 다음 단계를 따르십시오:

  1. 큐로 이동: Azure 포털에서 서비스 버스 네임스페이스 페이지로 이동하십시오. 왼쪽 탐색 메뉴에서 "큐"를 선택하십시오.

  2. 새 큐 생성: 큐 페이지에서 도구 모음의 "+ 큐" 버튼을 클릭하십시오.

  3. 큐 구성: 제공된 필드에 큐의 이름을 입력하십시오. 다른 설정은 기본값으로 유지하십시오. Azure 서비스 버스 큐를 생성할 때 구성해야 하는 옵션:

    1. 이름: 큐의 고유 식별자입니다. 설명적이고 기억하기 쉬운 이름을 선택하십시오.

    2. 최대 큐 크기: 큐의 최대 저장 용량을 정의합니다. 1 GB, 2 GB, 5 GB, 10 GB, 20 GB, 40 GB, 80 GB 또는 100 GB로 설정할 수 있습니다. 귀하의 경우, 1 GB로 설정되어 있습니다.

    3. 최대 배송 횟수: 메시지가 폐기되거나 데드레터 큐로 전송되기 전에 배달될 수 있는 최대 횟수입니다. 메시지 처리 실패를 처리하는 데 도움이 됩니다.

    4. 메시지 TTL (Time to Live): 메시지가 만료되기 전에 큐에 남아 있는 시간을 결정합니다. 일, 시간, 분, 초 단위로 설정할 수 있습니다. TTL에 도달하면 데드레터된 메시지가 폐기되거나 데드레터링이 활성화된 경우 데드레터 큐로 이동됩니다.

    5. 잠금 기간: 수신기에서 메시지를 처리하기 위해 잠금되는 시간입니다. 이 시간 동안 다른 수신기는 동일한 메시지를 처리할 수 없습니다. 이 기간은 일, 시간, 분, 초 단위로 설정할 수 있습니다.

    6. 메시지 만료 시 데드레터링 활성화: 활성화되면 만료된 메시지(TTL을 초과한 경우)가 폐기되지 않고 데드레터 큐로 이동됩니다. 만료된 메시지를 추가로 검사하고 처리할 수 있습니다.

    7. 파티셔닝 활성화: 이 옵션은 여러 메시지 브로커에 걸쳐 큐를 파티셔닝하여 확장성과 처리량을 개선할 수 있습니다. 파티셔닝은 대량의 메시지를 처리하는 데 유용합니다.

이 설정은 Azure 서비스 버스 큐의 동작과 성능을 제어하여 애플리케이션의 요구 사항을 충족할 수 있도록 도와줍니다.

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 8

  1. 생성 완료: "생성" 버튼을 클릭하여 큐 생성을 완료하십시오. 이 단계는 Azure 포털을 사용하여 서비스 버스 네임스페이스 내에 큐를 성공적으로 생성할 수 있도록 보장합니다.

Azure.Messaging.ServiceBus, 서비스 버스 클라이언트 라이브러리를 설치하여 연결 문자열을 사용하여 Azure 큐에 연결하십시오.

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 9

Azure.Messaging.ServiceBus를 사용하여 메시지를 보내고 받는 아래 코드를 추가하십시오.

using Azure.Messaging.ServiceBus;
namespace CodeSample
{
    public static class AzureServiceBusDemo
    {
        public static async Task Execute()
        {
            string connectionString = "Endpoint=sb://iron-articles.servicebus.windows.net/;SharedAccessKeyName=all;SharedAccessKey=uqQIzpuc2HxbnAb9keqTINvzfTcFbkkU0+ASbJZ/tow=;EntityPath=ironpdf";
            string queName = "ironpdf";
            Console.WriteLine("Demo IronPDF with Azure.Messaging.ServiceBus");
            Installation.EnableWebSecurity = true;

            // Instantiate Renderer
            var renderer = new ChromePdfRenderer();
            var content = "<h1>Demo IronPDF with Azure.Messaging.ServiceBus</h1>";
            content += "<h2>Send Message to Azure.Messaging.ServiceBus Queue: ironpdf</h2>";

            await using var client = new ServiceBusClient(connectionString);
            var msgText = "IronPDF is Awesome Package";
            content += $"<p>Message: {msgText}</p>";
            
            var tx = client.CreateSender(queName);
            await tx.SendMessageAsync(new ServiceBusMessage(msgText)); // Send message to the queue
            Console.WriteLine($"Sent Below message at: {DateTime.Now}");
            content += $"<p>Sent Below message at: {DateTime.Now}</p>";

            Console.ReadLine(); // wait for user input to read the message;

            var rx = client.CreateReceiver(queName);
            var msg = await rx.ReceiveMessageAsync(); // receive messages
            content += "<h2>Receive Message from Azure.Messaging.ServiceBus Queue: ironpdf</h2>";
            content += $"<p>Recieved Below message at: {DateTime.Now}</p>";
            Console.WriteLine($"Recieved Below message at: {DateTime.Now}");

            content += $"<p>MessageID={msg.MessageId}</p>";
            Console.WriteLine($"MessageID={msg.MessageId}");

            content += $"<p>Message Received: {msg.Body}</p>";
            Console.WriteLine($"Message Received: {msg.Body}");

            var pdf = renderer.RenderHtmlAsPdf(content);
            // Export to a file or Stream
            pdf.SaveAs("AwesomeAzureServiceBusQueueAndIronPdf.pdf");
        }
    }
}

코드 설명

  1. 연결 문자열 및 큐 이름:

    • connectionString 변수에는 Azure Service Bus 네임스페이스에 대한 연결 세부 정보가 포함되어 있습니다. 엔드포인트, 공용 액세스 키, 엔터티 경로(큐 이름)를 지정합니다.

    • queName 변수에는 작업하려는 Service Bus 큐의 이름이 저장됩니다.

  2. 데모 설정:

    • 코드가 "Demo IronPDF with Azure.Messaging.ServiceBus." 메시지를 출력하며 시작합니다.

    • Installation.EnableWebSecurity = true;을(를) 사용하여 웹 보안을 활성화합니다.

  3. 서비스 버스 클라이언트 생성:

    • 제공된 연결 문자열을 사용하여 ServiceBusClient이(가) 생성됩니다.

    • 이 클라이언트를 사용하여 서비스 버스 엔터티(큐, 주제 등)와 상호 작용할 수 있습니다.

  4. 메시지 전송:

    • "IronPDF is Awesome Package"라는 내용을 가진 메시지가 CreateSender 메소드를 사용하여 지정된 큐로 전송됩니다.

    • new ServiceBusMessage(msgText)을(를) 사용하여 메시지가 생성됩니다.

    • 전송된 메시지의 타임스탬프가 콘솔에 출력됩니다.

  5. 메시지 수신:

    • CreateReceiver을(를) 사용하여 동일한 큐에 대한 수신자가 생성됩니다.

    • 코드가 사용자 입력을 기다려( Console.ReadLine() 사용) 메시지 처리를 시뮬레이션합니다.

    • 메시지를 수신하면 해당 ID와 본문이 콘솔에 출력됩니다.

  6. PDF 생성:

    • 렌더러가 HTML 콘텐츠(전송 및 수신된 메시지를 포함하여)로부터 PDF를 생성합니다.

    • 결과 PDF는 "AwesomeAzureServiceBusQueueAndIronPdf.pdf"로 저장됩니다.

산출

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 10

PDF

Azure.Messaging.ServiceBus 예제 C# (작동 방식): 그림 11

IronPDF 라이선스

IronPDF 패키지는 실행 및 PDF 생성을 위해 라이선스가 필요합니다. 애플리케이션 시작 부분에 아래 코드를 추가하세요.

IronPdf.License.LicenseKey = "IRONPDF-MYLICENSE-KEY";

IronPDF 체험판 라이선스 페이지에서 체험판 라이선스를 사용할 수 있습니다.

결론

디지털 전환과 급속한 기술 발전이 특징인 시대에, Azure Service Bus는 전 세계 기업의 현대화 여정에서 중추적인 구성 요소로 등장합니다. 안정적이고 확장 가능하며 유연한 메시징 기능을 제공하여 개발자가 변화하는 비즈니스 요구 사항에 적응할 수 있는 견고하며 민첩한 솔루션을 설계할 수 있게 합니다.

원활한 통합 촉진, 이벤트 기반 아키텍처 가능화, 비동기 통신 보장 등 모든 경우에 Azure Service Bus는 산업 전반의 혁신을 추진하고 디지털 이니셔티브를 가속화하는 데 변혁적인 역할을 합니다.

조직이 클라우드 네이티브 패러다임과 분산 아키텍처를 계속 수용함에 따라, Azure Service Bus는 개발자와 기업이 클라우드 여정을 더 강화할 수 있도록 지원하는 Microsoft의 헌신을 입증합니다. IronPDF는 .NET 애플리케이션 내에서 PDF 생성을 단순화하여, 코드에서 직접 전문가 수준의 문서를 생성할 수 있는 유연성과 기능을 제공합니다.

제이콥 멜러, 팀 아이언 최고기술책임자
최고기술책임자

제이콥 멜러는 Iron Software의 최고 기술 책임자(CTO)이자 C# PDF 기술을 개척한 선구적인 엔지니어입니다. Iron Software의 핵심 코드베이스를 최초로 개발한 그는 창립 초기부터 회사의 제품 아키텍처를 설계해 왔으며, CEO인 캐머런 리밍턴과 함께 회사를 NASA, 테슬라, 그리고 전 세계 정부 기관에 서비스를 제공하는 50명 이상의 직원을 보유한 기업으로 성장시켰습니다.

...
더 읽어보기

관련 기사

Key in blue circle

무료 30일 체험 키를 즉시 받으세요.

Your trial license will be sent to your email address

제한 없음. 100% 무제한 이용. 신용카드 불필요.

bullet_checked신용카드나 계정 생성은 필요하지 않습니다.제한 없음. 100% 무제한 이용. 신용카드 불필요.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
무료 라이브 데모를 예약하세요
Booking Badge

전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.

Iron Software의 고객 로고
부담 없는 무료 상담을 받아보세요
아래 양식을 작성하시거나 sales@ironsoftware.com으로 이메일을 보내주세요.
고객님의 정보는 항상 비밀로 유지됩니다.
전 세계 수백만 엔지니어들이 신뢰하는 제품입니다.
Iron Software의 고객 로고
지금 바로 30일 무료 체험판 키를 받으세요.
신용카드나 계정 생성은 필요하지 않습니다.