1、NuGet 설치 단계
- 콘솔 프로젝트를 새로 만듭니다(다른 프로젝트 유형도 가능하나, 여기서는 설명을 위해 콘솔 사용).
- NuGet 패키지 관리자에서 AutoMapper(작성자: Jimmy Bogard)를 검색합니다.
- 설치 버튼을 클릭합니다. 프로젝트의 .NET 프레임워크 버전에 맞는 패키지 버전을 선택해야 하며, 버전이 일치하지 않으면 설치에 실패합니다.

패키지 관리자 콘솔 명령어
Install‑Package AutoMapper
2、엔터티 클래스 생성
class Person
{
public int Age { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
public bool Sex { set; get; }
public DateTime Birthday { set; get; }
}
class People
{
public int Age { set; get; }
public string Name { set; get; }
public decimal Salary { set; get; }
public bool Sex { set; get; }
public DateTime Birthday { set; get; }
}Code language: JavaScript (javascript)
3、예제
class Program
{
static void Main(string[] args)
{
// ① 매핑 설정 초기화: Person → People 매핑 관계 생성
Mapper.Initialize(m => m.CreateMap<Person, People>());
// ② 소스 객체(Person) 인스턴스 생성
Person p = new Person()
{
Age = 12,
Name = "Tom",
Birthday = DateTime.Now,
Sex = true,
Salary = 10000
};
// 대상 객체는 null이면 안 되므로 미리 인스턴스화해야 합니다.
People peo = new People();
// ③ 매핑 실행: 소스 객체 p의 값을 peo에 복사
Mapper.Map(p, peo);
// ④ 매핑 결과 확인
Console.WriteLine(peo.Name);
Console.ReadKey();
}
}Code language: JavaScript (javascript)
핵심 요약
Mapper.Initialize: 전역 매핑 규칙을 등록합니다. 프로그램 시작 시 한 번만 실행하고, 반복문 안에서 호출하지 마세요.CreateMap<소스타입, 대상타입>(): 두 클래스 간의 매핑을 선언합니다.Mapper.Map(소스객체, 대상객체): 대상 객체는 반드시 인스턴스화되어 있어야 하며 null을 전달하면 오류가 발생합니다.- 규칙: 속성 이름과 타입이 같으면 자동으로 복사되며 별도 설정이 필요 없습니다.
버전 참고: AutoMapper 10 이상부터는 정적
Mapper.Initialize / Mapper.Map사용이 권장되지 않으며, DI를 통해IMapper를 주입받아 사용합니다. 위 코드는 구버전 학습용입니다.
직접 할당 방식과의 비교
- 직접 할당:
peo.Name=p.Name; peo.Age=p.Age;……필드가 많을수록 반복 코드가 늘어납니다. - AutoMapper: 매핑 관계만 선언하면 동일한 이름의 속성을 자동으로 복사합니다.
설치 및 첫 번째 예제
Previous: AutoMapper란?
Next: Profile 구성