소개와 설치

1. Dapper란 무엇인가

Dapper는 .NET 마이크로ORM(Micro ORM)으로, Micro ORM의 왕으로 불리며 네이티브 ADO.NET에 가까운 성능을 보입니다.

ORM:객체 관계 매퍼. 데이터베이스 테이블 ↔ C# 엔티티 객체 간 자동 매핑을 구현합니다.

주요 특징:

  1. SQL을 캡슐화하지 않고 개발자가 직접 SQL을 작성합니다;
  2. 확장 메서드로 IDbConnection을 확장합니다(모든 데이터베이스 연결 객체에서 바로 사용 가능);
  3. 가볍고 성능이 매우 뛰어납니다.

참고:엄밀히 말하면 마이크로ORM으로 EF Core 같은 완전한 ORM 프레임워크와 차이가 있습니다. 커뮤니티에서 ‘순수한 ORM인가’에 대한 논의가 이어지고 있습니다.

SQL 인젝션 방어:매개변수화 쿼리를 사용하면 인젝션을 피할 수 있습니다. SQL 문자열 연결은 여전히 위험이 존재합니다.

실행 3단계:데이터베이스 연결 생성 → SQL 구문 작성 → Dapper 확장 메서드를 호출해 SQL과 매개변수를 전달하여 실행.

특징

  • 고성능, 빠른 쿼리 속도
  • 정적 엔티티, 동적 객체 매핑 지원
  • SQL 구문을 자유롭게 제어 가능
  • 다중 결과 집합 쿼리 지원
  • 저장 프로시저 네이티브 지원
  • IDbConnection 인터페이스 기반, 각종 데이터베이스 드라이버와 호환
  • 대량 삽입 지원(확장 기능. 기본은 간단한 대량 삽입, 대용량 데이터는 Dapper.Plus 권장)

설치

방식1:NuGet 패키지 관리자 콘솔(PMC)
Install-Package Dapper
방식2:.NET CLI(.NET Core/.NET5+ 권장)
dotnet add package Dapper
방식3:Visual Studio 그래픽 인터페이스

솔루션 탐색기 → 프로젝트 우클릭 → NuGet 패키지 관리Dapper를 검색해 설치합니다.

중요 안내:Dapper 자체에는데이터베이스 드라이버가 포함되지 않습니다
SQL Server 사용 시 별도로 Microsoft.Data.SqlClient,MySQL은 MySqlConnector를 설치해야 합니다.

예제

using Dapper;
using Microsoft.Data.SqlClient;

// 1. IDbConnection 생성
string connStr = "데이터베이스 연결 문자열";
using var conn = new SqlConnection(connStr);

// 2. SQL 작성
string sql = "SELECT * FROM Article WHERE Id = @Id";

// 3. 쿼리 실행 및 엔티티 자동 매핑
var article = conn.QueryFirstOrDefault<Article>(sql, new { Id = 1 });

public class Article
{
    public int Id { get; set; }
    public string Title { get; set; }
}Code language: JavaScript (javascript)

비교

프레임워크유형SQL 제어적용 시나리오
DapperMicro ORM수동 SQL 작성고성능 요구, 복잡한 쿼리, 기존 프로젝트 리팩토링
EF CoreFull ORMSQL 자동 생성, 네이티브 SQL도 지원빠른 개발, 간단한 업무, SQL 수작업을 피하고 싶을 때

소개와 설치

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다