C# - async-await에서 lock 사용하기

출처 C#에서 비동기 메소드에서는 lock을 쓸 수 없다. 이 글은 그래도 lock을 사용 하고 싶을 때를 위한 것이다. lock이 필요한 경우를 예를 들면 아래처럼 더블 체크 락킹을 하고 싶을 때이다. // /이것이 여러 스레드에서 비동기에게 불리는 private static async ValueTask...
더 읽기

C# - .NET Core3.1에서 CORS 설정하기

출처 서버 사이드와 프론트 사이드가 다른 서버로 구현된 경우, Host된 포트 번호가 다르기 때문에 CORS 설정을 할 필요가 있다. 환경 Angular 8.2.14 .NET Core 3.1 서버 사이드: https://localhost:44342 프론트 사이드:http://localhost:4200 ※ localhost:4200는 Angular의 기본 포트 번호 문제 어떤 설정도 하지...
더 읽기

C++17 - atomic::is_always_lock_free

C++ 17은 atomic 클래스 템플릿에 is_always_lock_free라는 정적 멤버 상수가 정의 되어 있는데 C++11의 is_lock_free()의 static 멤버 버전이라고 생각하면 좋다. is_lock_free()를 사용하기 위해서는 atomic 클래스 오브젝트를 만들어야 하지만 is_always_lock_free는 만들지 않는다. namespace std { template < class T> class atomic {...
더 읽기

C# - .NET 로컬 툴 사용법

출처 .NET Core도구? .NET core 글로벌 툴 .NET Core 2.1에서 NuGet에 게재된 콘솔 응용 프로그램을 CLI 상에서 인스톨/실행/업데이트/언인스톨 하는 구조가 생겼다. 이들의 애플리케이션을 총칭해서 “.NET Core 툴” 이라고 부른다. npm에서 말하는 npm install -g tool 같은 것이다. 장점은 아래와 같다....
더 읽기

C# - 프로젝트에 C# 8과 null 허용 참조 타입 대응시키기

출처 C# 7의 클래스 라이브러리를 null 허용 참조 타입을 사용하는 C# 8로 업그레이드 하는 사례에 관한 글이다. 여기에 사용된 Tortuga Anchor 프로젝트는 MVVM 형식의 기본 클래스와 리플렉션 코드, 다양한 유틸리티 함수를 모아 놓은 것이다. 적당히 작고, 관용적 패턴과 일반적이지 않은...
더 읽기