AutoMapper는 규칙과 명시적 구성을 사용해 형식 간 데이터를 변환하는 .NET 객체 매핑 라이브러리입니다. DTO 변환, 프로젝션 시나리오, 구조화된 매핑 정의를 지원하여 개발자가 매핑 로직을 유지 관리 가능하고 핵심 애플리케이션 코드와 분리된 상태로 유지하면서 계층 전반의 데이터 흐름을 관리할 수 있도록 돕습니다.
규칙 기반 매핑 엔진
AutoMapper는 명명 규칙을 통해 멤버를 일치시켜 소스와 대상 형식 간에 매핑합니다. 이를 통해 반복적인 수동 할당의 필요성이 줄어들고, 도메인 모델, 뷰 모델, 데이터 전송 개체와 같은 애플리케이션 계층 전반에서 일관된 변환을 지원합니다.
유창한 매핑 구성
이 라이브러리는 매핑 규칙을 정의하기 위한 유창한 API를 제공합니다. 개발자는 읽기 쉽고 중앙집중적인 방식으로 매핑을 구성하고, 기본 동작을 재정의하며, 멤버 변환을 지정할 수 있어 매핑 정의를 명확하고 유지 관리하기 쉽게 유지할 수 있습니다.
프로필 기반 구성
매핑은 기능이나 모듈별로 구성을 조직하기 위해 프로필로 그룹화할 수 있습니다. 이 접근 방식은 모듈식 설계를 지원하고, 등록을 단순화하며, 여러 bounded contexts를 가진 대규모 솔루션에서 매핑 복잡성을 관리하는 데 도움이 됩니다.
DTO 및 모델 프로젝션
AutoMapper는 복잡한 도메인 모델을 간소화된 데이터 전송 객체로 프로젝션하는 기능을 지원합니다. 이는 전체 내부 구조를 노출하지 않고도 맞춤형 데이터 형태가 필요한 API, 메시징 시스템, UI 계층에서 유용합니다.
Queryable 데이터 프로젝션
이 라이브러리는 queryable 데이터 소스에서 직접 프로젝션을 가능하게 하여, 대상 형식이 쿼리 실행의 일부로 구성되도록 합니다. 이를 통해 필요한 필드만 선택하고 변환하는 효율적인 데이터 검색 워크플로를 지원합니다.
사용자 지정 값 리졸버
개발자는 특정 멤버가 어떻게 매핑될지 제어하기 위해 사용자 지정 리졸버와 컨버터를 정의할 수 있습니다. 이를 통해 계산된 값, 변환, 특수한 매핑 시나리오를 도메인 엔터티에 로직을 포함하지 않고 처리할 수 있습니다.
조건부 매핑 규칙
AutoMapper는 멤버가 언제 매핑될지 제어하기 위한 조건부 로직을 지원합니다. 개발자는 값이 전달되어야 하는지 여부를 결정하는 규칙을 정의할 수 있어, null 처리, 검증 또는 선택적 업데이트가 포함된 시나리오를 관리하는 데 도움이 됩니다.
의존성 주입 지원
이 라이브러리는 .NET 애플리케이션에서 일반적으로 사용되는 의존성 주입 프레임워크와 통합됩니다. 매핑은 어셈블리에서 등록하고 서비스에 주입할 수 있어, 애플리케이션 수명 주기 전반에 걸쳐 일관된 구성과 재사용을 가능하게 합니다.
동적이고 유연한 매핑
AutoMapper는 강하게 형식화된 개체와 딕셔너리 같은 동적 구조 간의 매핑을 수행할 수 있습니다. 이는 데이터 형식이 유연하거나 컴파일 시점에 알려지지 않은 시나리오를 지원하면서도 키를 대상 속성과 정렬할 수 있게 합니다.
중첩 개체 그래프 처리
이 라이브러리는 재귀 관계와 깊이 제어를 포함한 중첩 및 복잡한 개체 그래프를 처리합니다. 개발자는 매핑이 어느 깊이까지 탐색해야 하는지와 변환 과정에서 참조를 어떻게 보존할지 구성할 수 있습니다.
Lucky Penny Software LLC는 AutoMapper 및 MediatR를 포함한 확립된 .NET 라이브러리의 상업적 관리와 배포에 중점을 둔 미국 기반 소프트웨어 회사입니다. 이 회사의 작업은 C# 개발자, 소프트웨어 아키텍트, 그리고 유지보수 가능한 비즈니스 및 엔터프라이즈 애플리케이션을 구축하는 엔지니어링 팀이 사용하는 객체 매핑, 프로세스 내 메시징, 애플리케이션 아키텍처 패턴을 중심으로 이루어집니다. 이 회사의 신뢰성은 이러한 라이브러리의 오랜 오픈 소스 역사와 광범위한 채택에 기반하며, 이 라이브러리들은 .NET 생태계 전반에서 상당한 사용량을 축적해 왔습니다. 이 회사의 운영 모델은 소비자용 미디어나 창의적 워크플로 도구보다는 지속적인 유지보수, 상업적 라이선스, 그리고 성숙한 개발자 인프라에 대한 지원을 강조합니다.