인프런 커뮤니티 질문&답변

초보개발자님의 프로필 이미지
초보개발자

작성한 질문수

ASP.NET core Blazor 디테일 강의 - 초급편

SPA에 대한 질문 -2

해결된 질문

작성

·

218

1

위 질문 댓글에 작성했는데 혹시나 시스템상 새로운 댓글은 확인이 어려우실까 싶어 새 글로도 작성했습니다.
댓글에 답변해주시면 해당글은 삭제하도록 하겠습니다.

 

자세한 답변 감사합니다.

그런데 스택오버플로우에 질문했을때는 사람들이 다 블레이저 서버는 SPA라고 해서 혼란스럽네요 ㅠ

잘못된 정보인지 아니면 블레이저 서버자체가 SPA, MPA 라고 딱 떨어지는 개념이 원래부터 아닌건지 모르겠네요.

제가 받은 답변은
블레이저 서버는 SSR 이면서 SPA이다.
처음 로드된 페이지는 응용프로그램이다.
클라이언트 측 코드는 "페이지"를 업데이트하거나 "페이지" 사이를 이동하기 위해 DOM의 비트를 변경한다.
"페이지"는 HTML 페이지가 아닌 components이다.

요정도인데 사실 마지막 HTML 페이지가 아닌 컴포넌트이다 라는 부분은 잘 이해가 안가고

제가 이해한 느낌은 블레이저 서버는 랜더링이 필요할때 완전한 페이지 전체를 전달하고받지만 실제로 랜더링할때 SPA로 구현이 된다 라고 이해했는데 맞는지 잘 모르겠습니다.

도움이 되실까싶어 제가 질문한 글 링크 남깁니다.

c# - Is Blazer server SSR and SPA? - Stack Overflow

추가..

방금 학습하다 느낀바로는 MainLayout.razor에서 body만 변경되는 형태로 페이지 전환이 이루어진다.

업데이트 발 생시 랜더링 될때 diff(차이점)만 계산하여 DOM을 편집한다.

=> SPA 방식이다

이렇게 이해했는데 맞는지도 확인 부탁드립니다.

이해가 부족해 질문이 너무 중구난방이라 죄송합니다...

답변 2

1

백승철님의 프로필 이미지
백승철
지식공유자

오...! 저도 몰랐던 사실을 알려주셔서 감사합니다. 실제로 mainlayout.razor 안의 변화점을 감지해서 DOM을 바꾸는 부분은 정확하게 이해하신 것으로 보입니다. 강의 에서도 shared 페이지 안에 있는 것을 컴포넌트라고 부르기도 한 다고 말씀을 드렸습니다. 즉 정적으로 생성된 HTML 페이지와는 달리 Blazor는 HTML + C# 코드를 모듈화해 넣고 빼는 프로그램으로 이루어졌다고 생각하시면 될 것 같습니다. 이러한 방식은 SPA 리엑트, 뷰 같은 방법과 같기 때문에 스택오버플로우에서 그렇게 설명을 주신 것 같네요. SSR 이라고 하기도 애매하고 SPA 라고 하기 애매한게 블레이저라고 생각합니다. 저는 서버 사이드에 가깝다고 생각했는데 그렇지는 않았단 점이 놀라웠습니다.

0

답변 감사합니다.

웹, 서버쪽 공부가 미숙해 질문이 많은데도 친절하고 빠르게 답해주셔서

항상 많은 도움 받고있습니다.

초보개발자님의 프로필 이미지
초보개발자

작성한 질문수

질문하기