(C#) ThreadLocal<T>와 AsyncLocal<T>의 차이점

멀티 스레드 환경에서 각 스레드별로 하나의 공통 데이터에 접근하여 처리 될때 스레드 마다 원자성을 보장하면서 데이터를 다뤄야 하는 상황이 발생할 수 있습니다. 이때 제공 되는것이 Thread Local Storage(TLS) 변수라는 것이 있습니다. 쉽게 말해 tls변수는 스레드별 고유한 데이터를 저장(?)할 수 있는 공간이라고 이해 하면 됩니다. 또한 이 tls변수는(이하 거론되는 ThreadLocal<T> AsyncLocal<T> 동일) 자체적으로 데이터 원자성이 보장되기에 lock없이 접근하여 사용이 가능합니다.

더보기

(ASP.NET Core) SignalR 클라이언트 인증 처리 및 인증 정보 기준 특정 클라이언트에게 전송 처리 (feat JWT인증)

지난 글에서 JWT인증 처리 방법에 대해 설명했었습니다. 이번 글은 지난 글 JWT인증을 사용해서 ASP.NET Core 에서 SignalR 호스팅시 인증된 클라이언트만 접속을 허용하고 인증된 클라이언트 특정에게 RPC메서드 통신을 하는 방법입니다.

더보기

(WPF) Window Base 구성하기 with DevExpress 테마 적용

WPF프로젝트 개발에서 커스텀 하게 윈도우 크롬을 제거하고 윈도우 타이틀바, 컨트롤박스를 구현하는 과정에서 같은 스타일의 윈도우를 팝업 윈도우 형식으로 여러개 사용해야 하는 상황 이 생겨 귀찮게 매번 각 윈도우를 꾸미지 않고 기본 스타일을 Base로 만들어서 사용할 수 있도록 구현해봤다. 동시에 기본 스타일을 사용하면서 DevExpress의 테마도 같이 사용해야 하는 환경에서 구현하게 되었다.

더보기