팁 (조언)
이 콘텐츠는 .NET Docs 또는 오프라인으로 읽을 수 있는 다운로드 가능한 무료 PDF로 제공되는 컨테이너화된 .NET 애플리케이션용 .NET 마이크로 서비스 아키텍처인 eBook에서 발췌한 내용입니다.
비즈니스 도메인에 대한 이해를 반영하는 각 마이크로 서비스 또는 제한된 컨텍스트에 대한 도메인 모델을 디자인합니다.
이 섹션에서는 복잡한 하위 시스템 또는 끊임없이 변화하는 비즈니스 규칙을 사용하는 도메인 전문가의 지식에서 파생된 마이크로 서비스를 해결해야 할 때 구현하는 고급 마이크로 서비스에 중점을 둡니다. 이 섹션에서 사용되는 아키텍처 패턴은 그림 7-1에 설명된 대로 DDD(도메인 기반 디자인) 및 CQRS(명령 및 쿼리 책임 분리) 접근 방식을 기반으로 합니다.
외부 아키텍처의 차이점: 마이크로 서비스 패턴, API 게이트웨이, 복원력 있는 통신, pub/sub 등, 내부 아키텍처: 데이터 기반/CRUD, DDD 패턴, 종속성 주입, 여러 라이브러리 등
그림 7-1. 각 마이크로 서비스에 대한 외부 마이크로 서비스 아키텍처 및 내부 아키텍처 패턴
그러나 ASP.NET Core Web API 서비스를 구현하는 방법 또는 Swashbuckle 또는 NSwag를 사용하여 Swagger 메타데이터를 노출하는 방법과 같은 데이터 기반 마이크로 서비스에 대한 대부분의 기술은 DDD 패턴으로 내부적으로 구현되는 고급 마이크로 서비스에도 적용됩니다. 앞에서 설명한 대부분의 사례도 여기 또는 모든 종류의 마이크로 서비스에 적용되므로 이 섹션은 이전 섹션의 확장입니다.
이 섹션에서는 먼저 eShopOnContainers 참조 애플리케이션에서 사용되는 간소화된 CQRS 패턴에 대한 세부 정보를 제공합니다. 나중에 애플리케이션에서 다시 사용할 수 있는 일반적인 패턴을 찾을 수 있는 DDD 기술에 대한 개요를 확인할 수 있습니다.
DDD는 학습을 위한 다양한 리소스 집합이 있는 큰 주제입니다. 에릭 에반스의 Domain-Driven 디자인 과 본 버논, 지미 닐슨, 그렉 영, 우디 다한, 지미 보가드 및 기타 많은 DDD/CQRS 전문가의 추가 자료와 같은 책으로 시작할 수 있습니다. 그러나 무엇보다도 구체적인 비즈니스 도메인의 전문가와 대화, 화이트보드 및 도메인 모델링 세션에서 DDD 기술을 적용하는 방법을 배워야 합니다.
추가 리소스
DDD (Domain-Driven 디자인)
에릭 에반스. 도메인 언어
https://domainlanguage.com/마틴 파울러. Domain-Driven 디자인
https://martinfowler.com/tags/___domain%20driven%20design.html지미 보가드. 도메인 강화: 입문서
https://lostechies.com/jimmybogard/2010/02/04/strengthening-your-___domain-a-primer/분산 Domain-Driven 디자인 웨비나
https://particular.net/webinars/ddd-design-no-nonsense-implementation-guide
DDD 책
에릭 에반스. Domain-Driven 디자인: 소프트웨어의 핵심에서 복잡성 해결
https://www.amazon.com/Domain-Driven-Design-Tackling-Complexity-Software/dp/0321125215/에릭 에반스. Domain-Driven 디자인 참조: 정의 및 패턴 요약
https://www.amazon.com/Domain-Driven-Design-Reference-Definitions-2014-09-22/dp/B01N8YB4ZO/본 버논. Domain-Driven 디자인 구현
https://www.amazon.com/Implementing-Domain-Driven-Design-Vaughn-Vernon/dp/0321834577/본 버논. Domain-Driven 디자인 증류
https://www.amazon.com/Domain-Driven-Design-Distilled-Vaughn-Vernon/dp/0134434420/지미 닐슨. Domain-Driven 디자인 및 패턴 적용
https://www.amazon.com/Applying-Domain-Driven-Design-Patterns-Examples/dp/0321268202/세자르 드 라 토레. .NET을 사용한 N 계층 Domain-Oriented 아키텍처 가이드
https://www.amazon.com/N-Layered-Domain-Oriented-Architecture-Guide-NET/dp/8493903612/아벨 아브람과 플로이드 마린스쿠. Domain-Driven 신속한 디자인
https://www.amazon.com/Domain-Driven-Design-Quickly-Abel-Avram/dp/1411609255/Scott Millett, Nick Tune - Domain-Driven 디자인의 패턴, 원칙 및 관행
https://www.wiley.com/Patterns%2C+Principles%2C+and+Practices+of+Domain+Driven+Design-p-9781118714706
DDD 학습
- 줄리 러먼과 스티브 스미스. Domain-Driven 디자인 기본 사항
https://www.pluralsight.com/courses/fundamentals-___domain-driven-design
.NET