피드로 돌아가기
FluentValidation en .NET 10 sin ensuciar tus entidades (Clean Architecture + MediatR)
Dev.toDev.to
Backend

FluentValidation과 MediatR Pipeline을 통한 Domain Model 순수성 확보

FluentValidation en .NET 10 sin ensuciar tus entidades (Clean Architecture + MediatR)

Romny Duarte2026년 4월 19일5intermediate

Context

엔티티 내 DataAnnotations 사용으로 인한 도메인 레이어와 프레임워크 간 강결합 문제 발생. 유닛 테스트의 어려움과 책임 분리 실패로 인한 도메인 모델의 오염이 주요 병목 지점으로 식별됨.

Technical Solution

  • Application Layer로 검증 로직을 이동하여 도메인 모델의 프레임워크 의존성 제거
  • MediatR의 IPipelineBehavior를 구현하여 Command 처리 전 자동 검증 프로세스 중앙화
  • FluentValidation의 AbstractValidator를 통한 선언적 검증 규칙 정의로 도메인 로직과 검증 로직 분리
  • DTO 및 Command 기반 검증 전략 채택을 통한 시스템 진입점에서의 데이터 무결성 확보
  • 검증 로직의 외부 분리를 통한 Validator 전용 유닛 테스트 환경 구축 및 테스트 커버리지 향상

- 엔티티 내 [Required] 등 DataAnnotations 속성 제거 여부 확인 - MediatR Pipeline Behavior를 통한 검증 로직의 중앙 집중화 검토 - Domain Model이 아닌 Command/DTO 레벨에서 검증 규칙을 정의했는지 체크 - FluentValidation.TestHelper를 활용한 Validator 유닛 테스트 작성

원문 읽기