(C#) 참조 로컬과 참조 반환

이번엔 간단한 내용에 대해 포스팅 하려고 합니다. ref 키워드 (참조)에 관한 내용 입니다. C# 7 버전에서는 로컬 변수와 메서드가 반환하는 값을 참조형식으로 전달(메모리 주소를 넘김) 할 수 있는 ref키워드를 제공합니다. 간단한 샘플 코드를 통해 알아 보겠습니다.

더보기

(WPF) WPF MVVM 패턴에 대해

복잡한 프로그램일 수록 기본적인 설계단계에 있어 항상 다음과 같은 사항을 고려하지 않을 수 없습니다. 공통적 부분의 재사용성, 의존성 등 그리고 이런 고민은 어떻게 하면 효율적으로 사용자 인터페이스와 데이터를 시각적으로 연결 시켜주어야 할지 고민하기 마련 입니다. 이런 문제점을 해결하고자 많은 아키텍처 패턴들이 나와있습니다. WPF는 그중에서 MVVM 아키텍처 패턴을 대해 완벽히 지원하고 권장하는 프레임워크 입니다.

더보기

(JavaScript) 자바스크립트의 비동기 동작원리

자바스크립트는 흔히 싱글 스레드로 동작되는 스크립트 언어라고 불리우고 있습니다. 하지만 자바스크립트 에서도 비동기 적으로 코드를 처리 할 수 있습니다. 가령 특정 시간 이후 동작 시키는 타이머나 AJAX 처리 등이 있습니다. 그런데 어떻게 싱글 스레드에서 비동기로 처리가 되는 것일까요? 자바스크립트가 어떻게 비동기로 처리 되는지에 대해 알아보겠습니다.

더보기

(C#) 닷넷 스레드 비동기 프로그래밍 [TAP] (async/await)

닷넷에서는 비동기 프로그래밍 처리를 지원하는 방식이 여러가지 있습니다. 이를 닷넷에서는 ‘비동기 프로그래밍 패턴’이라고 정하고 있습니다. 비동기 프로그래밍 패턴은 세 가지의 패턴이 있습니다. IAsyncResult 형태의 콜백을 사용하는 APM 패턴(IAsyncResult 패턴) 링크 이벤트 기반의 EAP 패턴 링크 작업 기반의 TAP 패턴 이 방식은 .NET Framework 4에서 도입되었으며, 비동기 프로그래밍에 권장되는 방식 입니다. 링크

더보기

(C#) 닷넷 스레드 비동기 프로그래밍 (EAP)

닷넷에서는 비동기 프로그래밍 처리를 지원하는 방식이 여러가지 있습니다. 이를 닷넷에서는 ‘비동기 프로그래밍 패턴’이라고 정하고 있습니다. 비동기 프로그래밍 패턴은 세 가지의 패턴이 있습니다. IAsyncResult 형태의 콜백을 사용하는 APM 패턴(IAsyncResult 패턴) 링크 이벤트 기반의 EAP 패턴 링크 작업 기반의 TAP 패턴 이 방식은 .NET Framework 4에서 도입되었으며, 비동기 프로그래밍에 권장되는 방식 입니다. 링크

더보기

(C#) 닷넷 스레드 비동기 프로그래밍 (APM)

닷넷에서는 비동기 프로그래밍 처리를 지원하는 방식이 여러가지 있습니다. 이를 닷넷에서는 ‘비동기 프로그래밍 패턴’이라고 정하고 있습니다. 비동기 프로그래밍 패턴은 세 가지의 패턴이 있습니다. IAsyncResult 형태의 콜백을 사용하는 APM 패턴(IAsyncResult 패턴) 링크 이벤트 기반의 EAP 패턴 링크 작업 기반의 TAP 패턴 이 방식은 .NET Framework 4에서 도입되었으며, 비동기 프로그래밍에 권장되는 방식 입니다. 링크

더보기

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

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

더보기