C# 20

C#에서 동기메서드를 비동기 방식으로 처리하는 방법

C#에서 비동기 처리가 지원되지 않는 메서드를 사용해야 하는 경우, 비동기 작업을 효율적으로 처리하기 어려울 수있습니다. 이 글에서는 비동기 처리가 안 된 메서드를 비동기 방식으로 사용해야 하는 상황에서 어떤 접근 방식이 적합한지 알아보겠습니다. 1. 동기 메서드를 Task.Run으로 비동기화동기식으로 동작하는 메서드를 비동기 방식으로 호출하려면 Task.Run을 사용할 수 있습니다.Task.Run은 주어진 작업을 별도의 스레드에서 실행하여, 호출하는 스레드(보통 UI 스레드)를 차단하지 않으면서 작업을 처리할 수 있게 해 줍니다. public void BlockingMethod(){ // 동기적 작업}public async Task CallBlockingMethodAsync(){ await ..

C# 2024.08.22

Visual Studio 글꼴 & 색 변경 방법

오늘 7.26 Visual Studio 2022 버전 17.10 릴리스가 배포됐다. https://learn.microsoft.com/en-us/visualstudio/releases/2022/release-notes#17.10.5 Visual Studio 2022 Release NotesLearn about the latest features, bug fixes, and support for Visual Studio 2022. Download today.learn.microsoft.com 여기서 눈에 띄는 것이 있었는데 바로 바로 바로... 서식 옵션 변경이었다. 도구 -> 옵션 을 들어간 뒤에 위 사진처럼 글꼴 및 색상을 바꿔서 서식을 바꿔줄 수 있다! 예쁜 글꼴있으면 댓글로 추천해 주세여저는 Yu ..

카테고리 없음 2024.07.26

EF Core 최신 N 연관관계 매핑

EF Core에서 N(Many-to-Many) 관계 매핑Entity Framework Core (EF Core)는 객체-관계형 매퍼(ORM)로, 데이터베이스와 객체 지향 프로그래밍을 연결하는 데 도움을 줍니다. EF Core 5.0 이상 버전에서는 Many-to-Many (N) 관계를 보다 간편하게 설정할 수 있습니다. 이 글에서는 최신 EF Core를 사용하여 Many-to-Many 관계를 설정하고, 이를 활용하는 방법을 설명합니다. 1. Many-to-Many 관계 개요Many-to-Many 관계는 두 엔티티가 서로 여러 관계를 가질 수 있는 경우를 의미합니다. 예를 들어, 학생(Student)은 여러 과목(Course)을 수강할 수 있고, 과목도 여러 학생이 수강할 수 있습니다.  2. 모델 클래스..

C# 2024.07.14

C# 비동기 프로그래밍: 비동기 vs 동기 처리

이 글에서는 비동기와 동기 처리의 차이를 코드 예제를 통해 비교해 보겠습니다.  동기 프로그래밍동기 프로그래밍에서는 각 작업이 순차적으로 실행됩니다. 한 작업이 완료될 때까지 다음 작업이 시작되지 않습니다. 이러한 방식은 간단하지만, 여러 작업을 동시에 처리해야 할 때 비효율적일 수 있습니다.동기 프로그래밍 예제다음은 동기적으로 아침 식사를 준비하는 코드 예제입니다. 이 코드는 커피를 만들고, 계란을 부치고, 베이컨을 굽고, 토스트를 준비하는 순서로 실행됩니다. C#using System;using System.Diagnostics;using System.Threading.Tasks;namespace SyncExample{ internal class Bacon { } internal class..

C# 2024.07.10

SQL DB에 대량 데이터 삽입하는 방법

1. 랜덤 데이터 생성 및 CSV 파일 작성먼저 C# 코드를 사용하여 랜덤 데이터를 생성하고 CSV 파일로 저장하는 방법을 알아봅니다.- 테이블에는 간단하게 age, name, id 만 포함 using System;using System.Collections.Generic;using System.IO;class Program{ static void Main() { Random random = new Random(); List dataRows = new List(); dataRows.Add(new string[] { "age", "name", "id" }); // CSV 헤더 for (int i = 0; i  2. CSV 파일을 SQL Serve..

C# 2024.05.13

.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

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