이 부분은 비즈니스 규칙과 값 객체를 강조하며 도메인 계층을 구축하는 데 초점을 맞춥니다. 도메인 계층은 기술적인 문제와 독립적으로 핵심 비즈니스 로직을 캡슐화해야 합니다. `Tag` 예시와 같은 값 객체는 유효성 검사 및 동작을 포함하여 기본형을 래핑하는 데 사용됩니다. 텍스트는 단순한 데이터 유형을 불필요하게 래핑하는 것을 권장하지 않습니다. `ModelType` 값 객체의 개념이 소개되어 단순한 열거형 이상의 유연성을 제공합니다. `Collection` 엔티티가 생성되어 성능을 위해 전체 엔티티 대신 ID를 저장하는 것을 보여줍니다. 또한 "빈약한 도메인 모델"에 대해 논의하며, 일부 도메인이 주로 CRUD(생성, 읽기, 업데이트, 삭제)인 경우를 인정합니다. 유효성 검사는 도메인 및 애플리케이션 계층을 포함한 여러 계층에서 심층 방어(defense in depth)를 위해 처리됩니다. `Tag` 값 객체를 통합한 개선된 `Prompt` 엔티티가 제시됩니다. 도메인 로직 테스트는 간단하고 집중적으로 수행되는 것으로 강조됩니다. 요약은 주요 내용과 다가오는 애플리케이션 계층에 대한 힌트로 마무리됩니다.
dev.to
Clean Architecture in .NET 10: The Domain Layer — Entities That Actually Have Behavior
