C# - 단일 실행 파일로 Ubuntu 18.04 에서 실행하기

출처 콘솔 앱을 만든다 Program.cs using System; using System.Threading; namespace SingleFileConsole { class Program { static void Main(string[] args) { while (true) { Console.WriteLine("Hello World!"); Thread.Sleep(1000); } } } } 애플리케이션을 발행한다 리눅스 플랫폼으로 지정해서 싱글 파일로 발행한다. dotnet publish...
더 읽기

Rust - 편리한 매크로 소개

출처 Rust의 표준 매크로는 하나의 파일에 모두 정리하고 있다. 문서에서 볼 수 있다. https://doc.rust-lang.org/src/std/macros.rs.html 일부 매크로는 컴파일러 매직이기도 하고, 보고있는 것만으로도 꽤 재미있다. Rust의 편리한 매크로 목록 compile_error! panic!은 런타임 오류를 내지만,이것은 컴파일 시에 에러를 낼 수 있는 매크로이다. 컴파일시...
더 읽기

Rust - bytes Read, Write

출처 Read 와 Write let mut bytes: &[u8] = &[1, 2, 3, 4, 5, 6]; let mut buf = [0;3]; bytes.read_exact(&mut buf).unwrap(); println!("read: {:?}, rest: {:?}", buf, bytes); 결과 read: [1, 2, 3], rest: [4, 5, 6] let bytes: Vec<u8>...
더 읽기

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 {...
더 읽기