블레이저에 대한 관심이 생겨,
만지작 거리다보니, 블레이저 프로젝트 템플릿 종류에 따른 차이가 궁금해졌다.
템플릿 이름 약식 이름 언어 태그
---------------------------------------------- -------------------------- ---------- ------------------------------------------------------------------------------
Blazor WebAssembly 독립 실행형 앱 blazorwasm [C#] Web/Blazor/WebAssembly/PWA
Blazor 웹앱 blazor [C#] Web/Blazor/WebAssembly
블레이저 서버 앱 blazorserver [C#] Web/Blazor
Blazor는 Front-End Web Framework 이다.
템플릿은 크게 3가지로 나눌 수 있다. (호스팅 모델에 따른 분류)
1. Blazor Server
2. Blazor WebAssembly
3. Blazor WebApp
Blazor Server는 로직이 서버에서 실행되며, UI 업데이트를 위해 SignalR을 사용한다.
(서버렌더링 방식이라고 생각하면 쉽다.)
Blazor WebAssembly는 이름대로 WebAssembly로 컴파일되는 웹앱이다.
(Server 정적파일만 전송하며, React나 Vue같은 방식과 동일하다)
Blazor WebApp은 위 2개를 하이브리드 짬뽕하여 장점을 살린 구조이다.
WebAssembly를 로드하는 동안, Server-side pre-redering된 페이지를 보여주어 초기 로딩 속도를 개선하였다.
어떤걸 고르지?
Blazor Server와 Blazor WebAssembly의 장단점은 next.js vs react 같은 느낌이라서, 좀 명확한 편
Blazor WebApp은?? 장점만을 살렸다고는 하나, 서버 + 클라이언트 양쪽을 신경써야하고, 구조도 복잡하다.
하지만 걱정할 필요는 없다. Blazor Server는 .net7.0이후, 즉, .net8.0부터 템플릿을 지원하지 않고 Blazor WebApp으로 통합되었다. (현재 .net9.0까지 나온 상황)
서버렌더링의 장단점을 고려하여, Blazor WebAssembly or Blazor WebApp을 선택하면 되겠다.
ref:
https://medium.com/@meghnav274/blazor-server-vs-blazor-webassembly-vs-blazor-web-app-8fe8fc1cefeb