본문 바로가기

전체 글

(48)
[C#] Delegate ◈ 대리자(Delegate)란?: 함수를 보다 효율적으로 사용하기 위해서 특정 함수 자체를 캡슐화하는 기능을 가지고 있다. ◈ 1단계 Delegate할 함수를 정한다.: Delegate할 함수를 정한다는 것은 어떠한 함수가 대리자를 통해서 호출될 것인지의 문제이이다.함수의 형태가 다르면 Delegate를 다르게 만들어주어야 한다. ◈ 2단계 함수에 맞는 Delegate 선언하기: Delegate를 선언하려면 함수의 시그너쳐(Signature)에 정확하게 일치시켜야 한다. 아래와 같이 Delegate와 함수의 리턴타입과 매개변수를 정확하게 일치시켜서 Delegate를 선언해야 한다. delegate void SimpleDelegate1(); // Delegate 선언 1 = void F1()delegate..
[C#] Boxing / UnBoxing / as ▣ 언박싱(UnBoxing)-. UnBoxing은 Boxing된 참조차입을 다시 값타입으로 변환하는 것을 말한다. ▣ UnBoxing의 순서-. 해당 객체가 지정한 값타입을 Boxing한 값인지 확인-. Boxing된 객체라면 객체의 값을 값타입 변수에 복사한다.-. Boxing한 메모리와 UnBoxing한 메모리 두 개가 존재한다. ▣ UnBoxing의 예-. int p = 123;-. object o = p; // Boxing 묵시적으로 이루어진다.-. int j = (int)o; // UnBoxing 명시적으로 캐스팅해주어야 함.-. Console.WriteLine("j = " + j);-. Console.WriteLine("p = " + p);-. Console.WriteLine("o = " + ..
[C#] 서로 다른 3가지 Timer ◈ 정의 Timer는 C++부터 쭈욱 많이 사용되는 스레드 종류 중에 하나C#에서는 Timer 클래스가 3개가 존재합니다. 물론 각각의 Timer는 속성이 다릅니다. ◈ 설명먼저 Timer의 특징은 Thread와 다른게 선언할 때 반복의 간격을 정하게 되겠습니다. 아무래도 Thread.Sleep는 인터럽트적으로 강제로 프로세스를 멈추게 하는 성향이 있기 때문에 시스템에 무리가 가게 되어있습니다. 그러나 Timer는 Callback 개념으로 지정된 시간 후에 Callback을 하는 개념이니 아무래도 부하가 적게 걸립니다.그리고 Timer는 세개로 나누어져 있습니다. Timer는 ThreadPool과 비슷한 개념으로 부모 메소드가 차단되면 Timer도 자동적으로 Callback의 주체가 없어지니 소멸되게 되..
[C#] 마샬링이란(marshalling) ◈ 정의 프로그래밍에서 마샬링은 RPC, RMI 등에서 클라이언트가 원격지(서로 다른 프로세스)의 메서드를 호출 시서버에 넘겨지는 인자, 원격지 함수의 리턴 값들을 프로그래밍 인터페이스에 맞도록 그 데이터를 조직화하고,미리 정해진 다른 형식으로 변환하는 과정 ◈ 설명1) XML로 마샬링, byte 스트림으로 마샬링 등 데이터 교환시 어떠한 정해진 표준에 맞게 해당 데이터를 가공하는 것을 마샬링, 언마샬링 이라고 한다. 2) 클라이언트에서 마샬링된 데이터를 서버에 전달하게 되면, 서버에서는 그 데이터를 언마샬링하여 사용함으로써 원격지(다른 프로세스)간의데이터 사용이 가능하게 된다. 3) 동일 어플리케이션 도메인에 존재하는 객체의 메서드를 호출할 때의 매개변수나 결과값을 전달할때에는 스택을 통하여 전달된다...
[정보] MQTT ◈ 정의경량의 Publish/Subscribe(Pub/Sub) 메시징 프로토콜이다. ◈ 설명M2M(machine-to-machine)와 IoT(Internet of things)에서의 사용하려고 만들었다. IoT를 위해서 낮은 전력, 낮은 대역폭 환경에서도 사용할 수 있도록 설계됐다.IoT 관련 일들을 하고 있는데, 저전력/소규모 디바이스를 위한 통신 프로토콜들을 살피면서 자연스럽게 관심을 가지게 됐다. 1) 센서(Sensor) 정보 수집가전기기, 빌딩, 도시, 산업, 개인 등 다양한 영역에서의 센서정보를 수집할 수 있다. 네트워크 영역으로 보자면 LAN(가정/소규모 오피스), PAN(개인 네트워크), BAN(빌딩 네트워크), MAN(도시영역 네트워크)등에서 사용할 수 있다.개인적으로 건강과 질병관리 분..
[WPF] Prism Bootstrapper정의모듈은 독립적으로 개발, 테스트 및 옵션 배포 할 수 있는 기능 패키지 설명많은 상황에서는 모듈이 개발되어 다른 팀에 의해 유지됩니다. 전형적인 프리즘 응용 프로그램은 여러 모듈에서 구축되어 있습니다. 모듈은(예를 들어, 프로파일 관리) 특정 비즈니스 기능을 설명하며, 이러한 기능을 구현하는 데 필요한 모든 뷰, 서비스 및 데이터 모델을 캡슐화하는 데 사용할 수 있습니다. 모듈은 여러 응용 프로그램에서 재사용 할 수 있다.(예를 들어, 로깅 및 예외 관리 서비스를 위한)일반적인 으용 프로그램 인프라나 서비스를 캡슐화하는데 사용할 수 있습니다. Prism이란? 풍부하고, 유연한, 그리고 유지 보수가 쉬운 WPF 데스크탑 응용이나 실버라이트 RIAs, Windows Phone 응용을..
[WPF] Routed Event ◈ Routed Event란?1) 라우트된 이벤트는 이벤트를 일으킨 개체에서만이 아니라 요소 트리의 여러 수신기에서 처리기를 호출할 수 있는 이벤트 형식2) 라우트된 이벤트는 CRL 이벤트의 인스턴스에서 지원되는 RoutedEvet 클래스에서 처리되는 WPF 이벤트 시스템3) 라우트 된 이벤트는 이벤트를 발생시킨 오브젝트가 아닌 요소 트리의 여러 리스너에서 핸들러를 호출 할 수 있는 이벤트 유형4) 기본적으로 Routed Event 클래스의 인스턴스에서 지원하는 CLR 이벤트입니다.5) WPF 이벤트 시스템에 등록 ◈ RoutedEvent 세 가지 주요 전략1) Direct Event 소스 요소 자체만 응답으로 처리기를 호출할 수 있습니다. 이 전략은 Windows Forms에서 이벤트에 사용하는 “라우..
[WPF] MVVM ◈ 정의 WPF는 여러 패턴 중에서도 MVVM 패턴을 사용하여 응용프로그램을 쉽게 작성하기 위해 디자인되었기 때문에 MVVM은 WPF 개발자에게 공영어라고 할 수 있습니다. ◈ 설명 실제로 Microsoft에서는 핵심 WPF 플랫폼이 개발 중인 동안 Microsoft Expression Blend와 같은 WPF 응용 프로그램을 개발하기 위해 내부적으로 MVVM을 사용했습니다. 외형이 없는 컨트롤 모델 및 데이터 템플릿과 같은 WPF의 여러 측면에서는 MVVM이 권장하는 상태와 동작으로부터의 강력한 표시 분리를 활용하고 있습니다. MVVM이 훌륭한 패턴이 되는데 영향을 미친 WPF의 가장 중요한 측면은 데이터 바인딩 인프라입니다. 뷰의 속성을 ViewModel에 바인딩하면 둘 간에 느슨한 연결을 수행하고 ..