inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

[C#/.NET 8.0]어서와, Blazor Server는 처음이지?

Blazor Server 소개 및 NET8.0 구경하기

Blazor web app 생성할때 질문있습니다.

해결된 질문

761

stone

작성한 질문수 5

1

C# postgresql .net blazor

답변 1

1

RAZOR

안녕하세요 stone님!

폭풍(?) 질문 덕에 저도 많이 배웁니다!

 

1) 프로젝트 생성시, 샘플로 있던 페이지 중에 counter 증가되는 것만 클라이언트쪽에 생성

  • counter page가 실행되고 유저와 상호작용하고 데이터 갱신하고 이런 모든 작업이 유저의 웹 브라우저에서 실행됨니다.

 

2) 나머지 페이지들은 서버에 생성

  • 렌더링이 서버에서 일어나고 그 결과만 R-Signal 을 통해 웹페이지에 뿌려지게 됩니다.

 

그리고 server에 생성된다는 말이 애매한데.. blazor server에서 이 server가 솔루션 밑에 특정 프로젝트를 말하는게 아니라 asp.net core 서버에서 렌더링을 해주고 웹 페이지에는 결과만 뿌려주는 방식을 말합니다. 그러니까 페이지가 다른 프로젝트에 있다고해서 뭐야.. 서버인데 왜 페이지가 여기있어? 이게 아닙니다ㅠ

 

DB 동작은 말씀하신대로 어디에서나 할 수 있습니다. 위처럼 렌더링 차이만 고려하면 됩니다.

아래는 Server 장단점인데 요구 사항+아래 장단점 고려해서 정하시면 됩니다.

 

Blazor Server 단점

렌더링 작업은 서버에서 수행되기에 항성 서버에 연결이 되어야 한다.
인터넷 연결이 잘못된 경우 사이트가 작동하지 않을 수 있다.
또한 Blazor Server를 사용하지않는 사이트와 큰차이로는
페이지를 전송을 한 후 다른 페이지가 요청이 있을때 까지 연결을 끊을 수 있는데,
Blazor를 사용하면 해당 연결(SignalR)이 항상 연결되있어야 한다.연결이 되있어야 하니 offline/PWA 모드는 없다.모든 클릭, 페이지 업데이트는 서버로 왕복해야 하므로 대기 시간이 길어질 수 있다.
Blazor Server는 변경된 데이터만 전송을 한다.
느린 응답 시간을 경험해 본 적이 없다. 라고 작자는 말한다.서버에 연결해야 하기에 해당 서버의 로드가 증가하여 확장이 어렵다.
이 문제를 해결하기 위해 Azure SignalR 허브를 사용하면 지속적인 연결을
처리하고, 서버가 콘텐츠 전송에 집중할 수 있다.
Azure SignalR Service란?
ASP.NET Core용 SignalR에서 허브 사용실행 할 수 있으려면 ASP.NET Core를 지원하는 서버여야 한다.

Blazor Server 장점

클라이언트가 다운받는 형태가 아주 작은형태로 전송된다 물론 충분히 코드가 포함되어 있다.서버에서 실행중이므로 앱은 서버의 기능을 최대한 활용 할 수 있다.사이트가 WebAssembly를 지원하지 않는 이전 웹브라우저에도 작동한다.코드가 서버에서 실행되며 서버에 남아 있으므로 코드를 디컴파일 할 수 없다.코드는 서버(또는 클라우드)에서 실행되므로 조직 내의 서비스 및 데이터베이스에 직접 호출 할수 있다.

실무에서는 WASM 선호합니다. off-line에서 실행되고 처음에 브라우저에 모든 파일만 다운 받아 놓으면 server도 필요없고 속도도 빠르고 서버 관련된 이슈들을 신경안써도 되니까요. 그런데 .NET 8.0에서는 auto 모드가 생겨서 상황에 맞게 switching되는 것 같습니다. 저도 더 공부를 해야겠지만요... 아래 블로그랑 유튜브 영상 참고해주세요! 도움이 되실겁니다.

 

https://amsomad.github.io/c%23/Web_Development_With_Blazor/

https://youtu.be/O7oaxFgNuYo?si=e53P_3K4a6ONpVnO

0

stone

답변주셔서 감사합니다.^^

근데...프로젝트가 2개로 구분되어서 생성되면...빌드시 어셈블리도 2개가 생성될 것이고...서버프로젝트쪽에서 참조프로젝트로 클라이언트 프로젝트를 참조하고 있는 구조인데..
2개의 프로젝트로 구분되는 것의 장점과
실제 IIS에 배포하는 것과 실행되는 구조를 잘 모르겠습니다.

휴...많이 어렵습니다.

섹션7 수업자료 업로드 부탁드립니다.

0

10

2

Dictionary Key를 int에서 string으로 변경한 이유에 대한 문의

0

14

1

프로젝트 질문 문의

0

42

1

Radzen.Blazor.RadzenTheme 오

0

262

4

Class 설계 후 Razor 에서 호출!

0

96

1

wpf 응용 질문

0

80

1

올려주신 소스코드 관련해서 질문드립니다.

0

178

2

Radzen 설치 관련해서 오류가납니다.

0

152

1

안녕하세요, Radzen 관련 질문 드립니다

1

268

1

PostgreSQL 설치

0

234

1

BlazroServerMaster를 인식하지 못하고 있는데요.

1

307

1

PostgreSQL 문의

2

254

1

버튼이 하나만 나오는 경우

2

218

1

새로운 테이블 추가방법?

1

309

2

삭제 후, GRID 재조회

1

334

2

화면 갱신

1

299

1

ASP.NET Core SignalR을 사용하는 방식의 장점이 있나요?

1

718

2

솔루션 배포(게시) 부분에서 질문있습니다.

1

376

1

razor 문법에서의 @표기

1

346

1

Grid 컴포넌트 사용에 대해서 질문있습니다.

1

382

2

홈페이지 실행

1

205

1

? 코딩하는 이유

1

318

1

BackUp DB > Failed

1

470

2

수업자료가 어디있는 거죠?

2

342

1