Core, Use Cases, Infrastructure, Web 프로젝트를 분리한 ASP.NET Core용 Clean Architecture 솔루션 템플릿입니다.
evolutionary-architecture/evolutionary-architecture-by-example
피트니스 스튜디오 시스템이 단순 모놀리스에서 모듈형 모놀리스와 마이크로서비스로 발전하고 전술적 DDD를 적용하는 과정을 단계별로 보여 주는 .NET 9 예제 저장소입니다.
- 스타
- 3,577
- 포크
- 550
- 열린 이슈
- 15
- 마지막 커밋
- 12일 전
어떤 프로젝트인가요?
Evolutionary Architecture by Example은 .NET 소프트웨어 아키텍처를 가르치기 위한 저장소입니다. Fitnet이라는 가상의 피트니스 스튜디오 애플리케이션이 네 개의 장을 거쳐 발전하는 과정을 따라갑니다. 먼저 구조가 잘 정리된 단일 프로젝트로 시작하고, 목적에 맞는 별도 프로젝트로 모듈을 분리한 다음, 실제 메시지 큐를 사용하는 첫 마이크로서비스를 추출하고, 마지막으로 값 객체, 애그리게이트, 도메인 이벤트 같은 전술적 도메인 주도 설계(DDD)를 적용합니다.
저장소에서는 전략적 측면도 다룹니다. Event Storming과 Domain Storytelling을 사용한 서브도메인 분해, 바운디드 컨텍스트 정의, 각 모듈에 필요한 아키텍처 수준을 정하는 방법을 살펴봅니다. 각 장에는 자체 가이드와 대화형 다이어그램이 있으며, 아키텍처 결정은 의사 결정 기록에 남깁니다.
코드는 minimal APIs를 사용하는 C# 및 .NET 9로 작성되었으며, MediatR, Dapper, Entity Framework, FluentValidation, .NET Aspire, Testcontainers 등의 라이브러리를 활용합니다. 프런트엔드 선택, 로깅, 계약 테스트는 독자의 선택에 맡깁니다.
핵심 기능
- 01하나의 코드베이스가 단일 프로젝트에서 마이크로서비스로 발전하는 과정을 네 개의 장에 걸쳐 설명합니다
- 02모든 곳에 같은 아키텍처를 적용하는 대신 모듈의 복잡도에 따라 분리하는 방법을 보여 줍니다
- 03Event Storming을 활용한 도메인 분해와 바운디드 컨텍스트 설계를 다룹니다
- 04값 객체, 애그리게이트, 도메인 이벤트를 비롯한 전술적 DDD 개념을 보여 줍니다
- 05minimal APIs와 MediatR을 사용해 C# 및 .NET 9로 구현했습니다
활용 사례
- 모놀리스에서 모듈형 모놀리스나 마이크로서비스로 전환할 시점을 학습하는 경우
- 기존 .NET 코드베이스에 DDD를 점진적으로 적용하는 방법을 살펴보는 경우
- 진화하는 구체적인 예제를 바탕으로 아키텍처 논의를 준비하는 경우
- 모듈 간에 메시지 큐를 도입하는 방법을 알아보는 경우
사용 전 알아둘 점
- 프런트엔드는 포함되어 있지 않습니다. README에서는 사용할 프런트엔드 기술을 독자가 선택하도록 합니다.
- 로깅과 계약 테스트는 독자에게 맡겨져 있으며, Serilog와 Pact Net을 사용할 수 있다고 제안하지만 제공되지는 않습니다.
포함된 컬렉션
토픽
자주 묻는 질문
- evolutionary-architecture-by-example은(는) 무엇인가요?
- 피트니스 스튜디오 시스템이 단순 모놀리스에서 모듈형 모놀리스와 마이크로서비스로 발전하고 전술적 DDD를 적용하는 과정을 단계별로 보여 주는 .NET 9 예제 저장소입니다. Evolutionary Architecture by Example은 .NET 소프트웨어 아키텍처를 가르치기 위한 저장소입니다. Fitnet이라는 가상의 피트니스 스튜디오 애플리케이션이 네 개의 장을 거쳐 발전하는 과정을 따라갑니다. 먼저 구조가 잘 정리된 단일 프로젝트로 시작하고, 목적에 맞는 별도 프로젝트로 모듈을 분리한 다음, 실제 메시지 큐를 사용하는 첫 마이크로서비스를 추출하고, 마지막으로 값 객체, 애그리게이트, 도메인 이벤트 같은 전술적 도메인 주도 설계(DDD)를 적용합니다.
- evolutionary-architecture-by-example은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- evolutionary-architecture-by-example은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- evolutionary-architecture-by-example은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. evolutionary-architecture-by-example의 마지막 커밋은 2026년 10월 26일입니다.
- evolutionary-architecture-by-example은(는) 어디에 사용할 수 있나요?
- 모놀리스에서 모듈형 모놀리스나 마이크로서비스로 전환할 시점을 학습하는 경우 기존 .NET 코드베이스에 DDD를 점진적으로 적용하는 방법을 살펴보는 경우 진화하는 구체적인 예제를 바탕으로 아키텍처 논의를 준비하는 경우 모듈 간에 메시지 큐를 도입하는 방법을 알아보는 경우
- evolutionary-architecture-by-example은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/evolutionary-architecture/evolutionary-architecture-by-example
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
DDD, 모듈화, 멀티테넌시를 적용한 엔터프라이즈 소프트웨어를 구축할 수 있는 ASP.NET Core 기반의 독자적인 오픈 소스 애플리케이션 프레임워크입니다.
팀과 AI 에이전트가 도메인, 서비스, 이벤트, 메시지, 스키마를 카탈로그로 정리하는 소프트웨어 아키텍처 문서화 도구입니다.
Clean Architecture, 모듈형 기능 설계, Jetpack Compose, Gradle convention plugin을 보여주는 Kotlin 기반 Android 참고 앱입니다.
PlantUML에서 일반 텍스트 코드로 소프트웨어 아키텍처 다이어그램을 그릴 수 있는 C4 모델 매크로 라이브러리입니다.
AI 코딩 도구가 프로젝트 구조와 제약, 변경 범위를 HTML 맵으로 그린 뒤 확인을 기다리게 하는 에이전트 스킬입니다.