.NET 타스크(Task)란 무엇인가.
·
.NET
Task는 .NET에서 비동기 처리와 병렬 처리를 위한 핵심 기능입니다. 코드의 흐름을 멈추지 않고 작업을 처리하거나, 여러 작업을 동시에 수행할 수 있게 도와줍니다. Thread보다 가볍고, async/await과 함께 사용하면 코드도 간결해집니다.Task 란?Task는 작업 단위를 표현하는 클래스입니다. .NET에서는 비동기, 병렬 처리를 가능하도록 도와줍니다. 개념이 조금 어렵긴한데요. 비동기와 병렬 처리를 하기위한 클래스 정도로 이해하는게 좋겠습니다. 비동기란?병렬 처리는 아마 다들 알고 계실 것 같습니다. 비동기는 조금 생소할 수 있는데요. 비동기란 어떤 작업이 완료되기를 기다리는 동안 다른 일을 먼저 할 수 있는 구조 입니다. 이해하기 어렵지만, 예를 들면 카페에서 아메리카노를 내리면..
.NET 델리게이트(Delegate)란 무엇인가.
·
.NET
델리게이트는 메서드에 대한 참조를 캡슐화하는 형식입니다.풀어쓰면 델리게이트는 메서드를 변수처럼 다룰 수 있게 해주는 객체입니다.주로 콜백 함수나 이벤트 처리에 사용 됩니다.델리게이트는 메서드를 변수처럼 다룰 수 있다고 했죠?이런 특성을 활용하여 동적으로 메서드를 바인딩할 때 유용합니다.이렇게 되면 조건별로 유연한 이벤트 처리가 가능하게 됩니다..NET 에서는 기본적으로 내장 델리게이트를 제공하는데요.Func , Action , Predicate 가 있습니다.Func 는 반환값이 있고 제네릭(Generic) 타입의 파라미터를 사용하는 델리게이트 입니다.아래 코드 기준으로 설명하면 int 파라미터 3개를 받는데요. 여기서 핵심은 마지막 파라미터는 반환 타입을 의미하는 것이라는 거죠.결과적으로 정수형 파라미터..
.NET 람다식(Lambda)란 무엇인가.
·
.NET
람다식은 C#에서 델리게이트와 LINQ에서 자주 사용되는 간결한 함수 표현 방식입니다. 익명 함수보다 짧고 직관적인 문법으로 코드의 가독성과 유지보수성을 크게 향상시켜 줍니다.람다식은 익명 함수를 간결하게 표현할 수 있는 문법입니다. 주로 함수를 값처럼 사용하고자 할 때 활용되며 코드의 간결성과 가독성을 높여주는 녀석입니다. .NET 에서만 사용하는 개념이 아닌 Java, Python 등 다양한 언어에서 지원하는 개념입니다. 당연히 저는 .NET C# 기반으로 진행 예정입니다. 껄껄 람다를 알아가기전에 알아야하는 개념이 몇가지 있는데요. 델리게이트(Delegate) 와 린큐(LINQ) 입니다. 델리게이트는 함수를 참조할 수 있는 타입으로 함수를 변수처럼 다를 수 있게 해주는 기능 입니다. 함수를 다..
.NET 데퍼(Dapper)란 무엇인가.
·
.NET
Dapper는 .NET에서 사용되는 초경량 ORM으로, ADO.NET의 복잡한 코드 없이 SQL 쿼리를 직접 실행할 수 있도록 도와줍니다. Entity Framework보다 성능이 빠르며, 단순하고 명확한 DB 처리에 적합합니다. Dapper 를 사용하기 위해서는 Nuget 패키지 설치가 필요 합니다. VisualStudio2022 기준으로 설치하시는데 참고 하시면 될 것 같네요. Dapper 에서 많이 사용하는 함수는 Query, Excute 2가지로 Query 는 Select 쿼리 실행 후 결과를 매핑 시켜주는 역할을 Excute 는 Insert, Update, Delete 같이 결과 반환이 필요 없는 쿼리에 사용 합니다. 또한 Dapper 는 제가 개인적으로 좋아하는 비동기 기능도 지원하고..
.NET 린큐(LINQ) 무엇인가.
·
.NET
LINQ는 .NET에서 데이터를 쿼리처럼 다룰 수 있게 해주는 문법입니다. List, Array 같은 컬렉션을 대상으로 필터, 정렬, 추출, 그룹핑, 조인까지 간결하게 처리할 수 있어 실무에서 매우 자주 사용됩니다. 린큐는 앞에서 설명했듯이 코드를 쿼리처럼 사용하여 데이터를 쉽게 조회하거나 가공할 수 있게 도와주는 문법입니다. 컬렉션 데이터가 대상이며 컬렉션 데이터는 List, Array 등등 데이터들의 집합을 의미합니다. 린큐를 사용하는 이유는 직관성과 간결화 입니다. 코드를 쿼리처럼 사용하기 때문에 직관적이고 람다와 함께 사용할 경우 반복문 코드를 획기적으로 줄일 수 있습니다. 린큐에서 제공하는 메서드로 필터, 정렬, 그룹핑까지 손쉽게 처리 가능합니다. 린큐 예제 보면서 진행하시죠.모델(Dto..
.NET 의존성 주입(Dependency Injection) 무엇인가.
·
.NET
의존성 주입(Dependency Injection, DI)은 .NET 개발에서 핵심적인 디자인 패턴 중 하나입니다. 이 글에서는 DI의 개념과 목적, 그리고 실제 코드에서 어떻게 사용하는지를 쉽게 설명합니다. 초보자도 이해할 수 있도록 간단한 예시와 함께 정리했습니다. 드디어 포트폴리오 만드니?대학교 졸업하고 일 시작한지 꽤 오래된 것 같은데 포트폴리오 하나 없다는게 좀 이상해서 시작한 프로젝트.이름하여 "드디어 포트폴리오 만드니?" 프로젝트! 귀찮음이 많은 사람이기에 아주memoryman.tistory.com위 프로젝트를 진행하다가 의존성 주입에 대한 궁금증이 생겼습니다.의존성 주입이란 무엇일까? 우선 편하게 DI라고 부르겠습니다. Dependency Injection 의 줄임말 입니다...
.NET Serilog 사용 방법
·
.NET
Serilog는 .NET 환경에서 널리 사용되는 로깅 라이브러리로, 콘솔 출력부터 파일 저장까지 다양한 로그 처리 기능을 제공합니다. 이 글에서는 Serilog를 사용해 로그를 파일에 저장하는 기본 설정 방법과 실제 코드 예제를 소개합니다. 처음 Serilog를 접하시는 분들도 쉽게 따라할 수 있도록 구성했습니다. Serilog란?C# 및 .NET 환경에서 사용할 수 있는 구조화 로깅 라이브러리 입니다. 여기서 구조화는 JSON 같은 반정형 형태를 의미 하며 key : value 형태로 데이터를 기록 합니다. .NET Console 환경에서 사용해보기.NET8 Console 환경에서 Serilog 설치하고 사용해보겠습니다.우선 NuGet 패키지 설치가 필요 합니다. * 로깅 라이브러리 입니다...