담비의 개발블로그

[C#]@rendermode InteractiveServer 어노테이션 본문

언어&프레임워크/C#

[C#]@rendermode InteractiveServer 어노테이션

담비12 2026. 6. 5. 19:55

웹개발 진행시 Blazor Server의 대화형 모드로 동작하겠다고 선언하는 것이다.
이게 설정되어 있어야 사용자가 버튼을 클릭했을때 C# 코드가 즉각 반응하며, 서버와 브라우저가 SignalR(웹소켓)을 통해 실시간으로 데이터를 주고받는다.

InteractiveServer를 사용하지 않을 때 
- 동작 방식 : 서버가 C# 코드 전체를 읽어서 최종 결과물인 순수HTML만 브라우저로 보내고 연결을 끊는다.
- 특징
① 화면 로딩속도가 빠르다.
② 검색엔진최적화(SEO)에 좋다.
③ 이벤트 사용이 되지 않는다.(@Onclick = "SaveData"같은 동작이 불가)
- 사용 용도 : 눈으로 보기만 하는 페이지(블로그 글, 회사 소개 페이지, 단순 데이터 조회용 등등)

InteractiveServer를 사용할 때
- 동작 방식 : 브라우저와 서버 간에 SignalR이라는 실시간 비밀통신망(웹소켓)과 계속 연결을 유지한다.
- 특징
① 사용자가 버튼을 클릭하면 브라우저가 화면을 새로고침하지 않고 통신망을 통해 서버에 버튼이 눌렸다는 사실을 전달한다.
② 서버에서 C# 코드를 실행한 뒤, 바뀐 화면 부분만 다시 통신망으로 보내주어 화면이 부드럽게 바뀐다.(SPA방식)
③ 접속한 사용자 수만큼 서버가 연결을 유지해야해서 서버 메모리와 자원을 많이 사용한다.
- 사용 용도 : 데이터 입력이 필요한 모든 페이지(회원가입, 알림창 띄우기, 실시간 차트 변경 등등)