푸터 콘텐츠로 바로가기
.NET 도움말

Blazor Framework란? (개발자를 위한 작동 원리 튜토리얼)

Blazor는 Microsoft에서 2018년에 출시한 ASP.NET Framework입니다. Blazor 프레임워크의 출시는 개발자들이 JavaScript 대신 C#를 사용하여 단일 페이지 웹 애플리케이션을 만들 수 있도록 하여 유리했습니다.

Blazor를 사용하면 C#을 사용하여 브라우저에서 WebAssembly(약자 Wasm)와 함께 실행되는 대화형 웹 UI를 만들 수 있습니다. Blazor 앱은 C#, HTML 및 CSS를 사용하여 구현된 재사용 가능한 웹 UI 구성 요소로 구성됩니다. 클라이언트와 서버 코드 모두 C#로 작성되어 코드와 라이브러리를 공유할 수 있습니다.

Blazor는 WebAssembly를 사용하여 클라이언트 측 C# 코드를 브라우저에서 직접 실행할 수 있습니다. .NET이 WebAssembly로 실행되기 때문에 애플리케이션의 서버 측 부분에서 코드와 라이브러리를 재사용할 수 있습니다.

또는 Blazor는 클라이언트 로직을 서버에서 실행할 수 있습니다. 클라이언트 UI 이벤트는 실시간 메시지 프레임워크인 SignalR을 사용하여 서버로 전송됩니다. 실행이 완료되면 필요한 UI 변경 사항이 클라이언트로 전송되고 문서 객체 모델(DOM)에 병합됩니다.

WebAssembly는 무엇인가요?

Blazor WebAssembly는 .NET으로 인터랙티브한 클라이언트 측 웹 앱을 구축하는 단일 페이지 앱(SPA) 프레임워크입니다. Blazor WebAssembly는 플러그인이나 코드 컴파일 없이 개발을 가능하게 하는 웹 표준을 사용합니다. Blazor WebAssembly는 모든 최신 웹 브라우저에서 작동합니다.

웹 브라우저에서 .NET 코드를 실행하는 것은 WebAssembly 덕분에 가능합니다. WebAssembly는 빠른 다운로드와 최대 실행 속도를 위해 최적화된 압축된 바이트코드 형식입니다. WebAssembly는 개방형 웹 표준이며 플러그인 없이도 웹 브라우저에서 지원됩니다.

WebAssembly 코드는 JavaScript를 통해 브라우저의 모든 기능에 접근할 수 있습니다. JavaScript 상호 운용성 또는 _JS interop_으로 자주 줄여서 불립니다. WebAssembly로 실행된 .NET 코드는 브라우저의 JavaScript 샌드박스에서 실행되며, 샌드박스가 제공하는 클라이언트 머신의 악성 행동에 대한 보호를 받습니다.

네이티브 앱 빌드하기

기존 Blazor 웹 UI 구성 요소를 사용하여 Blazor Hybrid로 네이티브 클라이언트 앱을 빌드할 수 있습니다. Blazor 구성 요소는 모바일, 데스크톱, 웹 전반에 걸쳐 공유될 수 있으며 네이티브 클라이언트 기능에 대한 완전한 접근을 활용할 수 있습니다. Blazor Hybrid를 사용하여 .NET 다중 플랫폼 앱 UI(MAUI)를 통해 교차 플랫폼 앱을 구축하거나 기존 Windows 프레젠테이션 파운데이션(WPF) 및 Windows 폼 앱을 현대화할 수 있습니다.

Blazor Hybrid 앱에서 Razor 구성 요소는 기기에 네이티브로 실행됩니다. 구성 요소는 로컬 상호 운용 채널을 통해 내장 웹 뷰 컨트롤에 랜더링됩니다. 구성 요소가 브라우저에서 실행되지 않으며 WebAssembly도 포함되지 않습니다. Razor 구성 요소는 코드를 빠르게 로드하고 실행하며, 구성 요소는 .NET 플랫폼을 통해 기기의 네이티브 기능에 완전한 접근을 가지고 있습니다.

Blazor 앱이 어떻게 작동하는지 더 잘 이해하기 위해 데모 애플리케이션을 만들어 보겠습니다.

Blazor 서버 애플리케이션 만들기

첫 번째 Blazor 앱을 만들기 위해 새로운 Visual Studio 프로젝트를 생성해야 합니다.

  • Visual Studio를 엽니다.
  • 새 프로젝트 생성 버튼을 클릭합니다.
  • Blazor 서버 앱 템플릿을 선택합니다.
  • 다음 버튼을 클릭합니다.
  • 응용 프로그램의 이름을 지정합니다.
  • 다음 버튼을 클릭합니다.
  • 대상 프레임워크를 선택합니다.
  • 프로젝트 생성 버튼을 클릭합니다.

아래와 같이 새로운 프로젝트가 생성됩니다.

What is Blazor and How Does It Work - Figure 1

실행 준비가 된 간단한 Blazor 앱을 제공하기 위해 여러 파일이 생성되었습니다.

  • Program.cs은 서버를 시작하고 앱 서비스와 미들웨어를 구성하는 앱의 진입점입니다.
  • App.razor은 앱의 루트 구성 요소입니다.
  • Pages 디렉토리에는 앱의 예제 웹 페이지가 포함되어 있습니다.
  • launchSettings.json 파일은 Properties 디렉토리 내에서 로컬 개발 환경을 위한 다양한 프로필 설정을 정의합니다. 프로젝트 생성 시 포트 번호가 자동으로 할당되어 이 파일에 저장됩니다.

이 템플릿 앱을 실행합니다.

Blazor 앱 실행하기

템플릿에는 자동으로 생성된 세 개의 Blazor 구성 요소가 있습니다.

홈 구성 요소

What is Blazor and How Does It Work - Figure 2

측면 메뉴에서 Counter를 클릭합니다. 버튼을 클릭하면 페이지를 변경하거나 다시 로드하지 않고도 카운터가 증가하는 것을 볼 수 있습니다. 웹 애플리케이션에서 카운터를 동적으로 증가시키는 것은 일반적으로 JavaScript가 필요하지만 Blazor를 사용하면 C#을 사용하여 이를 달성할 수 있습니다. 이것이 ASP.NET 개발자들이 Blazor를 좋아하는 이유입니다. .NET 개발자가 웹 앱을 빠르고 쉽게 구축할 수 있도록 도와줍니다.

카운터 구성 요소

What is Blazor and How Does It Work - Figure 3

우리는 우리의 솔루션의 Pages 폴더에 위치한 Counter.razor 파일에서 Counter 구성 요소의 코드를 볼 수 있습니다.

@page "/counter"
<h1>Counter</h1>
<p>Current count: @currentCount</p>
<button class="btn btn-primary" @onclick="IncrementCount">Click me</button>
@code {
    private int currentCount = 0;

    // This method increments the counter value when the button is clicked
    private void IncrementCount()
    {
        currentCount++;
    }
}

브라우저에서 /counter에 대한 요청은 상단의 @page 지시에 따라 Counter 구성 요소가 콘텐츠를 렌더링하게 합니다.

각각의 Click me 버튼이 선택될 때마다:

  • onclick 이벤트가 실행됩니다.
  • IncrementCount 메소드가 호출됩니다.
  • currentCount가 증가합니다.
  • 구성 요소는 업데이트된 카운트를 보여주기 위해 렌더링됩니다.

.razor 파일은 재사용 가능한 UI 구성 요소를 정의합니다.

Visual Studio에서 Index.razor 파일을 엽니다. Index.razor 파일은 이미 존재합니다. 왜냐하면 프로젝트를 생성할 때 생성되었기 때문입니다. 이것은 이전에 생성된 BlazorApp 디렉토리의 Pages 폴더 내에 위치해 있습니다.

Fetch 구성 요소

다른 구성 요소로는 'Fetch 구성 요소'가 있습니다. 이 구성 요소도 백엔드 서버 측 개발에 사용되는 서비스를 주입합니다. 이 코드를 URL에서 PDF를 생성하는 것으로 교체하여 Blazor 웹 개발의 강력함을 더 잘 이해해 봅시다.

URL에서 PDF 생성하기

우선, PDF 파일을 생성하기 위한 타사 라이브러리를 설치해야 합니다. 우리가 사용할 라이브러리는 IronPDF - .NET을 위한 PDF 생성입니다. 사용하기 쉬우며 많은 기능을 포함하고 있고 개발 용도로는 무료입니다. Blazor 앱에서 IronPDF를 사용하는 방법에 대해서는 IronPDF Blazor 문서를 읽어보세요.

IronPDF NuGet Install-Package

일반적인 ASP.NET Core 애플리케이션과 유사하게 Blazor WebAssembly 앱에서도 IronPDF NuGet 패키지를 설치할 수 있습니다.

NuGet 패키지 관리자 콘솔을 열고 다음 명령을 작성하십시오:

Install-Package IronPdf

아래와 같이 라이브러리가 설치될 것입니다.

What is Blazor and How Does It Work - Figure 4

FetchData.razor 파일에서 모든 기존 코드를 제거하고 다음 코드 샘플을 추가하십시오:

@page "/fetchdata"

@using myBlazorAPP.Data
@inject WeatherForecastService ForecastService

<h1>Generate PDF FROM URL</h1>
<p>This component demonstrates generating PDF from URL using IronPDF in Blazor Application</p>
<input type="text" @bind="URL" placeholder="URL HERE..."/>
<button @onclick="GeneratePDF">Generate PDF</button>

@code {
    private string URL { get; set; }

    // This method calls the service to generate a PDF document from a given URL
    protected async Task GeneratePDF()
    {
        await ForecastService.GeneratePDFfromURL(URL);
    }
}

위의 코드는 PDF 파일을 생성하기 위한 클라이언트 측 Blazor 코드입니다. 버튼 하나와 입력 상자 하나를 정의합니다. 입력 필드는 URL 변수에 바인딩되어 있습니다.

이제 우리의 앱을 위한 서버 측 코드를 작성합시다.

WeatherForecastService.cs 파일을 열고 모든 기존 코드를 다음 코드 스니펫으로 교체하십시오:

using System;
using System.Threading.Tasks;
using IronPdf;

namespace myBlazorAPP.Data
{
    public class WeatherForecastService
    {
        // This method generates a PDF file asynchronously from a provided URL
        public async Task GeneratePDFfromURL(string URL)
        {
            ChromePdfRenderer renderer = new ChromePdfRenderer();
            var pdfDoc = await renderer.RenderUrlAsPdfAsync(URL);
            pdfDoc.SaveAs(@"myFile.pdf");
        }
    }
}
using System;
using System.Threading.Tasks;
using IronPdf;

namespace myBlazorAPP.Data
{
    public class WeatherForecastService
    {
        // This method generates a PDF file asynchronously from a provided URL
        public async Task GeneratePDFfromURL(string URL)
        {
            ChromePdfRenderer renderer = new ChromePdfRenderer();
            var pdfDoc = await renderer.RenderUrlAsPdfAsync(URL);
            pdfDoc.SaveAs(@"myFile.pdf");
        }
    }
}
Imports System
Imports System.Threading.Tasks
Imports IronPdf

Namespace myBlazorAPP.Data
	Public Class WeatherForecastService
		' This method generates a PDF file asynchronously from a provided URL
		Public Async Function GeneratePDFfromURL(ByVal URL As String) As Task
			Dim renderer As New ChromePdfRenderer()
			Dim pdfDoc = Await renderer.RenderUrlAsPdfAsync(URL)
			pdfDoc.SaveAs("myFile.pdf")
		End Function
	End Class
End Namespace
$vbLabelText   $csharpLabel

응용 프로그램을 실행하여 출력을 확인해 봅시다.

What is Blazor and How Does It Work - Figure 5

입력 상자에 URL을 붙여넣고 PDF 생성 버튼을 클릭하세요. PDF 파일이 생성되며, 파일은 앱 폴더에서 볼 수 있습니다.

아래 표시된 대로 PDF 파일을 엽니다.

What is Blazor and How Does It Work - Figure 6

우리는 URL에서 코드 세 줄로 PDF를 생성했습니다. 이것이 IronPDF의 강력함입니다.

IronPDF는 Iron Software에서 제공하며, Iron Software의 Iron Suite 제품에 속합니다. 전체 Iron Suite를 구입하여 두 제품의 비용으로 다섯 제품을 구매하여 돈을 절약할 수 있습니다.

요약

Blazor는 Microsoft의 .NET Framework를 사용하여 상호작용하는 클라이언트 측 웹 UI를 구축하기 위한 프레임워크입니다.

  • JavaScript 대신 C#을 사용하여 풍부한 상호작용 UI를 만듭니다.
  • .NET으로 작성된 서버 측 및 클라이언트 측 앱 로직을 공유합니다.
  • 모바일 브라우저를 포함하여 광범위한 브라우저 지원을 위해 UI를 HTML 및 CSS로 렌더링합니다.
  • Docker와 같은 현대 호스팅 플랫폼과 통합합니다.
  • .NET과 Blazor로 하이브리드 데스크탑 및 모바일 앱을 만듭니다.

클라이언트 측 웹 개발에 .NET을 사용하면 다음과 같은 장점이 있습니다:

  • JavaScript 대신 C#으로 코드를 작성합니다.
  • .NET 라이브러리의 기존 .NET 에코시스템을 활용합니다.
  • 서버와 클라이언트 간의 앱 로직을 공유합니다.
  • .NET의 성능, 신뢰성 및 보안성을 누립니다.
  • Visual Studio 또는 Visual Studio Code와 같은 개발 환경을 통해 Windows, Linux 또는 macOS에서 생산성을 유지합니다.
  • 안정적이고 기능이 풍부하며 사용하기 쉬운 언어, 프레임워크 및 도구의 공통 세트를 기반으로 구축합니다.

자주 묻는 질문

C#를 사용하여 URL에서 PDF를 생성하는 방법은 무엇입니까?

C#에서 IronPDF 라이브러리를 사용하여 URL에서 PDF를 생성할 수 있습니다. 이는 URL을 PDF 문서로 렌더링하기 위해 ChromePdfRenderer 클래스를 사용하는 것을 포함합니다.

웹 개발에 Blazor를 사용하는 주요 이점은 무엇입니까?

Blazor는 개발자가 C#을 사용하여 웹 애플리케이션을 구축할 수 있게 해주며, 클라이언트와 서버 간의 코드 공유를 허용합니다. 또한 기존 .NET 생태계를 활용하여 성능 및 생산성을 향상시키고 WebAssembly를 통해 최신 브라우저에 대한 지원을 제공합니다.

Blazor는 어떻게 네이티브 디바이스 기능과 통합될 수 있습니까?

Blazor는 Blazor Hybrid를 통해 네이티브 애플리케이션을 생성할 수 있으며, 이를 통해 컴포넌트가 네이티브로 실행되고 .NET을 통해 디바이스 기능에 접근할 수 있습니다. 또한 .NET MAUI와 같은 프레임워크를 활용하여 크로스 플랫폼 애플리케이션을 개발할 수 있습니다.

WebAssembly는 Blazor 애플리케이션을 어떻게 향상시키나요?

WebAssembly는 .NET 코드를 플러그인 없이 최신 브라우저에서 실행할 수 있게 함으로써 Blazor 애플리케이션을 향상시킵니다. 이를 통해 대화형 클라이언트 사이드 웹 애플리케이션을 가능하게 하며, JavaScript 인터페이스를 활용하여 브라우저의 전체 기능을 사용할 수 있습니다.

Blazor 서버 애플리케이션을 Visual Studio에서 어떻게 생성할 수 있습니까?

Visual Studio에서 Blazor 서버 애플리케이션을 생성하려면 새 프로젝트를 시작하고 Blazor Server App 템플릿을 선택하고 프로젝트 이름을 제공하며 대상 프레임워크를 선택한 다음 프로젝트를 생성합니다. 이 과정은 Blazor Server 앱의 필요한 구조를 설정합니다.

Blazor의 JavaScript Interoperability란 무엇입니까?

JavaScript Interoperability, 또는 JS interop은 Blazor에서 .NET 코드가 브라우저에서 실행되어 JavaScript와 상호 작용할 수 있게 하는 기능으로, Blazor 애플리케이션 내에서 브라우저의 전체 기능을 사용할 수 있게 합니다.

Blazor 애플리케이션은 Docker를 사용하여 배포할 수 있습니까?

예, Blazor 애플리케이션은 Docker를 사용하여 배포할 수 있으며, 이를 통해 다양한 서버 환경에서 애플리케이션을 관리하고 배포하기 쉽게 하며, 확장성과 현대적 호스팅 플랫폼과의 통합을 향상시킵니다.

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

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

제이콥은 맨체스터 대학교에서 토목공학 학사 학위(BEng)를 최우등으로 취득했습니다(1998~2001). 1999년 런던에서 첫 소프트웨어 회사를 설립하고 2005년 첫 .NET 컴포넌트를 개발한 후, 마이크로소프트 생태계 전반에 걸쳐 복잡한 문제를 해결하는 데 전문성을 발휘해 왔습니다.

그의 대표 제품인 IronPDF 및 Iron Suite .NET 라이브러리는 전 세계적으로 3천만 건 이상의 NuGet 설치 수를 기록했으며, 그의 핵심 코드는 전 세계 개발자들이 사용하는 다양한 도구에 지속적으로 활용되고 있습니다. 25년의 실무 경험과 41년의 코딩 전문성을 바탕으로, 제이콥은 차세대 기술 리더들을 양성하는 동시에 기업 수준의 C#, Java, Python PDF 기술 혁신을 주도하는 데 주력하고 있습니다.

아이언 서포트 팀

저희는 주 5일, 24시간 온라인으로 운영합니다.
채팅
이메일
전화해