Kepler.Core 소개 — EF Core API를 위한 스마트 필드 선택

발행: (2025년 12월 15일 오전 06:02 GMT+9)
4 min read
원문: Dev.to

Source: Dev.to

개요

Kepler.Core는 EF Core 확장 기능으로, 필요한 필드만 선택하여 성능을 향상시킬 수 있습니다. 유연한 필터링, 민감한 필드의 제외, 그리고 생성된 쿼리를 완전히 확인할 수 있는 기능을 제공합니다.

주요 기능

  • 선택적 필드 조회 – 쿼리에서 포함할 속성을 정확히 선택합니다.
  • 다양한 필터링Contains, StartsWith, Equals 등 필요한 모든 필터 유형을 적용합니다.
  • 민감 필드 제외 – 특성이나 Fluent API를 사용해 전역적으로 필드를 숨길 수 있습니다.
  • 전역 오버라이드IgnoreGlobalExceptions = true 로 설정하면 필요 시 모든 제외를 무시합니다.
  • 투명한 SQL 생성 – NuGet 패키지가 생성하는 전체 람다 식과 SQL을 확인할 수 있어 블랙박스 동작이 없습니다.
  • 정책 관리 – 모델/테이블당 여러 개의 명명된 정책을 정의하여 다양한 사용 사례에 대응합니다.
  • 내부 검사 도구 – 전역 제외 항목, 필터, 정렬 필드, 정책에 의해 선택된 속성을 검사합니다.

시작하기

  1. 패키지 추가

    dotnet add package Kepler.Core
  2. 정책 생성Program.cs(또는 서비스 설정 파일)에서:

    services.AddKeplerCore(options =>
    {
        options.PolicyName = "MyPolicy";
        options.IgnoreGlobalExceptions = false;
        // includes, excludes, filters 등을 구성합니다.
    });
  3. 정책 적용 – 쿼리 실행 시:

    var result = await dbContext.Customers
        .ApplyKeplerPolicy("MyPolicy")
        .ToListAsync();

    이 쿼리는 MyPolicy에 정의된 필드만 선택하고 전역 제외 항목을 준수합니다.

다중 정책

필요에 따라 원하는 만큼 정책을 정의할 수 있으며, 각 정책은 고유한 포함/제외 필드와 필터를 가집니다. 쿼리를 실행할 때 정책 이름으로 참조합니다.

유용한 링크

  • NuGet 패키지:
  • 소스 코드:

데모 프로젝트

AdventureWorks 2022 데이터베이스를 사용한 완전한 데모가 제공됩니다. 저장소를 복제하고 데모를 실행하면 Kepler.Core의 동작을 확인할 수 있습니다:

git clone https://github.com/MohammadAliEbrahimzadeh/Kepler.Core.git
cd Kepler.Core/Demo
dotnet run

기여 및 피드백

Kepler.Core가 유용하다고 생각되면 저장소에 ⭐를 눌러 주세요. 이슈, 제안 또는 기여가 필요하면 GitHub에서 이슈나 풀 리퀘스트를 열어 주세요. 여러분의 피드백을 환영합니다.

Back to Blog

관련 글

더 보기 »

.NET에서 NuGet 패키지 사용 마스터하기

NuGet은 실제로 무엇인가요? NuGet을 .NET의 Amazon이나 Mercado Libre라고 생각해 보세요. 가구의 모든 나사를 직접 만들지 않고, 가게에 주문하듯이요. - 패키지…

LINQ 식에서 다중 열거

다중 열거는 LINQ 쿼리가 IEnumerable 컬렉션을 생성하고 이를 여러 번 반복할 때 발생합니다. 이는 특히 성능 문제를 일으킬 수 있습니다.