해결된 질문
작성
·
213
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