Blazor .NET 8 (개발자 튜토리얼)
전체 스택 웹 UI 프레임워크인 Blazor는 .NET 8.0의 릴리스와 함께 크게 발전했습니다. 이 업데이트는 C#과 .NET을 사용하여 인터랙티브하고 현대적인 웹 애플리케이션을 구축할 수 있도록 다양한 기능과 향상을 제공합니다.
이 기사에서는 Blazor .NET 8.0의 주요 측면을 탐구하고 새로운 렌더링 모드, 프로젝트 템플릿 및 도구 개선 사항을 살펴볼 것입니다.

Blazor 렌더링 모드 이해하기
Blazor는 .NET 8.0에서 세 가지 렌더링 모드를 도입합니다:
- 정적 서버 렌더링: 최적의 성능을 위한 정적 HTML을 생성합니다.
- 인터랙티브 서버 렌더링: 초기 렌더링 및 인터랙티브를 위해 서버 측 ASP.NET Core 런타임을 활용합니다.
- 인터랙티브 WebAssembly 렌더링: 클라이언트에서 후속 렌더링 및 인터랙티브를 위해 .NET WebAssembly 런타임을 활용합니다.
다재다능한 인터랙티브 자동 렌더링
하이라이트 중 하나는 .NET WebAssembly 런타임을 사용하여 클라이언트에서 콘텐츠를 위한 서버 측 렌더링과 후속 렌더링 및 인터랙티브를 결합한 인터랙티브 자동 렌더링 모드입니다. 이는 더 빠른 앱 시작 경험을 제공하여 개발자에게 매력적인 옵션이 됩니다.
Blazor 웹 앱 템플릿 소개
.NET 8.0은 Blazor Server와 Blazor WebAssembly 호스팅 모델의 강점을 결합한 통합 출발점인 Blazor 웹 앱 템플릿을 도입했습니다.
이 템플릿에는 정적 서버 렌더링, 스트리밍 렌더링, 향상된 탐색 및 폼 처리를 포함한 새로운 기능이 통합되어 있습니다. 프로젝트 템플릿의 통합은 개발 과정을 간소화합니다.
Blazor 웹 앱을 위한 간소화된 JS 초기화기
기존 JS 초기화기는 Blazor 웹 앱을 위한 새로운 세트로 대체되어 로딩 프로세스 사용자 정의, 로깅 수준 및 기타 옵션과 같은 작업에 대한 더 나은 제어를 제공합니다. 이 변경은 개발 경험을 향상시키고 .NET 8.0의 호스팅 모델 통합 목표와 일치합니다.
프리렌더링과 통합 지침 분할
프리렌더링 및 통합에 대한 지침을 별도의 기사로 분할하여 보다 집중된 범위를 제공합니다. 이 변경은 이해 및 구현을 단순화하여 개발자가 최상의 실무를 따라가기가 더 쉬워지도록 합니다.
Blazor 웹 앱에서 무결한 상태 지속
Blazor 웹 앱은 이제 프리렌더링 중에 생성된 모든 앱 수준의 등록된 상태를 자동으로 지속합니다. 이것은 Persist Component State Tag Helper의 필요성을 제거하여 컴포넌트 상태의 지속 및 읽기 프로세스를 간소화합니다.
향상된 양식 처리 및 모델 바인딩
.NET 8.0은 모델 바인딩 및 데이터 유효성 검사를 포함한 Blazor 컴포넌트에 대한 향상된 양식 처리 기능을 제공합니다. 프레임워크는 데이터 계약 속성을 존중하여 개발자가 양식 데이터가 모델에 바인딩되는 방식을 더 많은 제어할 수 있게 합니다. 위조 방지 지원의 도입은 양식 제출에 추가적인 보안 계층을 추가합니다.
향상된 탐색 및 양식 처리
Blazor .NET 8.0의 정적 서버 렌더링은 페이지 탐색 및 양식 처리에 있어 중요한 개선을 도입합니다. 전통적으로, 양식 제출이나 탐색 시 전체 페이지 새로고침이 발생했습니다.
향상된 탐색 기능을 사용하면 Blazor는 요청을 가로채 연산 요청을 수행하고, 브라우저 DOM에 렌더된 응답 콘텐츠를 원활하게 패치합니다. 이것은 전체 페이지 새로고침을 피하게 하여 페이지 로드를 더 빠르고 부드럽게 하고, 더 많은 페이지 상태를 보존합니다.
향상된 탐색은 blazor.web.js 스크립트가 로드될 때 기본적으로 활성화되며, 특정 양식에 대해 옵션으로 활성화할 수 있습니다. 새로운 향상된 탐색 API를 통해 개발자가 현재 페이지를 프로그래밍적으로 새로 고침할 수 있으며, 사용자 경험에 대한 제어력을 더욱 높입니다.
스트리밍 렌더링
Blazor .NET 8.0은 장기 실행 비동기 작업을 수행하는 페이지에 대한 사용자 경험을 향상시키는 강력한 기능인 스트리밍 렌더링을 소개합니다. 스트리밍 렌더링을 사용하면 비동기 작업이 진행 중일 때 페이지가 플레이스홀더 콘텐츠를 렌더할 수 있습니다.
작업이 완료되면, 업데이트된 콘텐츠가 동일한 응답 연결을 통해 클라이언트로 스트리밍되고 DOM에 원활하게 패치됩니다. 이 접근 방식은 앱의 기본 레이아웃이 빠르게 렌더되도록 하며, 콘텐츠가 사용 가능해지자마자 페이지가 업데이트됩니다.
키드 서비스 주입
Blazor는 이제 Inject 속성을 사용하여 키가 있는 서비스를 주입하는 것을 지원합니다. 키는 종속성 주입 시나리오에서 서비스 등록 및 소비의 범위를 지정할 수 있게 합니다.
새로운 InjectAttribute.Key 속성은 개발자가 주입할 서비스의 키를 지정할 수 있게 하여 서비스 범위에 대한 새로운 가능성을 열어줍니다.
HttpContext을 캐스캐이딩 매개변수로 액세스하기
Blazor .NET 8.0은 현재 HttpContext에 정적 서버 구성 요소에서 캐스캐이딩 매개변수로 접근할 수 있는 기능을 도입합니다. 이 개선은 HTTP 컨텍스트와 관련된 헤더 또는 기타 속성을 검사하고 수정하는 데 특히 유용합니다.
ASP.NET Core 외부에서 Razor 컴포넌트 렌더링
Blazor .NET 8.0은 HTTP 요청의 컨텍스트 외부에서 Razor 컴포넌트를 렌더링할 수 있는 가능성을 열어줍니다. 이 유연성을 통해 개발자는 ASP.NET Core 호스팅 환경과 독립적으로 Razor 컴포넌트를 문자열 또는 스트림으로 직접 렌더할 수 있습니다.
이 기능은 특히 이메일이나 정적 사이트 콘텐츠 등 HTML 조각을 생성해야 하는 시나리오에서 유용합니다.
섹션 지원
Blazor .NET 8.0에서는 SectionOutlet 및 SectionContent 구성 요소의 도입이 콘텐츠 관리를 혁신합니다. 이 컴포넌트는 개발자가 레이아웃에서 플레이스홀더를 정의하고, 나중에 특정 페이지에 의해 채워지게 합니다.
섹션은 고유한 이름이나 객체 ID를 사용하여 참조할 수 있으며, 동적 웹 레이아웃을 구성하는 데 대한 유연성과 재사용성을 제공합니다.
오류 페이지 지원
.NET 8.0의 Blazor 웹 앱은 이제 강력한 오류 페이지 지원을 갖추고 있으며, 개발자가 ASP.NET Core 예외 처리 미들웨어와 함께 사용할 수 있는 사용자 정의 오류 페이지를 정의할 수 있도록 합니다.
기본 오류 페이지 (Components/Pages/Error.razor)는 일관된 사용자 경험을 제공합니다. 상호작용이 활성화된 경우에도 오류 페이지는 정적 서버 컴포넌트로 렌더되어 예외 시나리오 동안 안정성을 보장합니다.
QuickGrid의 실험적에서 필수로의 전환
QuickGrid, 고성능 그리드 구성 요소는 .NET 8에서 Blazor 프레임워크의 필수적인 부분이 되어 실험적 상태에서 졸업하였습니다.
이 컴포넌트는 정렬, 필터링, 페이징, 가상화 같은 강력한 기능을 제공하면서 표 형식의 데이터를 쉽게 표시할 수 있도록 해줍니다. ASP.NET Core Blazor QuickGrid 문서에서 QuickGrid에 대해 더 알아보세요.
명명된 요소로의 라우팅
Blazor .NET 8.0은 표준 URL 조각을 사용하여 특정 HTML 요소로 직접 이동할 수 있는 클라이언트 측 라우팅에 대한 지원을 도입합니다. 표준 id 속성을 사용하여 HTML 요소의 식별자를 지정함으로써, Blazor는 URL 조각이 요소 식별자와 일치할 때 그 요소로 원활하게 스크롤합니다.
루트 수준 계승 값
Blazor .NET 8.0은 전체 컴포넌트 계층에 대해 등록할 수 있는 루트 수준 계승 값을 도입하여 계승 값을 향상시킵니다. 이름 지정된 계승 값과 업데이트 알림 구독이 이제 지원되어, 유연성과 제어를 제공합니다.
가상화된 빈 콘텐츠
Virtualize 구성 요소의 새로운 EmptyContent 매개변수는 구성 요소가 로드된 후 항목이 비어 있거나 ItemsProviderResult<t>.TotalItemCount이 0일 때 콘텐츠를 제공할 수 있게 합니다.
이것은 개발자가 더 직관적이고 사용자 친화적인 인터페이스를 만들 수 있게 합니다.
회로 관리 및 SignalR 모니터링
Blazor .NET 8.0은 상호작용 가능한 서버 컴포넌트가 남아 있지 않을 때 회로를 닫을 수 있는 기능을 도입합니다. 이 최적화는 서버 리소스를 해제하고 전체 성능을 향상시킵니다.
또한, 이제 개발자는 서버 사이드 앱에서 CircuitHandler에 대한 CreateInboundActivityHandler 메서드를 사용하여 인바운드 회로 활동을 모니터링할 수 있습니다.
Jiterpreter를 통한 빠른 런타임 성능
Jiterpreter는 .NET 8의 새로운 런타임 기능으로 WebAssembly에서 실행할 때 부분적인 Just-in-Time (JIT) 컴파일 지원을 도입합니다. 이 결과로 런타임 성능이 향상되어 Blazor WebAssembly 애플리케이션과의 상호작용에서 부드러운 사용자 경험을 제공합니다.
사전 컴파일(AOT) SIMD 및 예외 처리
Blazor WebAssembly의 AOT 컴파일은 이제 기본적으로 WebAssembly 고정 폭 SIMD 및 WebAssembly 예외 처리를 사용합니다. 이 전략적 선택은 런타임 성능을 크게 향상시켜 더 효율적이고 반응성이 뛰어난 사용자 경험을 제공합니다.
웹 친화적 배포를 위한 Webcil 패키징
Blazor WebAssembly는 이제 웹 친화적인 .NET 어셈블리 패키징인 Webcil을 사용합니다. 이는 .dll 파일의 다운로드 또는 사용을 차단하는 환경에서도 호환성을 보장하며, 배포 문제를 해결합니다. Webcil은 Blazor WebAssembly 앱에서 기본적으로 활성화되어 있습니다.
Blazor WebAssembly 디버깅 개선
Blazor WebAssembly 앱을 디버깅하는 것이 .NET 8에서는 더욱 간소화되었습니다. 디버거는 이제 Visual Studio 환경 설정에서 구성된 위치에서 심볼 데이터를 다운로드하여 NuGet 패키지를 사용하는 앱에 대한 디버깅 경험을 향상시킵니다.
또한, 지금은 Firefox에서도 디버깅을 지원하며, 원격 디버깅에 대한 구성 및 .NET WebAssembly 디버깅 프록시를 통한 연결이 필요합니다.
콘텐츠 보안 정책(CSP) 호환성
Blazor WebAssembly .NET 8.0에서는 콘텐츠 보안 정책(CSP)을 지정할 때 unsafe-eval 스크립트 소스를 활성화할 필요가 없습니다. 이 개선 사항은 보안 구성을 간소화하여 Blazor WebAssembly 애플리케이션에 강력한 CSP를 쉽게 적용할 수 있게 해줍니다.
컴포넌트 라이프사이클 외부의 예외 처리
새로운 ComponentBase.DispatchExceptionAsync의 도입으로 개발자는 Razor 구성 요소의 라이프사이클 호출 스택 외부에서 발생하는 예외를 처리할 수 있게 됩니다.
이 기능은 컴포넌트 코드가 예외를 라이프사이클 메소드 예외처럼 처리할 수 있게 하여 보다 일관되고 제어된 오류 처리 메커니즘을 보장합니다.
Iron Suite 소개
Iron Suite는 Iron Software에서 개발한 여러 가지 유용한 라이브러리로 구성되어 있어 개발자가 강력한 Blazor 앱을 구축할 수 있도록 해줍니다. PDF 기능 추가, Excel 또는 CSV 파일 기능, 이미지-텍스트 인식 기능, 바코드 및 QR 코드 생성 및 판독, 파일 압축 및 해제 기능을 제공합니다.
Iron Suite는 Blazor WebAssembly 호스팅 모델을 사용하거나 Blazor WebAssembly 앱, Blazor 서버 앱, ASP.NET Core MVC APP, ASP.NET Core WEB API, 혹은 .NET 런타임에서 구축된 모든 애플리케이션을 포함한 모든 Microsoft 기술을 사용한 웹 개발에 고려할 완벽한 선택입니다.
Iron Suite의 라이브러리
- IronPDF는 PDF 파일을 매끄럽게 생성하고 조작 및 데이터 추출을 지원합니다.
IronPDF의 뛰어난 기능은 전체 레이아웃과 스타일을 보존하여 HTML에서 PDF로 변환하는 것입니다. 웹 콘텐츠, 보고서, 청구서, 문서에서 PDF를 생성하는 데 적합합니다. HTML 파일, URL 또는 HTML 문자열을 PDF 파일로 변환할 수 있습니다.
```csharp
using IronPdf;
class Program
{
static void Main(string[] args)
{
var renderer = new ChromePdfRenderer();
// 1. Convert HTML String to PDF
var htmlContent = "<h1>Hello, IronPDF!</h1><p>This is a PDF from an HTML string.</p>";
var pdfFromHtmlString = renderer.RenderHtmlAsPdf(htmlContent);
pdfFromHtmlString.SaveAs("HTMLStringToPDF.pdf");
// 2. Convert HTML File to PDF
var htmlFilePath = "path_to_your_html_file.html"; // Specify the path to your HTML file
var pdfFromHtmlFile = renderer.RenderHtmlFileAsPdf(htmlFilePath);
pdfFromHtmlFile.SaveAs("HTMLFileToPDF.pdf");
// 3. Convert URL to PDF
var url = "http://ironpdf.com"; // Specify the URL
var pdfFromUrl = renderer.RenderUrlAsPdf(url);
pdfFromUrl.SaveAs("URLToPDF.pdf");
}
}
```
- IronOCR (광학 문자 인식)은 스캔된 이미지나 PDF에서 텍스트를 추출하여 데이터 접근성을 향상시킵니다.
- IronXL은 Excel 스프레드시트를 읽고, 쓰고, 조작하는 데 효율적입니다.
- IronBarcode는 다양한 형식의 바코드를 생성하고 읽어 데이터 인코딩과 검색을 용이하게 합니다.
- IronQR는 머신 러닝을 사용하여 QR 코드를 만들고 읽습니다.
- IronWebScraper는 웹 기반 애플리케이션의 능력을 향상시켜 웹사이트에서 유용한 데이터를 추출합니다.
- IronZIP는 파일을 압축 및 해제하여 데이터 저장 및 전송 프로세스를 효율화합니다.

Iron Suite의 차별화 요소
- 전체 Suite에 접근하여 두 개의 개별 제품 가격으로 최대한의 투자 가치를 제공합니다.
- Windows, macOS, Linux 어디에서든 호환성을 보장하는 (거의) 모든 플랫폼을 지원합니다.
- 다운로드부터 생산까지 빠르게 진행할 수 있으며, 최소 5분 만에 실행 가능합니다.
- 모든 기능에 대한 자세한 문서와 예제를 제공하여 개발 과정 전반에 걸쳐 명확성과 지침을 제공합니다.
- 24/5 동안 모든 질문에 대해 서포트를 제공하는 전담 엔지니어 팀이 있어 개발 경험을 원활하게 보장합니다.
- Iron Suite는 30일 동안 묻지 않는 환불 정책을 제공하여 자신감과 마음의 평화를 줍니다.
결론
결론적으로, Blazor .NET 8.0의 발표는 C#과 .NET을 통한 풀스택 웹 UI 개발의 진화에서 중요한 이정표입니다.
새로운 렌더링 모드, Blazor Web App 템플릿, 강화된 내비게이션 및 수많은 다른 기능의 도입으로 현대적이고 상호작용적인 웹 애플리케이션을 만들고자 하는 개발자에게 매력적인 선택이 됩니다.
Blazor .NET 8.0은 강화된 폼 처리, 스트리밍 렌더링, 키드 서비스 주입 기능을 도입하여 개발에 깊이와 유연성을 더합니다.
Iron Software의 Iron Suite 도입은 Blazor의 기능을 보완하여 .NET 생태계 내 문서 관련 작업을 위한 포괄적인 도구 세트를 제공합니다.
Blazor .NET 8.0은 Iron Suite를 활용하여 개발자가 강력하고 풍부한 기능의 웹 애플리케이션을 만들 수 있게 합니다.
강력한 기능, 향상된 성능, 활발한 개발자 커뮤니티의 지원을 결합하여 Blazor는 현대 웹 개발을 위한 매력적인 선택으로 자리 잡고 있습니다.
자주 묻는 질문
Blazor 애플리케이션에서 HTML을 PDF로 변환하려면 어떻게 해야 합니까?
Blazor 애플리케이션에서 HTML 문자열을 PDF로 변환하기 위해 IronPDF의 RenderHtmlAsPdf 메서드를 사용할 수 있습니다. 이 메서드는 Blazor 서버 및 Blazor WebAssembly 모델 모두와 호환됩니다.
Blazor .NET 8.0의 새로운 렌더링 모드는 무엇입니까?
Blazor .NET 8.0은 성능과 상호작용성을 최적화하도록 고안된 정적 서버 렌더링, 대화형 서버 렌더링, 대화형 WebAssembly 렌더링의 세 가지 새로운 렌더링 모드를 도입합니다.
Iron Suite는 Blazor 애플리케이션에 어떻게 도움을 주나요?
Iron Suite는 PDF 처리, OCR, Excel 조작, 바코드 생성과 같은 기능을 제공하여 강력한 웹 애플리케이션 개발에 필수적인 Blazor 애플리케이션을 강화합니다.
Blazor .NET 8.0의 인터랙티브 자동 렌더링 모드는 무엇인가요?
Blazor .NET 8.0의 인터랙티브 자동 렌더링 모드는 서버 측 렌더링과 클라이언트 측 상호작용을 결합하여 .NET WebAssembly 런타임을 활용해 애플리케이션 시작을 빠르게 합니다.
Blazor .NET 8.0에서 폼 처리를 어떻게 개선할 수 있나요?
Blazor .NET 8.0는 향상된 모델 바인딩, 데이터 검증, 위조 방지 지원을 통해 폼 데이터 관리에 대한 개발자의 제어를 강화합니다.
Blazor .NET 8.0에서 스트리밍 렌더링의 목적은 무엇인가요?
Blazor .NET 8.0의 스트리밍 렌더링은 긴 비동기 작업이 완료되는 동안 플레이스홀더 콘텐츠의 초기 렌더링을 허용하여 사용자가 페이지를 매끄럽게 업데이트할 수 있도록 합니다.
Blazor 웹 응용 프로그램 템플릿은 개발을 어떻게 간소화하나요?
Blazor .NET 8.0의 Blazor 웹 응용 프로그램 템플릿은 Blazor Server와 Blazor WebAssembly 모델을 통합하여 탐색 및 폼 처리 기능을 향상시켜 개발 과정을 간단하게 합니다.
Iron Software의 툴킷은 Blazor .NET 8.0을 어떻게 보완하나요?
Iron Software의 툴킷은 종합적인 문서 관련 기능을 제공하여 복잡한 문서 처리 작업을 처리할 수 있는 프레임워크의 능력을 강화하면서 Blazor .NET 8.0을 보완합니다.
Blazor 웹 애플리케이션에서 IronPDF를 사용하는 이점은 무엇인가요?
IronPDF는 강력한 PDF 생성 및 조작 기능을 제공하여 견고한 문서 처리 기능을 요구하는 Blazor 웹 애플리케이션을 구축하는 개발자에게 이상적인 선택입니다.
Blazor .NET 8.0에서는 디버깅에 어떤 개선이 이루어졌나요?
Blazor .NET 8.0은 개선된 심볼 데이터 다운로드 및 Firefox 지원 추가를 통해 WebAssembly 앱의 디버깅을 개선하여 디버깅 과정을 단순화합니다.




