C# 34

.NET Core 애플리케이션에서 여러 포트를 사용하는 방법

.NET Core 웹 애플리케이션은 기본적으로 localhost에서만 접근 가능하도록 설정되어 있습니다. 이 포스트에서는 .NET Core 애플리케이션을 여러 포트에서 접근 가능하도록 설정하는 방법을 알아보겠습니다. 1. 여러 포트에서 애플리케이션 호스팅 NET Core 애플리케이션을 여러 포트에서 호스팅하려면 UseUrls 메서드에 여러 URL을 지정하면 됩니다. 아래 코드는 애플리케이션을 5000 포트와 5252 포트에서 모두 접근 가능하도록 설정하는 방법을 보여줍니다: var builder = WebApplication.CreateBuilder(args); builder.WebHost.UseUrls("http://*:5000", "http://*:5252"); 이렇게 설정하면 어떤 IP 주소를 통해..

C# 2024.04.23

.NET Core Window Service 배포 방법

NET Core 애플리케이션을 Windows 서비스로 배포하는 방법에 대해 알아보겠습니다. 이 포스트에서는 애플리케이션을 빌드하고, 배포하고, Windows 서비스를 생성하는 방법을 설명합니다. 1. Windows 서비스 설정 먼저, Program.cs 파일에서 Windows 서비스 설정을 추가합니다. 이 설정은 .NET 애플리케이션을 Windows 서비스로 실행할 때 사용하는 서비스 이름을 설정합니다. builder.Host.UseWindowsService(option => option.ServiceName = "iSecureMqttServer"); 이 코드는 .NET 애플리케이션 내부에서만 사용되며, Windows 서비스 관리자와는 관련이 없습니다. 이 설정은 애플리케이션이 서비스의 상태를 확인하거나..

C# 2024.04.22

.NET Framework 에서 Windows 서비스 사용 하는 방법

프로젝트 Service 관련 설정 1. 본인이 배포하길 원하는 service를 우클릭 후 디자이너 보기 클릭 2, 검은 화면에서 우클릭 후 설치 관리자 추가 클릭 3. serviceInstaller 우클릭 후 속성 클릭 ServiceName, DisplayName, Description 등 설정 StartType 은 Automatic으로 설정해주면 된다. 4. serviceProcessInstaller 에서 Account는 LocalSystem으로 변경 5. 모든 설정이 완료됐다면 build를 해준다. WindowService 설치 1. 명령 프롬프트 (CMD) 를 이용해서 설치하기 1-1. 명령 프롬프트(cmd) 를 관리자 권한으로 실행 1-2. InstallUtil.exe 도구가 있는 디렉터리로 이동..

C# 2024.04.19

Visual Studio 에서 .NET Framework 프로젝트 서버 배포 방법

서버 배포에는 여러가지 방법이 있지만 그중 Setup 파일을 활용해서 배포하는 방법을 알아볼게요 상단 바에 확장 안에 확장 관리가 있고, 확장 관리에서 installer 를 검색하면 Visual Studio Installer Project 를 찾을 수 있습니다 다운로드 해주세요 다운로드가 됐다면 다음과 같이 Debug 모드가 아닌 Release 모드로 변경 후 빌드를 하면 됩니다. 1. 배포하려는 프로젝트가 있는 솔루션의 속성을 들어갑니다. 2. 구성 관리자 클릭 후 활성 솔루션 구성을 Debug -> Release 로 변경해 줍니다. 3. 빌드를 진행합니다. 4. SetUp 프로젝트를 추가합니다. 추가는 아래의 방법으로 할 수 있습니다. (4-1) (4-2) (4-3) 우클릭 -> View -> 파일 ..

C# 2024.04.16

MSMQ ( Microsoft SQL Server Integration Services)

WCF (Windows Communication Foundation)을 MSMQ 위의 추상화 계층으로 사용할 수 있다. 이렇게 하면 단방향 작업으로만 서비스를 사용하는 느낌을 받을 수 있다. MSMQ와 WebService 사이에는 관계가 없다. 프로세스 간 통신에 MSMQ 사용 (소켓, Windows 메시징, 매핑된 메모리도 사용할 수 있음) 누군가 메시지를 대기열에서 뺄 때까지 메시지를 보관하는 Windows 서비스입니다. 메시지가 하드 디스크에 저장되기 때문에 소켓보다 더 신뢰할 수 있지만 다른 IPC 기술보다 느립니다. 간단한 코드 줄로 .NET 에서 MSMQ를 사용할 수 있으며 MessageQueue 개체와 호출 Receive 및 Send 메서드를 선언할 수 있습니다. 메시지 자체는 일반 문자열 ..

C# 2024.03.08

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# 자동 구현 속성, 필드, 속성

필드(Fields) 필드는 클래스나 구조체 내에서 데이터를 저장하는 데 사용됩니다. 이는 해당 클래스나 구조체의 인스턴스마다 고유한 데이터를 저장하는 데 사용됩니다. 필드는 클래스나 구조체 내에서 직접 접근할 수 있으며, 일반적으로 클래스나 구조체의 상태를 나타내는 데 사용됩니다. class MyClass { private int myField; } 위의 예제에서 myField는 MyClass 클래스의 필드입니다. 속성(Properties) 속성은 클래스나 구조체의 멤버로, 해당 클래스나 구조체의 상태를 나타내거나 조작하기 위해 사용됩니다. 일반적으로 필드에 액세스 하기 위한 메서드의 대안으로 사용되며, 데이터의 유효성 검사나 추가 로직을 쉽게 구현할 수 있습니다. class MyClass { priva..

C# 2024.02.02