본문 바로가기
[C#] Global Using 1. global using - global using은 C# 10에서 도입된 새로운 기능- 네임스페이스를 전역적으로 사용할 수 있도록 하는 키워드- 이를 통해 모든 파일에서 공통으로 사용하는 네임스페이스를 매번 using 구문으로 선언할 필요 없이 한 번에 선언할 수 있음-  만약 global using문과 일반 using 문이 혼합되어 있는 경우에는, 모든 global using문이 일반 using 문 앞에 선언되어야함.  // GlobalUsing.cs 파일global using System;global using System.Text;global using System.IO;  2. global using static  - using static은 타입(type)을 import 하여 해당 타입 안.. 2024. 8. 5.
오버헤드 🖥️ 오버헤드(OverHead)OverHead 는 시스템의 리소스를 소모하면서도 실제 작업의 주요 성능에 기여하지 않는 추가적인 비용이나 부하를 의미. 컴퓨터 과학에서 오버헤드는 다양한 맥락에서 발생할 수 있음.  요약 : 리소스를 소모하는 추가적인 비용이나 부하 오버헤드의 종류  1. 함수 호출 오버헤드- 함수 호출 시 스택 관리, 레지스터 저장 및 복원, 프로시저 호출 등의 추가적인 작업 때문에 발생하는 비용 ex) - 스택 프레임 생성 및 제거 : 함수 호출 시 현재 함수의 상태를 스택에 저장하고, 호출된 함수의 스택 프레임을 생성: 함수가 종료되면 프레임 제거하고, 이전 함수의 상태를 복원  - 파라미터 전달: 함수 호출 시 인자들을 스택이나 레지스터를 통해 전달  - 프로시저 호출 및 반환: .. 2024. 7. 31.
[MagicOnion] StreamingHub, Filter 🧅 [MagicOnion] StreamingHub, FilterStreamingHub - StreamingHub is a fully-typed realtime server client communication framework. - 스트리밍 허브는 완전히 타입화된 서버 클라이언트  실시간 통신 프레임워크다.   - Using the StreamingHub real-time communication service, the server can broadcast data to multiple clients - 스트리밍 허브는 실시간 커뮤니케이션 서비스를 사용한다, 그리고 서버는 다수의 클라이언트한테 데이터를 브로드캐스트 할 수 있다.Filter - MagicOnion filter is powerful f.. 2024. 7. 30.
비동기에서[async/await] lock 사용하기 SemaphoreSlim 클래스를 사용하면 비동기에서 lock을 사용할 수 있다.  AsyncLock.cs namespace Common;public sealed class AsyncLock{ // 한번에 하나의 스레드만 접근 가능하도록 설정되어, 사실상 뮤텍스처럼 동작한다. private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(1, 1); // 동시 실행 제한 수 3 //private readonly SemaphoreSlim _semaphore = new SemaphoreSlim(3); public async Task LockAsync() { await _semaphore.WaitAsync(); .. 2024. 7. 11.
[.net] nullable reference types 관련 경고 처리 .NET 8.0으로 신규 프로젝트 개발중인데, string 변수만 쓰면 위에처럼 자꾸 표시되서 이게 갑자기 왜 뜨지? 라고 생각했었다. ( 이전엔 .NET Framework 로만 개발했었음) 찾아보니까  .NET Core 3.0부터 nullable reference types이 도입되었고, 그래서 string?처럼 nullable 표시를 하지 않으면 컴파일러가 경고를 낸다고 하였다.  이를 관리하려면 프로젝트 파일에 enable 또는 disable를 설정을 하면nullable reference types 기능을 활성화하거나 비활성화할 수 있다.   .NET 6, 이전에는 enable이 없어서 직접 추가했어야 했는데, 이후에는 projects에 이 속성이 포함이라  .csproj 파일을 열고 disable.. 2024. 7. 9.
[AWS] RDS - Single-AZ, Multi-AZ 📢 Single-AZ, Multi-ZA 란? - Single-AZ, Multi-AZ는 데이터베이스 고가용성을 관리하기 위한 옵션임   👤 Single-AZ 구성: RDS 인스턴스가 단일 가용 영역(AZ : Availiability Zone)에만 배치됨.장점:비용이 저렴함.단일 AZ 내에서 성능이 좋음.단점:가용성 측면에서 취약함. AZ 장애가 발생하면 데이터베이스가 사용할 수 없음. 👥 Multi-AZ 구성: RDS 인스턴스가 두 개(이상)의 다른 가용 영역에 복제됨.장점:고가용성: 하나의 AZ에 장애가 발생해도 다른 AZ에서 자동으로 페일오버(failover) 되어 가용성을 유지함.데이터 보호: 동기식 복제로 데이터가 안전하게 보존됨.단점:비용이 더 비쌈.쓰기 성능이 약간 낮을 수 있음(복제 오버.. 2024. 7. 3.