Entity Framework

ORM의 동작 방식과 Entity Framework 간단 소개

zorimo 2025. 1. 10. 01:48

 

지난 포스팅에서는 ORM의 정의와 SQL을 완전히 대체하지 않는다는 점을 살펴보았습니다.

 

이번 글에서는 ORM이 실제로 어떻게 동작하는지 구체적으로 설명하고,

이를 기반으로 한 대표적인 ORM 기술인 Entity Framework(EF)에 대해 간단히 알아보겠습니다.


1. ORM의 동작 방식

 

ORM은 데이터베이스와 애플리케이션 간의 중간 계층 역할을 합니다.

 

이는 개발자가 객체 지향 언어로 작성한 코드를 SQL 쿼리로 자동 변환해 실행하고,

데이터베이스에서 가져온 데이터를 다시 객체로 변환하여 프로그래밍 언어에서 바로 사용할 수 있도록 합니다.


1.1 SQL 쿼리 자동 생성

ORM은 개발자가 작성한 코드를 기반으로 SQL 쿼리를 생성하고 실행합니다.

이를 통해 개발자는 SQL을 직접 작성하지 않아도 됩니다.

 

예: 데이터 삽입

ORM 삽입

context.Products.Add(new Product { Name = "Laptop", Price = 1200 });
context.SaveChanges();
 

자동 생성된 SQL

INSERT INTO Products (Name, Price) VALUES ('Laptop', 1200);
 

1.2 데이터 결과를 객체로 반환

SQL 쿼리의 실행 결과를 ORM이 객체로 변환하여 반환합니다.

이를 통해 프로그래밍 언어의 객체로 데이터를 다룰 수 있어 더 직관적이고 편리합니다.

 

예: 데이터 조회

ORM 코드

var products = context.Products.ToList();
foreach (var product in products)
{
    Console.WriteLine($"{product.Name}: ${product.Price}");
}
 

자동 생성된 SQL

SELECT * FROM Products;
 
 

간단한 다이어그램으로 표현하자면 위의 다섯 단계를 거친다보면 되겠습니다.

 


2. Entity Framework란?

Entity Framework는 마이크로소프트의 .NET 환경에서 사용되는 ORM 도구로,

SQL을 직접 작성하지 않고도 데이터베이스와 상호작용할 수 있게 해줍니다.


2.1 Entity Framework의 주요 특징

1. 객체 중심 개발

데이터베이스의 데이터를 객체로 다룰 수 있어 객체 지향 프로그래밍과의 일관성이 높습니다.

 

2. SQL 쿼리 자동 생성

ORM 원리에 따라 SQL 쿼리를 자동 생성하고 실행합니다.

 

3. LINQ 지원

데이터를 직관적으로 조회하거나 조작할 수 있습니다.

var expensiveProducts = context.Products.Where(p => p.Price > 1000).ToList();
 

4. 다양한 데이터베이스 지원

SQL Server, MySQL, PostgreSQL 등과 호환됩니다.


2.2 간단한 예제: 데이터 삽입

Entity Framework를 사용해 데이터를 삽입하는 기본적인 예제를 살펴보겠습니다.

 

1. 모델 클래스 정의

public class Product
{
    public int Id { get; set; }
    public string Name { get; set; }
    public decimal Price { get; set; }
}
 

2. 데이터 삽입

using (var context = new AppDbContext())
{
    var product = new Product { Name = "Tablet", Price = 800 };
    context.Products.Add(product); // 객체를 메모리에 추가
    context.SaveChanges(); // SQL 쿼리를 생성하고 실행하여 데이터베이스에 반영
}
 

3. 자동생성된 SQL

INSERT INTO Products (Name, Price) VALUES ('Tablet', 800);
 

이번 글에서는 ORM의 동작 방식과 이를 기반으로 한 Entity Framework의 개념을 간단히 알아보았습니다.

Entity Framework는 SQL을 직접 작성하지 않고도 객체 지향 언어로 데이터베이스를 다룰 수 있도록 도와주는 강력한 도구입니다.

 

다음 포스팅에서는 Entity Framework의 기본 용어와 흐름을 알아보겠습니다.