Q & A

시삽: 레드플러스 님 
게시판 이동:
 제목 : Re : 선생님 좋은 답변 감사드립니다!
글번호: 956
작성자: 레드플러스
작성일: 2021/08/09 오후 10:23:00
조회수: 2213

 

안녕하세요.

다음과 같이 간단히 답변드립니다.

 

1.

Blazor Server는 기존에 PHP, ASP, JSP, ASP.NET, ASP.NET Core, Windows Forms, WPF 등과 마찬가지로 직접 데이터베이스 연결 문자열을 사용하여 데이터베이스에 접근해서 데이터를 가져올 수 있습니다.

말 그대로 서버측 프로그래밍 환경입니다. Blazor Server와 ASP.NET Core는 한 몸으로 보셔도 됩니다. 

Blazor WebAssembly는 Angular, React, Vue.js 처럼 클라이언트 측 기술이며, 서버측의 데이터베이스에 연결하려면 반드시 ASP.NET Core Web API, Spring Boot와 같은 서버측 기술이 필요합니다.

이러한 서버측 기술에서 JSON으로 데이터를 넘겨 받아서 사용해야 합니다.

Blazor WebAssembly는 ASP.NET Core로 추가로 Web API를 구성해야 합니다.

참고로, 제 강의에서는 Blazor WebAssembly는 따로 사용하고 있지 않습니다. Blazor Server만으로 비즈니스 응용 프로그램을 구현하는데에는 큰 문제가 없어서 그렇습니다.

 

2. 

실시간 양방향 통신을 사용하려면,

ASP.NET Core MVC 또는 Blazor와 같은 곳에서 SignalR을 통해서 서버측의 데이터를 주고 받을 수 있습니다.

만약, 사용자가 많다면, Azure SignalR Service 등으로 확장해서 구현하면 되는데요. 일반적으로 초당 수만건 정도는 굳이 Azure SignalR Service를 사용할 필요도 없습니다.

Azure SignalR Service를 사용할 정도의 트래픽이 요구되는 환경이라면, 이미 돈을 충분히 벌고 있는 사이트이기에 그때에는 Azure SignalR Service를 써도 전혀 비용적인 문제는 없을 듯 합니다.

그리고, 

제 환경 또는 강의 환경에서는 VM과 Docker를 전혀 사용하고 있지 않습니다.

제 환경은 모두 Azure의 PaaS 환경으로 Azure App Service 내의 Azure Web App에 모든 서비스를 올려서 사용중입니다.

이러한 경우의 장점은 VM 환경 설정이 필요없이 Visual Studio에서 개발만하면 그 이후의 게시 작업은 게시 메뉴를 통해서 Azure Web App에 올려서 서비스하는데에만 포커스를 두고 관리하고 있습니다.

만약, WebApp에 사용자가 많은 경우에는 Azure Portal의 Azure Web App 메뉴에서 스케일링을 이용해서 인스턴스를 1개에서 n개로 늘려서 사용하면 됩니다.

이미, 많은 서비스를 이러한 환경으로 돌려왔기에 앞으로도 계속, VM과 도커를 제 강의에서는 보실 수 없을 것입니다.

 

이상입니다.

강의 들으시면서 궁금한 것 있으시면 언제든 문의주세요.

감사합니다.

 

 

 

 

 

 


On 2021-08-09 오후 4:41:00, '조은현' wrote:

 

 


선생님 짧게 답해주셔도 되는데 정성스러운 답변 정말 감사드립니다!
아직 개념이 부족하여 염치 불구하고 몇 개만 더 여쭙고 싶습니다!

1. 먼저 API-Layer가 필요한 경우를 정확하게 알고 싶습니다.
제가 이해한 바로는 로컬 어플리케이션 즉, Desktop Application(WinForm, WPF)이나 Mobile Application(Xamarin 등..)을 DB랑 연결시켜야 할 때는 Connection String이 노출되지 않도록 REST API를 구성하여 해당 API 서버를 통해서 데이터를 주고 받는 형식으로 구성한다고 알고 있습니다.

근데 Blazor의 경우 Server 개발과 WASM(Web Assembly) 개발이 나뉘어 있어 헷갈리는데요.
1-1) Blazor Server로 개발할 경우 Web API를 따로 구현할 필요 없이 그냥 Connection String을 통해 DB랑 편하게 연결하면 되는지 알고 싶습니다.

1-2) Blazor WASM(Web Assembly)의 경우 API Layer가 필요하다고 들었는데요.
해당하는 방식은 웹 상에서 실제로 Try.dot.net과 같이 웹에서 컴파일되어 실행되는 구조이므로
Connection String이 필요하고 결국 Client Broswer에 해당 Connection String이 노출되어 API Layer가 필요한 게 맞는 것인지
따라서 이 방식(Blazor WASM)을 쓸 경우에는 REST API 서버나, GRPC 서버를 따로 미리 구축하여 그것을 통해 연결하는 것이 옳은 것인지 알고 싶습니다.

2. 주신 답변을 바탕으로 생각해보니 제가 만약 DB를 지속적으로 모니터링하고 싶다면
Signal-r을 이용하는게 적합하다는 생각이 들었고 마침(?) Azure에서 Signal-R Service를 제공하고 있음에 이를 이용하여 Blazor Server를 개발해볼까 하는 생각중에 있습니다.

따라서 선생님께 정확히 보여드리고자 PT를 작성해보았는데요.

2-1) 기본적으로 아래의 그림과 같이 구성하고자 합니다.
Azure Signal-R Service를 이용하면 VM에서 실시간 동기 요소를 감당하지 않아도 되므로 부하가 적다고 들었습니다!
이와 같은 구성도를 가지고 개발하려고 하는데 혹시 조언해주실 것이 있을까요?
(이미지 1)


2-2) 근데 만약 동시 접속자수가 많아지게 되면 서버에서 클라이언트 쪽에 한꺼번에 보내주어야 할 정보도 많아지게 될텐데 이때 아래와 같이 Docker를 구축하여 개발한 서버 프로그램 각각을 각자의 Container에서 실행시키는 것이 옳은 생각인지 알고 싶습니다.

(이미지 2)


질문이 너무 많아 죄송합니다..
하지만 개발 방향을 맞게 설정하고 배워야 올바르게 배워나갈 수 있을 거 같아서 염치 불구하고 질문 올립니다.
긴 글 읽어주셔서 감사합니다!
 

 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트
  igbtkd
  2021-08-09 오후 2:14:35
감사합니다!!! 덕분에 어떻게 공부하고 사용해야 할 지 명확한 기준이 생겼습니다. :)
다음에 좋은 결과물 가지고 찾아뵐게요 ^_^

(댓글을 남기려면 로그인이 필요합니다.)

관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 클라우드에서 네트웍 드라이브로 연결해서 사용중 에러가 발생하였습니다. - 맑은하늘 2021-08-13 1779
  선생님 좋은 답변 감사드립니다! 이미지.zip(148 KB) 조은현 2021-08-09 1744
현재글 Re : 선생님 좋은 답변 감사드립니다! (1) - 레드플러스 2021-08-09 2213
다음글 안녕하세요. 데브렉에서 강의듣고 있는 학생이에요! 이미지 116.png(38 KB) 조은현 2021-08-08 1715
 
손님 사용자 Anonymous (손님)
로그인 Home