전체 글
-
.net core에서 IServiceScopeFactory를 써야할 때프로그래밍 2025. 2. 7. 22:34
IoC Container에 등록된 서비스의 라이프 사이클이 다를 때 사용한다. AService라는 클래스가 등록될 때 Singleton이고BService라는 클래스가 등록될 때 Scope라면 AService는 BService를 참조할 수 없다. 즉, Singleton인 클래스는 하위 lifecycle에 해당하는 클래스 참조가 불가능하다. 따라서 참조 우선 순위는 Transiant 대표적으로 WorkerService 작성시 Service를 Scope, Transiant 로 등록할 경우 Worker에서 주입 받을 때 IServiceScopeFactory를 사용해서 주입받게 된다. 생각해보면 Singleton이 Instance가 메모리에 유일 존재일 때 (즉, 프로그램이 종료하기 전까지 해제 할 수 없는 ..
-
AWS S3 PresignedUrl Download프로그래밍 2025. 1. 14. 19:46
aws s3 presignedurl을 이용한 download시에, 특히 link download를 할 경우 다운로드가 아닌 브라우저에 그대로 노출되는 경우가 있다. 이럴 때 아래와 같이 처리하면 된다. public async Task GetDownloadUrl(string bucketName, string filename) { var request = new GetPreSignedUrlRequest() { BucketName = bucketName, Key = filename, Expires = DateTime.UtcNow.AddMinutes(10), ResponseHeaderOverrid..
-
Ant Design Blazor 소개프로그래밍 2025. 1. 7. 18:00
중국 알리바바에서 만든 Ant Design의 Blazor 포팅 프로젝트이다. 따라서, ant design react와 유사항 기능을 구현하고 있다. 다만, react 구현 처럼 매끄럽고 부드럽다는 느낌은 조금 떨어진다. blazor로 b2b 사이트를 개발해야 할 때 쓰면 좋은 라이브러리이다. Ant Design of Blazor Ant Design BlazorAnt Design Blazor Reuse Tabs The Blazor community has been clamouring for multiple tabs for over a year now, and it's been quite an achievement to finally implement a ReuseTabs component based on ..
-
MudBlazor 소개프로그래밍 2025. 1. 7. 17:57
Blazor 개발시 UI에 사용할 수 있는 라이브러리이다. Material UI 기준으로 작성된 라이브러리로 매우 깔끔하게 서버, WASM을 개발할 수 있다. 구동되는 모습을 보고 싶다면 아래의 사이트를 확인해 보자. MudExample MudExampleL o a d i n gnameofseokwonhong.github.io Alert - MudBlazor MudBlazor - Blazor Component LibraryBlazor Component Library based on Material Design. MudBlazor is easy to use and extend, especially for .NET devs because it uses almost no Javascript.mudblazor...
-
Blazor 서버에서 하지 말아야 하는 것 - 1칼럼 2025. 1. 7. 17:24
근래에 블레이저 서버로 사이트 개발할 일이 있어 개발 중 고민했던 사항에 대한 정리이다. 케이스는 아래와 같다. 1. 일정 시간 동안 측정된 데이터를 다운로드하여야 한다.2. 일정 시간에 제한은 없다.3. 따라서, 해당 데이터의 파일이 어느 정도 크기일지 알 수 없다. 구현한 케이스는 아래와 같다. 1. string[]를 byte64로 변환하여 javascript link로 download 하는 방식2. byte[]를 javascript link로 download 하는 방식3. file writer를 사용하여 직접 다운로드 하는 방식4. api로 filedownload 구현 후 link로 처리하는 방식 1번 2번 케이스는 서버 랜더링이므로 서버측 데이터가 가공 후 해석된 마크업을 생성해서 처리하는데 용량..
-
PDF를 구현해 보면서 느낀점.프로그래밍 2025. 1. 7. 17:14
이번 기회에 flutter pdf 와 c# quest pdf를 구현하면서 느낀점은 아래와 같다. 복잡한 표와 그래프를 그리는 점에서는 quest pdf에 높은 점수를 줄 수 있다.미리보기 기능도 독자적인 프로그램으로 제공하고 있으므로 flutter와 같이 수정한 상태를 실시간으로 보면서 작업할 수 있다.물론, .net hot-reload의 문제가 여전히 있으므로 복잡한 화면을 그리는 경우에는 제대로 동작하지 않기도 하고 몇번의 reload 이후에는 다시 시작해야 하는 문제도 있다.그럼에도 불구하고 각종 표와 그래프를 그리는 자유도에서는 quest pdf에 더 높은 점수를 주고 싶다. flutter pdf는 복잡한 화면을 그리기에는 적합하지 않다.단순 기능과 svg를 활용하여 복잡한 화면을 그릴 수 있지만..