본문으로 건너뛰기

참고 자료

더 깊이 학습하기 위한 참고 자료입니다.


  • 제목: Domain-Driven Design: Tackling Complexity in the Heart of Software
  • 저자: Eric Evans
  • 출판: Addison-Wesley, 2003
  • 핵심 내용: Specification 패턴의 원론적 정의, Repository 패턴
  • 제목: Implementing Domain-Driven Design
  • 저자: Vaughn Vernon
  • 출판: Addison-Wesley, 2013
  • 핵심 내용: DDD 실전 구현 패턴, Specification 활용 예제

Patterns of Enterprise Application Architecture

섹션 제목: “Patterns of Enterprise Application Architecture”
  • 제목: Patterns of Enterprise Application Architecture
  • 저자: Martin Fowler
  • 출판: Addison-Wesley, 2002
  • 핵심 내용: Specification 패턴, Repository 패턴의 체계적 정의
  • 제목: Functional Programming in C#: How to write better C# code
  • 저자: Enrico Buonanno
  • 출판: Manning, 2022 (2nd Edition)
  • 핵심 내용: Expression Tree, 함수형 조합 패턴

Specification Pattern

Specification Pattern in DDD

Expression Trees in C#


라이브러리설명NuGet
Functorium본 튜토리얼의 Specification 프레임워크
Ardalis.SpecificationSteve Smith의 Specification 라이브러리
라이브러리설명NuGet
MediatRCQRS/Mediator 패턴
FluentValidation검증 라이브러리
LanguageExt.Core함수형 프로그래밍 타입
라이브러리설명NuGet
Microsoft.EntityFrameworkCoreEF Core ORM
Microsoft.EntityFrameworkCore.InMemoryInMemory 테스트용
라이브러리설명NuGet
ArchUnitNET아키텍처 테스트
Shouldly단언문 라이브러리
xUnit테스트 프레임워크
NSubstitute목 라이브러리

Src/Functorium/Domains/Specifications/
├── Specification.cs # 추상 기반 클래스
├── IExpressionSpec.cs # Expression 인터페이스
├── ExpressionSpecification.cs # Expression Tree 지원
├── AllSpecification.cs # 항등원 (internal sealed)
├── AndSpecification.cs # AND 조합 (internal sealed)
├── OrSpecification.cs # OR 조합 (internal sealed)
├── NotSpecification.cs # NOT 부정 (internal sealed)
└── Expressions/
├── SpecificationExpressionResolver.cs # Expression 합성 유틸리티
└── PropertyMap.cs # Entity→Model 변환
Docs.Site/src/content/docs/tutorials/specification-pattern/
├── Part1-Specification-Basics/ # 기초 (4개)
├── Part2-Expression-Specification/ # Expression (4개)
├── Part3-Repository-Integration/ # Repository 통합 (4개)
├── Part4-Real-World-Patterns/ # 실전 패턴 (4개)
└── Part5-Domain-Examples/ # 도메인 예제 (2개)

  1. Eric Evans DDD 책의 Specification 챕터
  2. 본 튜토리얼 Part 1 (1~4장)
  3. Functorium Specification 소스 코드 읽기
  1. .NET Expression Trees 공식 문서
  2. 본 튜토리얼 Part 2~3
  3. Ardalis.Specification 비교 분석
  1. “Implementing Domain-Driven Design” 책
  2. 본 튜토리얼 Part 4~5
  3. ArchUnitNET으로 아키텍처 테스트 작성

이 튜토리얼은 Functorium 프로젝트의 실제 Specification 프레임워크 개발 경험을 바탕으로 작성되었습니다.