c# 15

C# 파일 입출력과 JSON/XML 처리

C# 파일 입출력과 JSON/XML 처리C#에서 데이터를 처리할 때 파일 입출력(File I/O)과 JSON/XML 직렬화/역직렬화는 매우 중요한 기술입니다.로컬 파일 저장, 서버 API 연동, 데이터 직렬화 등을 효율적으로 처리할 수 있으며, 실무 프로젝트에서 자주 활용됩니다. 1. 기본 파일 입출력C#에서는 FileStream, StreamReader, StreamWriter를 사용하여 파일을 읽고 쓸 수 있습니다.// 파일 쓰기using (StreamWriter writer = new StreamWriter("data.txt")) { writer.WriteLine("Hello, C# File I/O!");}// 파일 읽기using (StreamReader reader = new StreamR..

c# 2025.09.21

C# 비동기 프로그래밍 : PLINQ, CancellationToken, 고급 Task 제어

C# 비동기 프로그래밍 심화: PLINQ, CancellationToken, 고급 Task 제어이전 글에서 async/await와 Task를 활용한 기본 비동기 프로그래밍을 살펴보았습니다.이번 글에서는 병렬 LINQ(PLINQ), CancellationToken, 고급 Task 제어를 대한 자세한 내용을 다룹니다. 1. 병렬 LINQ(PLINQ)PLINQ는 기존 LINQ 쿼리를 멀티스레드로 병렬 처리할 수 있는 기능입니다.CPU 연산이 많은 데이터 처리에서 성능을 크게 향상시킬 수 있습니다. using System;using System.Linq;int[] numbers = Enumerable.Range(1, 1000000).ToArray();// 일반 LINQvar evenNumbers = number..

c# 2025.09.21

C# 비동기 프로그래밍: async/await와 Task 활용

C# 비동기 프로그래밍: async/await와 Task 활용애플리케이션 개발에서 비동기 프로그래밍(Asynchronous Programming)은 필수입니다.C#에서는 async/await 키워드와 Task, Thread를 활용하여 비동기 작업을 쉽게 구현할 수 있습니다.UI 응답성을 유지하고, 서버 요청 처리나 병렬 작업을 효율적으로 수행하는 방법을 예제와 함께 살펴보겠습니다. 1. 비동기 프로그래밍 기본 개념비동기 프로그래밍은 코드 실행을 블로킹(blocking) 하지 않고, 다른 작업을 동시에 수행할 수 있도록 합니다.C#에서는 주로 다음과 같이 구현합니다:Thread: 직접 스레드를 생성하여 병렬 실행Task: 스레드를 추상화한 단위 작업, ThreadPool 활용async/await: 비동기 ..

c# 2025.09.21

C# LINQ 활용법 – 컬렉션 처리와 데이터 쿼리

C# LINQ 활용법 – 컬렉션 처리와 데이터 쿼리C#에서 LINQ(Language Integrated Query)는 컬렉션 데이터 조회, 필터링, 정렬, 그룹화 등을 간결하게 처리할 수 있는 강력한 도구입니다. 데이터베이스, 배열, 리스트 등 다양한 소스에 동일한 문법을 적용할 수 있어 생산성을 높여줍니다. 1. LINQ 기본 구조LINQ는 크게 두 가지 방식으로 사용됩니다. 쿼리 구문(Query Syntax)과 메서드 구문(Method Syntax)입니다.// 데이터 소스int[] numbers = {1,2,3,4,5,6,7,8,9,10};// 쿼리 구문var evenNumbers = from n in numbers where n % 2 == 0 ..

c# 2025.09.21

C# WPF/WinForms GUI 개발: MVVM, 데이터 바인딩, 커스텀 컨트롤 활용

C# WPF/WinForms GUI 개발: MVVM, 데이터 바인딩, 커스텀 컨트롤 활용C#에서 GUI 애플리케이션 개발은 WPF(Windows Presentation Foundation)와 WinForms 두 가지 주요 기술을 통해 이루어집니다.사용자 인터페이스(UI) 구성, 이벤트 처리, 화면 전환 등 다양한 기능을 효율적으로 구현하려면 MVVM 패턴, 데이터 바인딩, 커스텀 컨트롤 활용이 필수적입니다. 이번 글에서는 실무 예제와 함께 WPF/WinForms GUI 개발 핵심 개념과 구현 방법을 소개합니다. 1. WPF와 WinForms 비교WinForms: 빠른 UI 구성, 단순한 이벤트 기반, 레거시 프로젝트 활용WPF: XAML 기반, MVVM 패턴, 데이터 바인딩 지원, UI 커스터마이징 용이..

c# 2025.09.18

C# Entity Framework(Core)와 데이터베이스 연동

C# Entity Framework(Core)와 데이터베이스 연동C#에서 데이터베이스 연동은 거의 모든 애플리케이션에서 필수입니다. Entity Framework(Core)는 ORM(Object-Relational Mapping) 라이브러리로, 객체 지향 코드로 DB CRUD를 처리할 수 있어 생산성과 유지보수성을 크게 향상시킵니다. 이번 글에서는 LINQ + DB CRUD, Code First와 Database First, SQL Server와 SQLite 연동 방법에 대해 알아봅니다. 1. Entity Framework(Core) 소개EF Core는 .NET Core와 .NET 5/6/7에서 사용하는 ORM 라이브러리입니다.데이터베이스 테이블과 C# 클래스를 매핑하고, SQL을 직접 작성하지 않아도..

c# 2025.09.18

C# 디자인 패턴 – Singleton, Factory, Observer 사용법

C# 디자인 패턴 – Singleton, Factory, Observer 사용법C#에서 디자인 패턴(Design Pattern)은 소프트웨어 설계 문제를 효율적으로 해결하기 위한 재사용 가능한 코드 구조입니다.실무 프로젝트에서는 객체 생성, 이벤트 처리, 모듈 간 결합도를 낮추는 데 많이 활용됩니다. 이번 글에서는 싱글톤(Singleton), 팩토리(Factory), 옵저버(Observer) 패턴을 예제 중심으로 살펴보겠습니다. 1. 싱글톤 패턴(Singleton)싱글톤 패턴은 애플리케이션 내에서 클래스의 인스턴스를 하나만 생성하고, 어디서든 접근할 수 있도록 보장합니다.주로 설정 관리, 로그 관리, DB 연결 객체 등에 활용됩니다.public class Logger { private static ..

c# 2025.09.18

.NET Task.Run 사용법: 비동기 프로그래밍을 시작하는 가장 쉬운 방법

.NET Task.Run 사용법: 비동기 프로그래밍을 시작하는 가장 쉬운 방법.NET 개발에서 비동기 프로그래밍은 빠질 수 없는 중요한 주제입니다.그중에서도 Task.Run은 가장 많이 사용되는 비동기 실행 메서드 중 하나입니다.이 메서드는 내부적으로 ThreadPool을 활용하여 작업을 큐에 넣고 실행합니다.호출 즉시 제어를 반환하므로, 호출한 쪽 코드는 멈추지 않고 다음 작업을 이어갈 수 있습니다. Task.Run 기본 개념Task.Run은 .NET의 Task Parallel Library(TPL)에서 제공하는 API로, 작업을 비동기적으로 실행하기 위해 사용됩니다. 호출 시 새로운 작업이 스레드풀에 등록되고, 그 결과는 Task 또는 Task로 반환됩니다. 기본 형태Task.Run(() => { ..

c# 2025.09.11

.NET ThreadPool.QueueUserWorkItem: 비동기 작업

.NET ThreadPool.QueueUserWorkItem 사용법: 비동기 작업 .NET 개발자라면 한 번쯤 ThreadPool.QueueUserWorkItem을 접해봤을 것입니다. 이 메서드는 스레드를 직접 생성하지 않고도 .NET에서 제공하는 스레드풀(ThreadPool) ThreadPool과 QueueUserWorkItem 기본 개념ThreadPool은 .NET 런타임에서 관리하는 스레드 모음으로, 작업자 스레드(worker thread)와 IO 스레드를 포함합니다. ThreadPool을 사용하면 새로운 스레드를 직접 만들 필요 없이, 이미 생성된 스레드를 재사용할 수 있어 성능과 효율성이 뛰어납니다.QueueUserWorkItem은 ThreadPool에 작업(콜백 함수)을 큐에 넣고 비동기로 실..

c# 2025.09.11

C# Delegate 완벽 정리: Action, Func, Predicate, EventHandler 사용법

C# Delegate 완벽 정리: Action, Func, Predicate, EventHandler C#에서 Delegate(델리게이트)는 메서드를 참조할 수 있는 타입입니다. 쉽게 말해, 메서드를 변수처럼 다룰 수 있게 해주는 기능이죠. 델리게이트는 이벤트(event), 콜백(callback), 람다(lambda) 등 다양한 곳에서 활용되며 C#의 핵심 문법 중 하나입니다. 하지만 매번 델리게이트를 직접 정의하는 것은 번거롭기 때문에, .NET Framework에서는 자주 쓰이는 형태의 델리게이트를 미리 정의해 제공하고 있습니다. 대표적으로 Action, Func, Predicate, EventHandler 네 가지가 있..

c# 2025.09.10