A: 블레이저페이지에서 블레이저동작을 배제하고 pure html, js로만 처리하세요
https://learn.microsoft.com/aspnet/core/blazor/file-uploads
블레이저서버를 프론트엔드로 운영하고있고, 블레이저페이지에서 <InputFile>가지고 브라우저에서 파일을 첨부받아 백엔드서버로 해당파일을 전달하는 경우를 상정해보면,
사실 그냥 브라우저에서 바로 백엔드API서버로 http post를 보내면 되는것에 중간에 블레이저가 끼는바람에 처리과정이 굉장히 비효율적이고 해괴해지는 문제가 발생하게됨.
파일첨부라는 개념 자체가 웹문서에서 하던짓을 웹앱에서 하려는 간극에서 혼돈이 발생하는것임.
프론트가 블레이저서버인경우, 이름이 그렇듯이 원래 얘는 백엔드가 따로 없이 그냥 혼자 풀스택으로 써도 되는것임. 그런애들 굳이 <InputFile> 을 통해 파일을 SignalR로 수신받고서 백엔드로 유통하느라 불필요한 불안정성과 트래픽을 감수해야하게됨. 블레이저가 데이터 유통과정에서 끼어선 안됨.
블레이저Wasm인 경우도 만만치 않게 해괴한 상황에 봉착함. <InputFile>을 통해 파일을 블레이저웹어셈블리로 첨부했다는게, 그냥 로컬에있던 데이터가 브라우저 메모리로 이동한것일뿐임. 그냥 브라우저에서 첨부파일 백엔드로 쏴주면 되는것에 쓸데없이 최첨단 블레이저 웹어셈블리 처리가 끼어있느라 클라이언트의 시간과 메모리를 낭비함.
불필요한 복제, 용량제한, 메모리낭비 등 블레이저가 끼어서 무엇하나 득볼게 없음. 애초에 블레이저를 쓸거면 프론트와 백엔드를 따로 구분하는 가장 최신의 전통을 중단하고 블레이저 웹앱 단 한곳으로 처리를 통합하는것이 맞음. 기성 웹개발자가 블레이저를 단순히 새로나온 웹프레임워크 정도로 이해하고 찍먹해보려고 하다보면 쉽게 당할만한 함정임
블레이저는 웹기술을 활용해 웹이 안할법한짓을 웹에서 할때 가장 빛을 발함.
댓글 0