반응형

C# 23

MQTT Protocol 의 특징 및 사용

MQTT MQTT(MQ Telemetry Transport)는 경량 메시징 프로토콜로, 네트워크에 연결된 장치들 간의 효율적인 통신을 위해 설계되었습니다. 이 프로토콜은 IoT(Internet of Things) 및 M2M(Machine-to-Machine) 통신에서 널리 사용되며, 낮은 대역폭, 제한된 네트워크 리소스, 불안정한 네트워크 연결과 같은 제약 사항을 고려하여 개발되었습니다. MQTT는 클라이언트-브로커-서버 모델을 따르며, 주로 발행-구독(pub-sub) 패턴을 사용하여 메시지를 전달합니다. 이 패턴은 여러 클라이언트가 메시지를 발행하고 해당 메시지를 구독하는 브로커를 통해 효율적으로 전달되는 것을 의미합니다. 특징 MQTT의 주요 특징은 다음과 같습니다: 경량성: MQTT는 간단하고 경량..

C# 2024.02.27

Service 생성 성능 측정

서비스의 생성 비용을 측정하는 방법은 여러 가지가 있습니다. 다음은 그중 일부입니다: 1. 시간 측정: 서비스 인스턴스를 생성하는 데 걸리는 시간을 측정합니다. 이는 System.Diagnostics.Stopwatch 클래스를 사용하여 측정할 수 있습니다. 이 방법은 서비스 생성의 CPU 시간을 측정합니다. var stopwatch = Stopwatch.StartNew(); var service = new MyService(); stopwatch.Stop(); Console.WriteLine($"Service creation took {stopwatch.ElapsedMilliseconds} ms"); 2. 프로파일러 사용: 코드 프로파일러를 사용하여 서비스 생성의 성능을 측정합니다. 프로파일러는 코드의 ..

C# 2024.02.19

VisualStudio 환경변수 설정

환경변수의 값을 읽어올 때 여러 상황에 따라 다른 환경변수 설정을 구성하고 상황에 맞춰 적절한 환경변수 값을 불러올 수 있습니다. 다음은 기본 설정과 개발상황에서 쓰는 환경설정을 구분하여 설정한 상태의 코드입니다. appsettings.json "Logging": { "LogLevel": { "Default": "Debug", "Microsoft.EntityFrameworkCore": "Warning" } }, "CardType": "CSNCard", "AllowedHosts": "*" } appsettings.Development.json { "Logging": { "LogLevel": { "Default": "Trace", "Microsoft.AspNetCore": "Trace" } } } 설정하는 ..

C# 2024.02.05

C# 참조 타입 , 값 타입 (ref, out 사용)

C# 언어는 참조 타입(reference type)과 값 타입(value type)을 갖는 주요 데이터 타입을 제공합니다. 이 두 가지 타입은 변수의 성격과 메모리에 저장되는 방식에서 차이가 있습니다. 이에 대한 이해는 C# 프로그래밍에서 핵심적인 역할을 합니다. 참조 타입 (Reference Type) 대표적인 참조 타입: 클래스(class), 인터페이스(interface), 델리게이트(delegate), 배열(array) 등 저장 위치: *힙(heap) 메모리에 저장 변수: 변수는 힙에 저장된 객체의 참조를 가짐 특징: 여러 변수가 동일한 객체를 참조할 수 있음 전달 방식: 메서드에 전달되면 객체의 참조가 복사되므로, 객체의 속성을 변경하면 원본 객체에 영향을 미침 값 타입 (Value Type) 대..

C# 2024.01.23

.NET에서 IntPtr 및 네이티브 코드와의 상호 작용

IntPtr이란? IntPtr은. NET 언어에서 관리되지 않는 코드와 상호 작용하기 위한 특별한 데이터 형식으로, 포인터나 핸들과 같은 메모리 주소를 나타냅니다. 주로 P/Invoke와 같은 상황에서 사용되며, 네이티브 코드와의 상호 작용을 가능케 합니다. Array.Clear, Array.Copy, Marshal.Copy Array.Clear: 배열의 특정 범위의 요소를 초기화하는 메서드. 사용 이유: 초기화하지 않은 배열은 예기치 못한 동작을 일으킬 수 있으며, Array.Clear를 사용하여 초기화된 상태로 사용하기 위함. Array.Copy: 배열에서 다른 배열로 요소를 복사하는 메서드. 사용 이유: 데이터 이전이나 복사 과정에서 배열을 정확하게 관리하기 위해 사용. Marshal.Copy: 관..

C# 2024.01.11

C# 동적으로 메서드 호출하기: Reflection과 Type 활용

Reflection 기본 설명 및 구조 종종 메서드의 이름이나 구조가 변경될 수 있는 환경에서 동적으로 메서드를 호출해야 때가 있습니다. Reflection 은 프로그램이 실행 중에 자신의 구조를 검사하고 조작할 수 있는 기능을 제공하는데 예를 들어 특정 유형의 멤버를 찾거나 인스턴스를 동적으로 생성하는 데 사용될 수 있습니다. Reflection 기능을 사용할 필요가 없는 경우는 다음과 같이 일반 객체를 생성해서 사용합니다. BS2Event instance = new BS2Event(); object value = instance.FieldName; 리플렉션을 사용하는 경우는 다음과 같이 사용합니다. Type structureType = typeof(BS2Event); FieldInfo field = ..

C# 2023.12.28

Binary(이진 파일)의 장점 및 사용

Binary 컴퓨터 프로그래밍에서 데이터를 저장하고 전송하는 방식 중 하나인 이진 파일은 많은 이점을 제공합니다. 이 글에서는 이진 파일의 개념, 사용 이유, 장점, 그리고 어떻게 사용되는지에 대해 알아보겠습니다. 1. 이진 파일이란? 이진 파일은 0과 1로 이루어진 이진 데이터를 담고 있는 파일 형식입니다. 이는 텍스트 파일과는 대조적으로 텍스트 형식이 아닌 이진 데이터로 구성되어 있습니다. 2. 사용 이유와 장점 2.1 효율성 이진 파일은 텍스트 파일에 비해 더 적은 공간을 차지하며, 이는 데이터를 더 작은 크기로 저장하고 빠른 입출력을 가능하게 합니다. 특히 대용량 데이터를 다룰 때 효과적입니다. 2.2 속도 이진 파일을 사용하면 데이터 직렬화와 역직렬화 과정에서 생기는 오버헤드가 적습니다. 이는 ..

C# 2023.12.19

ASP.NET Core 서비스 라이프타임 종류 및 특징

ASP.NET Core에서 서비스 라이프타임은 서비스가 생성되고 사용되는 시간 동안의 범위를 나타냅니다. 서비스 라이프타임은 서비스의 인스턴스가 어떻게 관리되고 언제 생성되고 소멸되는지를 결정합니다. ASP.NET Core는 주로 세 가지 라이프타임을 제공합니다: Singleton, Scoped, 그리고 Transient. 1. Singleton 라이프타임 특징: 애플리케이션 전체에서 하나의 인스턴스를 공유합니다. 애플리케이션이 시작될 때 생성되고 종료될 때까지 유지됩니다. 활용 예시: 애플리케이션 설정, 캐싱, 로깅 등과 같이 공유 자원을 관리할 때 사용됩니다. 예시 코드: builder.Services.AddSingleton(); builder.Services.AddSingleton(); 2. Sco..

C# 2023.12.14

C# 라이브러리 만들기

흔히 DLL 파일이라고 불리기도 하는 라이브러리는 재사용 가능한 범용 모듈을 말합니다. 특별한 기능을 하는 프로그램을 만들고 이를 공용으로 쓸 수 있게, 재사용 가능하게 만드는 이 라이브러리를 만드는 방법과 그 라이브러리를 어떻게 사용할 수 있는지에 대해 알아보겠습니다. 1. 프로젝트 만들기 [클래스 라이브러리. NET]을 선택하여 새로운 프로젝트를 생성합니다. 2. 라이브러리로 만들 코드 작성 namespace MyDLL { public class MyCal { public double Add(double a, double b) { return a + b; } public double Subtract(double a, double b) { return a - b; } public double Multi..

C# 2023.11.28
반응형