전체 글
-
50 EF Core Interview Questions (1~25).NET/Database 2025. 3. 11. 11:22
Linked In에서 본 50가지 Entity Framework Core에 질문 입니다.LinkedIn**전체 질문에 대한 한글 번역, 그리고 제 답안 입니다.AI 제네레이트 하지 말고 답변해 보라고 했지만, 저도 모르던 부분이 있었고,제가 알지 못했던 부분은 AI의 1차 답안을 가지고, 실제 테스트 해보거나 검색하여 정보를 추가적으로 확인했습니다. 1. EF는 LINQ를 SQL 명령으로 어떻게 변환하나요? 답안보기(클릭)표현식 트리(Expression Tree) 생성: LINQ 쿼리는 표현식 트리로 변환됩니다. 표현식 트리는 쿼리의 구조와 내용을 표현하는 데이터 구조로, 쿼리의 각 부분(예: Where, Select, Join 등)이 노드로 표현됩니다.쿼리 변환 및 최적화: EF Core는 이 표..
-
EF Core 테이블 상속 매핑 (TPH).NET/Database 2025. 3. 10. 22:11
TPH(Table Per Hierarchy)란?TPH는 상속 계층을 하나의 테이블에 저장하는 방식으로, 부모 클래스와 모든 자식 클래스의 데이터를 단일 테이블에서 관리하는 전략입니다.이를 통해 조인을 최소화하여 조회 성능을 향상시키며, EF Core는 Discriminator(구분자) 컬럼을 자동 추가하여 엔터티 유형을 구분합니다.Payment 관련 클래스 생성 namespace Database.Entity;using System;using System.ComponentModel.DataAnnotations;public abstract class Payment{ [Key] public int Id { get; set; } public decimal Amount { get; set; } /..
-
EF Core 테이블 상속 매핑(TPC).NET/Database 2025. 3. 10. 15:02
TPC (Table Per Concrete) 매핑 전략TPC(Table Per Concrete) 매핑 방법은 부모 클래스의 테이블을 생성하지 않고, 자식 테이블에서 부모 타입의 속성을 공통적으로 포함하는 전략입니다. 1. Log 클래스 작성using System;using System.Collections.Generic;using System.ComponentModel.DataAnnotations;using System.Linq;using System.Text;using System.Threading.Tasks;namespace Database.Entity;public abstract class Log{ [Key] public int Id { get; set; } public Date..
-
C# .NET 솔루션, 프로젝트 구조.NET/Common 2025. 2. 23. 21:00
이번 포스트에서는 닷넷 프로그래밍을 할 때 솔루션(.sln)과 프로젝트(.csproj)가 무엇인지 설명합니다. 우리가 프로그램을 만들고자 할 때 IDE를 통해서 어떤 프로젝트를 구성할 때, 각 언어나 프레임워크에 따라서생성되는 파일의 구조, 패키지의 구성들이 다르게 생성됩니다. 닷넷으로 프로그램을 만들고자 할때도 닷넷 고유의 프로젝트 구조가 있습니다. Jetbrains Rider를 이용해서 새 솔루션을 선택하면 현재 다음과 같은 화면을 볼 수 있습니다. 솔루션 이름과 프로젝트 이름을 설정하는 부분이 각각 있습니다. 솔루션솔루션은 여러 프로젝트를 포함 할 수 있는 관리 구조 입니다.솔루션 내의 폴더는 운영체제와는 별개의 구조로 각개의 프로젝트의 실제 위치는 os에서 각기 다른 위치하더라도 솔루션탐색기내에..
-
EF Core 테이블 상속 매핑 (TPT).NET/Database 2025. 2. 17. 23:56
EF core 테이블 상속 매핑 개념 Entity Framework Core(이하 EF Core)는 객체 지향 프로그래밍에서 흔히 사용되는 상속 개념을 관계형 데이터베이스(RDB)와 매핑할 수 있는 다양한 전략을 제공합니다. 이 글에서는 EF Core의 테이블 상속 매핑 기법인 Table Per Hierarchy(TPH), Table Per Type(TPT), Table Per Concrete Type(TPC)을 비교하고, 각 전략이 어떤 경우에 적합한지 살펴보겠습니다.테이블 상속 방법 테이블 상속 방법은 클래스를 상속하는 방법과 다르지 않습니다. using System.ComponentModel.DataAnnotations;namespace Database.Entity;public class Docum..
-
Blazor Server로 풀스택 웹어플리케이션 만들기(2) - MVVM 아키텍처 적용 하기.NET/WEB 2025. 2. 9. 17:59
이번 포스트에서는 Blazor Server에서 MVVM 패턴을 적용하는 방법에 대해서 다루겠습니다. 이번 포스트는 2024년 닷넷데브에서 발표한 MVVM With Blazor 내용의 일부입니다. MV 로 시작하는 많은 모델들이 있지만, 중요한 점은 각각의 레이어가 어떤 역할을 맡고있고 어느 방향의 의존성을 갖고 있는지가 해당 패턴이 어떤 아키텍처를 모델로 하는지가 뚜렸한 점이라고 생각합니다. MVVM은 View, Model ,View Model로 나눠진 클라이언트 어플리케이션 아키텍처 입니다.ViewView는 사용자가 직접 보는 화면을 의미하며, 화면에 표시되는 데이터와 이벤트 처리를 담당합니다. Blazor에서 View는 Razor 페이지 및 컴포넌트로 구성됩니다.View에서는 데이터 바인딩과 커..
-
EF Core - (부록) Project Setup.NET/Database 2025. 2. 3. 22:59
해당 작업을 위해서 두가지 프로젝트를 생성하였는데,Repository 프로젝트는 DbContext를 직접사용하여 Database에 여러가지 명령을 보내는 역할을 하는 클래스들을 넣을 프로젝트 입니다. 클래스 라이브러리 프로젝트를 생성하시면 됩니다.Application 프로젝트는 여러 DI처리와 콘솔 입력에 대한 처리를 할 프로젝트인데, 콘솔 어플리케이션 프로젝트로 생성하시면 됩니다. 보통 Database와 연결하는 어플리케이션의 역할은 웹 백엔드가 하는 것이 일반적 이지만, 꼭 웹이 아니더라도 위와같이 구성하여 연결 할 수 있습니다. 어떤 프로젝트라 하더라도 리포지토리의 내용이 변하지 않는다는 점과, 더 간략한 실행을 보여주기 위해서 적합한 방법으로 콘솔 어플리케이션으로 구성했습니다. Repositor..
-
EF Core - Code First.NET/Database 2025. 1. 11. 18:58
Code First란 ?데이터베이스 스키마를 코드에서 정의하고, 이를 기반으로 데이터베이스를 생성하거나 유지보수하는 방식입니다. 생산성을 향상하는 부분에서 Code First 방식이 필요한 이유개발을 하다보면 종종 SQL작업과 코드를 번갈아가면서 작업해야하는 경우가 종종 발생합니다. 하지만 여러 언어를 전환하면서 작업하는 것은 상당히 피로한 일 입니다. SQL 역시 마찬가지 입니다. 백엔드 개발자라면 SQL에 대해서 어느정도 이상 사용할 수 있는 것이 너무나도 당연하지만 전환작업에서의 피로감은 피할 수 없습니다. 이런 부분에서 코드 퍼스트 방식을 사용하게 되면, 데이터베이스 스키마 정의와 성능상에서 지장이 없는 부분에 쿼리에 대해서 기존 개발언어만 사용해서 개발 할 수 있습니다. C#의 EF Core는..