Language/C#(10)
-
EF Core Fluent API Entity Configuration
소개 이번 포스트는 EF Core에서 Fluent API 패턴을 기반으로 한 Entity Configuration에 대해 정리하도록 하겠습니다. Entity Configuration Entity Configuration은 테이블 및 관계 매핑에 대해 구성합니다. PrimaryKey(기본 키), AlternateKey(대체 키), Index, Table Name, 1대1 관계, 1대N 관계, N대N 관계에 대해 정의 합니다. Methods 사용법 HasAlternateKey() 엔티티에 대한 EF 모델의 대체 키 구성. HasIndex() 지정 된 속성의 인덱스 구성 HasKey() 속성 또는 속성 목록을 기본 키로 구성 HasMany() 일대다 또는 다대다 관계에 대해 다른 유형의 참조 수집 속성을 포함..
2023.05.17 -
.NET Serilog 사용법
Serilog https://serilog.net/ 아래의 예제는 .NET Worker Service 프로젝트에서 사용하는 방법에 대해 소개하도록 하겠습니다. Serilog란? 파일, 콘솔 등의 다양한 저장소의 로깅을 지원합니다. 그리고 설정하기 쉬운 API로 되어 있으며 다양한 플랫폼에 이식이 가능합니다. 또한 구조화 된 로깅으로 다른 플랫폼에서 읽기 쉽도록 로깅을 생성할 수 있습니다. 사용법 Worker Service를 먼저 생성합니다. 그리고 Nuget Package에서 Serilog.AspNetCore를 설치합니다. Program.cs에 아래와 같이 코드를 추가합니다. using Collector.Service; using Serilog; IHost host = Host.CreateDefaultB..
2023.04.26 -
Stream, FileStream, BufferedStream, MemoryStream
Stream이란? 프로그램을 개발하다보면 Stream을 사용하는 일이 많습니다. Java와 .NET 에서는 입풀력 작업을 Stream이란 개념을 통해서 추상화하여 사용합니다. 대표적으로 파일을 읽고 쓸 때 많이 사용하는데, 자세히 알아보도록 하겠습니다. 먼저 사전적인 의미를 보자면 아래와 같습니다. A stream is a small narrow river. A stream of smoke, air, or liquid is a narrow moving mass of it. A stream of vehicles or people is a long moving line of them. (액체 등의) 좁은 흐름 우리 말로하면 작은 시냇물 같은 의미를 가지고 있습니다. 즉, 프로그램에서 Stream이란 데이터가..
2023.04.25 -
.NET Core에서 Redis Job Queue 사용하기
소개 Redis는 Key, Value 구조의 비정형 데이터를 저장하고 관리하기 위한 오픈 소스 기반의 비관계형 데이터베이스 관리 시스템(DBMS)입니다. 데이터베이스, 캐시, 메시지 브로커로 사용되며 인메모리 데이터 구조를 가진 저장소입니다. 많이들 Redis의 자료구조 중 List를 가지고 Queue나 Stack을 만들어 사용합니다. 속도는 O(n)의 속도를 가지며 이 포스트에서는 Job Queue를 만들어 Message Queue 처럼 사용하는 방법에 대해 소개하도록 하겠습니다. flowchart LR Client -- 3, 2, 1 --> Queue Queue -- 1 --> Worker1 Queue -- 2 --> Worker2 Queue -- 3--> Worker3 Redis Nuget Pack..
2023.04.22