2025/03/05 5

SP -> EF, SP -> Dapper 이식성

📌 기존 Stored Procedure를 EF Core 또는 SmartSQL(Dapper)로 이식하는 이식성 비교기존 **Stored Procedure(SP)** 를 EF Core 또는 SmartSQL(Dapper)로 이식하려면, **쿼리 구조, 파라미터 처리 방식, 트랜잭션 관리, 성능 최적화, 유지보수성** 등을 고려해야 함.  아래에서 **이식성**을 중심으로 두 방식을 비교해볼게.  ---## **1️⃣ EF Core vs SmartSQL(Dapper) 이식성 비교**  | 비교 항목 | **EF Core (ORM 방식)** | **SmartSQL (Dapper, Mapper 방식)** ||-----------|----------------------|------------------------..

ef - dapper 비교

안녕! Entity Framework(EF)와 Smart SQL(Dapper 기반)을 비교해서 **어떤 DB/IO를 쓰는 게 좋을지 추천해줄게.**  특히 **성능, 개발 생산성, 이식성**을 포함해서 자세히 분석할 거야.  하지만 **어떤 방식이 더 적절한지 결정하려면** 프로젝트의 몇 가지 특성을 알면 더 정확한 판단이 가능해.  ### **📌 고려해야 할 프로젝트 특성**1. **트랜잭션 복잡도**     - 다중 테이블 조인과 대량의 데이터 처리(배치 작업 등)이 많은가?     - 단순 CRUD 작업이 주를 이루는가?  2. **쿼리 최적화 필요성**     - 성능이 중요한가?     - 개발자가 직접 SQL 튜닝을 해야 하는가?  3. **DBMS 변경 가능성 (이식성)**     - **..

Dapper 방식

---## **📌 Entity Framework vs Smart SQL(Dapper 기반) 비교**  | 비교 항목         | **Entity Framework (EF Core)** | **Smart SQL (Dapper 기반)** ||------------------|--------------------------------|------------------------------|| **성능**        | 비교적 느림 (LINQ → SQL 변환 과정 포함) | 직접 SQL 실행으로 빠름 || **개발 생산성** | 코드 작성이 편리함 (LINQ 지원, 객체 지향 방식) | SQL을 직접 작성해야 하므로 다소 불편함 || **이식성**      | MSSQL 외에도 다양한 DBMS 지원 |..

병행 방법

---## **📌 어떤 경우에 EF Core를 병행하면 좋을까?**  1. **단순 CRUD 작업 (ex: 사용자 테이블 등록, 수정, 삭제 등)**     - 복잡한 조인 없이 한 개 테이블에 대한 Insert, Update, Delete만 수행하는 경우     - EF Core의 **자동 변경 추적(Tracking)** 기능을 활용할 수 있는 경우  2. **읽기 요청이 많지만, 특정 조회는 단순한 경우**     - 단순한 `SELECT * FROM Users WHERE Id = @id` 같은 작업에는 EF Core 사용 가능     - 하지만 **다중 테이블 조인이나 성능이 중요한 경우는 Dapper 사용**  ---## **📌 실전 예제 (Dapper + EF Core 병행)**아래 예제에서..

변경 추적

### **📌 EF Core의 변경 추적(Change Tracking) 기능이란?**Entity Framework Core(이하 EF Core)의 **변경 추적(Change Tracking)** 기능은 **데이터베이스에서 가져온 엔터티의 상태 변화를 자동으로 감지하고 추적하는 기능**이야.  즉, **개발자가 SQL을 직접 작성하지 않아도, 엔터티 객체의 변경 사항을 감지하여 자동으로 데이터베이스에 반영해 주는 기능**이야.---## **🟢 변경 추적(Change Tracking)의 기본 동작 원리**EF Core는 `DbContext`를 통해 데이터베이스와 상호작용하는데, `DbContext` 내부에서 엔터티의 상태를 추적하는 **Change Tracker**가 작동해.  EF Core는 `DbCo..